Skip to content

Commit f2637cc

Browse files
committed
Handle bot connection asynchronously
1 parent 72114fd commit f2637cc

File tree

1 file changed

+16
-11
lines changed
  • src/main/java/net/clementraynaud/skoice/bot

1 file changed

+16
-11
lines changed

src/main/java/net/clementraynaud/skoice/bot/Bot.java

+16-11
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,13 @@ public void connect(CommandSender sender) {
8989
}
9090

9191
this.plugin.getLogger().info(this.plugin.getLang().getMessage("logger.info.bot-connecting"));
92-
Player tokenManager = null;
92+
Player tokenManager;
9393
if (sender instanceof Player) {
9494
tokenManager = (Player) sender;
9595
this.tokenManagerId = tokenManager.getUniqueId().toString();
9696
tokenManager.sendMessage(this.plugin.getLang().getMessage("chat.configuration.bot-connecting"));
97+
} else {
98+
tokenManager = null;
9799
}
98100

99101
byte[] base64TokenBytes;
@@ -107,17 +109,20 @@ public void connect(CommandSender sender) {
107109
base64TokenBytes = new byte[0];
108110
}
109111

110-
try {
111-
this.jda = JDABuilder.createDefault(new String(base64TokenBytes))
112-
.addEventListeners(new ReadyListener(this.plugin))
113-
.build();
114-
} catch (InvalidTokenException | IllegalArgumentException e) {
115-
this.plugin.getLogger().severe(this.plugin.getLang().getMessage("logger.error.bot-could-not-connect"));
116-
this.plugin.getConfigYamlFile().remove(ConfigField.TOKEN.toString());
117-
if (tokenManager != null) {
118-
tokenManager.sendMessage(this.plugin.getLang().getMessage("chat.configuration.bot-could-not-connect"));
112+
byte[] finalBase64TokenBytes = base64TokenBytes;
113+
this.plugin.getServer().getScheduler().runTaskAsynchronously(this.plugin, () -> {
114+
try {
115+
this.jda = JDABuilder.createDefault(new String(finalBase64TokenBytes))
116+
.addEventListeners(new ReadyListener(this.plugin))
117+
.build();
118+
} catch (InvalidTokenException | IllegalArgumentException e) {
119+
this.plugin.getLogger().severe(this.plugin.getLang().getMessage("logger.error.bot-could-not-connect"));
120+
this.plugin.getConfigYamlFile().remove(ConfigField.TOKEN.toString());
121+
if (tokenManager != null) {
122+
tokenManager.sendMessage(this.plugin.getLang().getMessage("chat.configuration.bot-could-not-connect"));
123+
}
119124
}
120-
}
125+
});
121126
}
122127

123128
public boolean isAdministrator() {

0 commit comments

Comments
 (0)