From 83c8a8ec5aa2391a6b08d415c012a2b533a8fc8f Mon Sep 17 00:00:00 2001 From: mcdoeswhat <2929356483@qq.com> Date: Mon, 25 Apr 2022 16:37:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=8D=E5=A4=8D=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- resources/plugin.yml | 2 +- src/me/albert/amazingbot/bot/Bot.java | 3 +++ src/me/albert/amazingbot/bot/BotClient.java | 18 ++++++++++-------- src/me/albert/amazingbot/utils/MsgUtil.java | 1 - 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index d6dff57..244c434 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.albert AmazingBot jar - 4.0.9 + 4.0.10 AmazingBot diff --git a/resources/plugin.yml b/resources/plugin.yml index ba31905..4292685 100644 --- a/resources/plugin.yml +++ b/resources/plugin.yml @@ -1,5 +1,5 @@ name: AmazingBot -version: 4.0.9 +version: 4.0.10 author: Albert main: me.albert.amazingbot.AmazingBot api-version: 1.13 diff --git a/src/me/albert/amazingbot/bot/Bot.java b/src/me/albert/amazingbot/bot/Bot.java index 5ad02ad..f37beaa 100644 --- a/src/me/albert/amazingbot/bot/Bot.java +++ b/src/me/albert/amazingbot/bot/Bot.java @@ -45,6 +45,9 @@ public static void setApi(BotAPI api) { Bot.api = api; } + public static BotClient getClient() { + return client; + } public static Boolean getConnected() { return !client.isClosed(); diff --git a/src/me/albert/amazingbot/bot/BotClient.java b/src/me/albert/amazingbot/bot/BotClient.java index 07759ab..767aab7 100644 --- a/src/me/albert/amazingbot/bot/BotClient.java +++ b/src/me/albert/amazingbot/bot/BotClient.java @@ -98,7 +98,7 @@ public JsonObject processMessageSend(JsonObject object, int timeout) { @Override public void onMessage(String msg) { - if (!instance.isEnabled()) { + if (!instance.isEnabled() || Bot.getClient() != this) { this.close(); return; } @@ -143,6 +143,9 @@ public void processMessageRec(String msg) { @Override public void onOpen(ServerHandshake handshakedata) { + if (Bot.getClient() != this) { + this.close(); + } AmazingBot.getInstance().getLogger().info("§a机器人连接成功!"); callEvent(new WebSocketConnectedEvent()); } @@ -152,15 +155,14 @@ public void onOpen(ServerHandshake handshakedata) { public void onClose(int code, String reason, boolean remote) { AmazingBot.getInstance().getLogger().warning("机器人连接关闭: " + (remote ? "remote peer" : "us") + " Code: " + code + " Reason: " + reason); int delay = instance.getConfig().getInt("main.auto_reconnect"); - synchronized (AmazingBot.getInstance()) { - if (instance.isEnabled() && code != 1000) { - if (this.isOpen()) { + if (instance.isEnabled() && code != 1000) { + AmazingBot.getInstance().getLogger().info("§a将在" + delay + "秒后再次尝试连接"); + taskID = Bukkit.getScheduler().runTaskLater(instance, () -> { + if (Bot.getClient() != this) { return; } - AmazingBot.getInstance().getLogger().info("§a将在" + delay + "秒后再次尝试连接"); - Bukkit.getScheduler().cancelTask(taskID); - taskID = Bukkit.getScheduler().runTaskLater(instance, this::reconnect, 20L * delay).getTaskId(); - } + reconnect(); + }, 20L * delay).getTaskId(); } } diff --git a/src/me/albert/amazingbot/utils/MsgUtil.java b/src/me/albert/amazingbot/utils/MsgUtil.java index e452b8d..145b268 100644 --- a/src/me/albert/amazingbot/utils/MsgUtil.java +++ b/src/me/albert/amazingbot/utils/MsgUtil.java @@ -64,7 +64,6 @@ public static String deFormatCQCode(String str) { } - /** * @param file 绝对路径,例如 file:///C:\\Users\Richard\Pictures\1.png * 网络 URL,例如 http://i1.piimg.com/567571/fdd6e7b6d93f1ef0.jpg