Skip to content

Commit 2fdbfd3

Browse files
committed
1.0.8
Added Lavalink Fix Some Errors Reworked ClassLoader
1 parent d1d617a commit 2fdbfd3

File tree

6 files changed

+96
-60
lines changed

6 files changed

+96
-60
lines changed

pom.xml

Lines changed: 61 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -6,64 +6,19 @@
66

77
<groupId>i.fran2019.BotMaster</groupId>
88
<artifactId>BotMasterDC</artifactId>
9-
<version>1.0.7</version>
9+
<version>1.0.8</version>
10+
1011
<repositories>
1112
<repository>
1213
<id>central</id>
1314
<name>Maven Central</name>
1415
<url>https://repo1.maven.org/maven2</url>
1516
</repository>
17+
<repository>
18+
<id>lavalink-releases</id>
19+
<url>https://maven.lavalink.dev/releases</url>
20+
</repository>
1621
</repositories>
17-
<build>
18-
<plugins>
19-
<plugin>
20-
<groupId>org.apache.maven.plugins</groupId>
21-
<artifactId>maven-assembly-plugin</artifactId>
22-
<version>3.3.0</version>
23-
<configuration>
24-
<archive>
25-
<manifest>
26-
<mainClass>i.fran2019.BotMaster.BotMaster</mainClass>
27-
</manifest>
28-
</archive>
29-
<descriptorRefs>
30-
<descriptorRef>jar-with-dependencies</descriptorRef>
31-
</descriptorRefs>
32-
<finalName>${project.artifactId}-${project.version}</finalName>
33-
</configuration>
34-
<executions>
35-
<execution>
36-
<id>make-assembly</id>
37-
<phase>package</phase>
38-
<goals>
39-
<goal>single</goal>
40-
</goals>
41-
</execution>
42-
</executions>
43-
</plugin>
44-
<plugin>
45-
<groupId>org.apache.maven.plugins</groupId>
46-
<artifactId>maven-jar-plugin</artifactId>
47-
<version>3.3.0</version>
48-
<configuration>
49-
<archive>
50-
<manifest>
51-
<mainClass>i.fran2019.BotMaster.BotMaster</mainClass>
52-
</manifest>
53-
</archive>
54-
</configuration>
55-
</plugin>
56-
<plugin>
57-
<groupId>org.apache.maven.plugins</groupId>
58-
<artifactId>maven-compiler-plugin</artifactId>
59-
<version>3.11.0</version>
60-
<configuration>
61-
<source>21</source>
62-
<target>21</target>
63-
</configuration>
64-
</plugin>
65-
</plugins>
66-
</build>
6722

6823
<dependencies>
6924
<dependency>
@@ -112,6 +67,61 @@
11267
<artifactId>jedis</artifactId>
11368
<version>5.2.0</version>
11469
</dependency>
70+
<dependency>
71+
<groupId>dev.arbjerg</groupId>
72+
<artifactId>lavalink-client</artifactId>
73+
<version>3.2.0</version>
74+
</dependency>
11575
</dependencies>
11676

77+
<build>
78+
<plugins>
79+
<plugin>
80+
<groupId>org.apache.maven.plugins</groupId>
81+
<artifactId>maven-assembly-plugin</artifactId>
82+
<version>3.3.0</version>
83+
<configuration>
84+
<archive>
85+
<manifest>
86+
<mainClass>i.fran2019.BotMaster.BotMaster</mainClass>
87+
</manifest>
88+
</archive>
89+
<descriptorRefs>
90+
<descriptorRef>jar-with-dependencies</descriptorRef>
91+
</descriptorRefs>
92+
<finalName>${project.artifactId}-${project.version}</finalName>
93+
</configuration>
94+
<executions>
95+
<execution>
96+
<id>make-assembly</id>
97+
<phase>package</phase>
98+
<goals>
99+
<goal>single</goal>
100+
</goals>
101+
</execution>
102+
</executions>
103+
</plugin>
104+
<plugin>
105+
<groupId>org.apache.maven.plugins</groupId>
106+
<artifactId>maven-jar-plugin</artifactId>
107+
<version>3.3.0</version>
108+
<configuration>
109+
<archive>
110+
<manifest>
111+
<mainClass>i.fran2019.BotMaster.BotMaster</mainClass>
112+
</manifest>
113+
</archive>
114+
</configuration>
115+
</plugin>
116+
<plugin>
117+
<groupId>org.apache.maven.plugins</groupId>
118+
<artifactId>maven-compiler-plugin</artifactId>
119+
<version>3.11.0</version>
120+
<configuration>
121+
<source>21</source>
122+
<target>21</target>
123+
</configuration>
124+
</plugin>
125+
</plugins>
126+
</build>
117127
</project>

src/main/java/i/fran2019/BotMaster/BotMaster.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import com.mongodb.client.MongoClient;
44
import com.mongodb.client.MongoClients;
5+
import dev.arbjerg.lavalink.client.Helpers;
6+
import dev.arbjerg.lavalink.client.LavalinkClient;
7+
import dev.arbjerg.lavalink.libraries.jda.JDAVoiceUpdateListener;
58
import i.fran2019.BotMaster.Managers.CommandManager;
69
import i.fran2019.BotMaster.Managers.ConfigManager;
710
import i.fran2019.BotMaster.Managers.PluginManager;
@@ -19,11 +22,15 @@
1922
public class BotMaster {
2023
@NonNull @Getter private static Logger logger = LoggerFactory.getLogger(BotMaster.class);
2124
@NonNull @Getter private static BotMaster botMaster;
25+
2226
@Getter private CommandManager commandManager;
2327
@Getter private PluginManager pluginManager;
28+
@Getter private ConfigManager configManager;
29+
2430
@Getter private MongoClient mongoClient;
2531
@Getter private UnifiedJedis redisClient;
26-
@Getter private ConfigManager configManager;
32+
@Getter private LavalinkClient lavalinkClient;
33+
2734
@NonNull @Getter private JDA jda;
2835

2936
public static void main(String[] args) {
@@ -36,14 +43,15 @@ private void start() {
3643

3744
logger.info("Starting Bot");
3845
this.configManager = new ConfigManager();
46+
3947
this.mongoClient = this.configManager.MONGODB_ENABLED ? MongoClients.create(this.configManager.MONGODB_URI) : null;
4048
this.redisClient = this.configManager.REDIS_ENABLED ? new UnifiedJedis(this.configManager.REDIS_URI) : null;
49+
this.lavalinkClient = this.configManager.LAVALINK_ENABLED ? new LavalinkClient(Helpers.getUserIdFromToken(configManager.TOKEN)) : null;
4150

4251
botMaster.build();
4352

4453
this.commandManager = new CommandManager();
4554
this.pluginManager = new PluginManager();
46-
4755
}
4856

4957
public void stop() {
@@ -65,11 +73,14 @@ public void stop() {
6573
private void build() {
6674
logger.info("Building Bot");
6775
try {
68-
this.jda = JDABuilder.createDefault(configManager.TOKEN)
76+
JDABuilder builder = JDABuilder.createDefault(configManager.TOKEN)
6977
.enableIntents(GatewayIntent.getIntents(GatewayIntent.ALL_INTENTS))
7078
.enableCache(CacheFlag.getPrivileged())
71-
.setAutoReconnect(true)
72-
.build().awaitReady();
79+
.setAutoReconnect(true);
80+
81+
if (configManager.LAVALINK_ENABLED) builder.setVoiceDispatchInterceptor(new JDAVoiceUpdateListener(lavalinkClient));
82+
83+
this.jda = builder.build().awaitReady();
7384
} catch (InvalidTokenException e) {
7485
logger.error("Invalid Token.", e);
7586
} catch (InterruptedException e) {

src/main/java/i/fran2019/BotMaster/Managers/CommandManager.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public void registerCommand(Command cmd) {
5050
protected void registerSlashCommands() {
5151
if (!this.started) this.started = true;
5252

53+
if (BotMaster.getBotMaster().getConfigManager().COMMANDS_SLASH_ENABLED) return;
54+
5355
if (BotMaster.getBotMaster().getConfigManager().COMMANDS_SLASH_REGISTER.equalsIgnoreCase("global")) {
5456
BotMaster.getLogger().info("Loading commands. (Global) (takes 1 hour to update)");
5557

@@ -176,8 +178,12 @@ private void addCommandData(Command cmd) {
176178

177179

178180
@Override
179-
public void onGuildJoin(GuildJoinEvent event) {
180-
event.getGuild().updateCommands().addCommands(this.commandsData).queue();
181+
public void onGuildJoin(GuildJoinEvent e) {
182+
if (BotMaster.getBotMaster().getConfigManager().COMMANDS_SLASH_ENABLED) {
183+
if (BotMaster.getBotMaster().getConfigManager().COMMANDS_SLASH_REGISTER.equalsIgnoreCase("Local")) {
184+
e.getGuild().updateCommands().addCommands(this.commandsData).queue();
185+
}
186+
}
181187
}
182188

183189
@Override

src/main/java/i/fran2019/BotMaster/Managers/ConfigManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class ConfigManager {
1717
public String MONGODB_URI;
1818
public Boolean REDIS_ENABLED;
1919
public String REDIS_URI;
20+
public Boolean LAVALINK_ENABLED;
2021
public Boolean COMMANDS_SLASH_ENABLED;
2122
public String COMMANDS_SLASH_REGISTER;
2223
public List<String> COMMANDS_DISABLED;
@@ -32,10 +33,15 @@ public void reloadConfig(){
3233

3334
private void setConfigValues(){
3435
TOKEN = (String) getConfigValue("token");
36+
3537
MONGODB_ENABLED = (Boolean) getConfigValue("mongodb.enabled");
3638
MONGODB_URI = (String) getConfigValue("mongodb.uri");
39+
3740
REDIS_ENABLED = (Boolean) getConfigValue("redis.enabled");
3841
REDIS_URI = (String) getConfigValue("redis.uri");
42+
43+
LAVALINK_ENABLED = (Boolean) getConfigValue("lavalink.enabled");
44+
3945
COMMANDS_SLASH_ENABLED = (Boolean) getConfigValue("commands.slash.enabled");
4046
COMMANDS_SLASH_REGISTER = (String) getConfigValue("commands.slash.register");
4147
COMMANDS_DISABLED = (List<String>) getConfigValue("commands.disabled");

src/main/java/i/fran2019/BotMaster/Utils/PluginClassLoader.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.util.jar.JarFile;
1010

1111
public class PluginClassLoader extends URLClassLoader {
12-
1312
public PluginClassLoader(URL url) {
1413
super(new URL[]{url}, BotMaster.class.getClassLoader());
1514
}
@@ -22,7 +21,9 @@ public Class<?> loadClass(String name) throws ClassNotFoundException {
2221
try {
2322
loadedClass = getParent().loadClass(name);
2423
} catch (ClassNotFoundException e) {
25-
loadedClass = findClass(name);
24+
try {
25+
loadedClass = findClass(name);
26+
} catch (IllegalAccessError ignore) {}
2627
}
2728
}
2829
return loadedClass;

src/main/resources/config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ mongodb:
55
redis:
66
enabled: false
77
uri: ""
8+
lavalink:
9+
enabled: false
810
commands:
911
slash:
1012
enabled: true

0 commit comments

Comments
 (0)