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