diff --git a/src/main/java/buttondevteam/discordplugin/DPUtils.java b/src/main/java/buttondevteam/discordplugin/DPUtils.java index e415298..fba8a7b 100755 --- a/src/main/java/buttondevteam/discordplugin/DPUtils.java +++ b/src/main/java/buttondevteam/discordplugin/DPUtils.java @@ -126,8 +126,10 @@ public final class DPUtils { * @return The string for mentioning the channel */ public static String botmention() { - if (DiscordPlugin.plugin == null) return "#bot"; - return DiscordPlugin.plugin.CommandChannel().get().mention(); + IChannel channel; + if (DiscordPlugin.plugin == null + || (channel = DiscordPlugin.plugin.CommandChannel().get()) == null) return "#bot"; + return channel.mention(); } } diff --git a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java index 7063c39..fd5f2fa 100755 --- a/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java +++ b/src/main/java/buttondevteam/discordplugin/DiscordPlugin.java @@ -43,6 +43,7 @@ import java.nio.charset.StandardCharsets; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; public class DiscordPlugin extends ButtonPlugin implements IListener { @@ -116,7 +117,14 @@ public class DiscordPlugin extends ButtonPlugin implements IListener public void handle(ReadyEvent event) { try { dc.changePresence(StatusType.DND, ActivityType.PLAYING, "booting"); + val tries = new AtomicInteger(); task = Bukkit.getScheduler().runTaskTimerAsynchronously(this, () -> { + tries.incrementAndGet(); + if (tries.get() > 10) { //5 seconds + task.cancel(); + getLogger().severe("Main or dev server not found! Set ID and do /discord reset"); + return; + } if (mainServer == null || devServer == null) { mainServer = event.getClient().getGuildByID(125813020357165056L); devServer = event.getClient().getGuildByID(219529124321034241L);