diff --git a/.github/workflows/nightly-release.yml b/.github/workflows/nightly-release.yml index 4af33fc..d828f58 100644 --- a/.github/workflows/nightly-release.yml +++ b/.github/workflows/nightly-release.yml @@ -47,8 +47,8 @@ jobs: if [[ "$file" != *"-source.jar" ]]; then filename="${file%.*}" extension="${file##*.}" - # 这里的格式是: 原名-CommitHash.jar - mv "$file" "${filename}-${{ steps.vars.outputs.sha_short }}.${extension}" + # 这里的格式是: 原名+CommitHash.jar + mv "$file" "${filename}+${{ steps.vars.outputs.sha_short }}.${extension}" fi done diff --git a/build.gradle b/build.gradle index a11f95f..9b8587d 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'com.springwater.easybot' -version = '2.1.4' +version = '2.1.5' repositories { mavenCentral() diff --git a/libs/venturechat.jar b/libs/venturechat.jar new file mode 100644 index 0000000..654ae98 Binary files /dev/null and b/libs/venturechat.jar differ diff --git a/src/main/java/com/springwater/easybot/Easybot.java b/src/main/java/com/springwater/easybot/Easybot.java index 4bc1b89..2800dbb 100644 --- a/src/main/java/com/springwater/easybot/Easybot.java +++ b/src/main/java/com/springwater/easybot/Easybot.java @@ -8,17 +8,16 @@ import com.springwater.easybot.command.EasyBotCommandExecutor; import com.springwater.easybot.command.SyncCommandExecutor; import com.springwater.easybot.event.*; -import com.springwater.easybot.hook.HookerManager; +import com.springwater.easybot.event.message.*; import com.springwater.easybot.papi.EasyBotExpansion; import com.springwater.easybot.papi.OfflineStatisticExpansion; import com.springwater.easybot.task.TaskManager; import com.springwater.easybot.utils.BukkitUtils; import com.springwater.easybot.utils.FakePlayerUtils; import com.springwater.easybot.utils.ItemsAdderUtils; +import lombok.Getter; import org.bukkit.Bukkit; -import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.server.ServerLoadEvent; import org.bukkit.plugin.java.JavaPlugin; import org.geysermc.floodgate.api.FloodgateApi; @@ -29,13 +28,12 @@ public final class Easybot extends JavaPlugin implements Listener { public static Easybot instance; - private static HookerManager eventHooks; + //private static HookerManager eventHooks; + @Getter private static CommandApi commandApi; private static BridgeClient bridgeClient; - private static BridgeBehavior bridgeBehavior; - private static TaskManager taskManager = new TaskManager(); - + private static final TaskManager taskManager = new TaskManager(); public static EasyBotExpansion easyBotExpansion; public static OfflineStatisticExpansion offlineStatisticExpansion; @@ -43,10 +41,6 @@ public static BridgeClient getClient() { return bridgeClient; } - public static CommandApi getCommandApi() { - return commandApi; - } - public static final ExecutorService EXECUTOR = Executors.newCachedThreadPool( new ThreadFactoryBuilder() .setNameFormat("EasyBot Task Executor - %d") @@ -68,7 +62,7 @@ public void onEnable() { ClientProfile.setDebugMode(getConfig().getBoolean("debug", false)); instance = this; - bridgeBehavior = new BridgeImpl(); + BridgeBehavior bridgeBehavior = new BridgeImpl(); initHooks(); @@ -174,6 +168,9 @@ private void handleChatsCompatibility() { } else if (BukkitUtils.hasRedisChatPlugin()) { getLogger().info("\u001B[32m※ 检测到RedisChat插件, 您的消息事件将对接到AsyncRedisChatMessageEvent\u001B[0m"); getServer().getPluginManager().registerEvents(new RedisChatMessageSyncEvents(), this); + } else if (BukkitUtils.hasVentureChat()) { + getLogger().info("\u001B[32m※ 检测到VentureChat插件, 您的消息事件将对接到VentureChatEvent\u001B[0m"); + getServer().getPluginManager().registerEvents(new VentureChatMessageSyncEvents(), this); } else { registerDefaultMessageSyncEvents(); } @@ -295,7 +292,7 @@ public void runTask(Runnable task) { Method executeMethod = regionScheduler.getClass().getMethod("execute", org.bukkit.plugin.Plugin.class, Runnable.class); executeMethod.invoke(regionScheduler, instance, task); } catch (Exception e) { - e.printStackTrace(); + getLogger().severe(e.toString()); } } else { Bukkit.getScheduler().runTask(instance, task); diff --git a/src/main/java/com/springwater/easybot/event/BukkitSideMessageSyncEvents.java b/src/main/java/com/springwater/easybot/event/message/BukkitSideMessageSyncEvents.java similarity index 95% rename from src/main/java/com/springwater/easybot/event/BukkitSideMessageSyncEvents.java rename to src/main/java/com/springwater/easybot/event/message/BukkitSideMessageSyncEvents.java index 43f9084..0aeb312 100644 --- a/src/main/java/com/springwater/easybot/event/BukkitSideMessageSyncEvents.java +++ b/src/main/java/com/springwater/easybot/event/message/BukkitSideMessageSyncEvents.java @@ -1,4 +1,4 @@ -package com.springwater.easybot.event; +package com.springwater.easybot.event.message; import com.springwater.easybot.Easybot; import com.springwater.easybot.bridge.packet.PlayerInfoWithRaw; diff --git a/src/main/java/com/springwater/easybot/event/PaperSideMessageSyncEvents.java b/src/main/java/com/springwater/easybot/event/message/PaperSideMessageSyncEvents.java similarity index 95% rename from src/main/java/com/springwater/easybot/event/PaperSideMessageSyncEvents.java rename to src/main/java/com/springwater/easybot/event/message/PaperSideMessageSyncEvents.java index e47abe6..45e9924 100644 --- a/src/main/java/com/springwater/easybot/event/PaperSideMessageSyncEvents.java +++ b/src/main/java/com/springwater/easybot/event/message/PaperSideMessageSyncEvents.java @@ -1,4 +1,4 @@ -package com.springwater.easybot.event; +package com.springwater.easybot.event.message; import com.springwater.easybot.Easybot; import com.springwater.easybot.bridge.packet.PlayerInfoWithRaw; diff --git a/src/main/java/com/springwater/easybot/event/PlayerChatMessageSyncEvents.java b/src/main/java/com/springwater/easybot/event/message/PlayerChatMessageSyncEvents.java similarity index 95% rename from src/main/java/com/springwater/easybot/event/PlayerChatMessageSyncEvents.java rename to src/main/java/com/springwater/easybot/event/message/PlayerChatMessageSyncEvents.java index 8fa36cf..e0e458d 100644 --- a/src/main/java/com/springwater/easybot/event/PlayerChatMessageSyncEvents.java +++ b/src/main/java/com/springwater/easybot/event/message/PlayerChatMessageSyncEvents.java @@ -1,4 +1,4 @@ -package com.springwater.easybot.event; +package com.springwater.easybot.event.message; import cn.handyplus.chat.event.PlayerChannelChatEvent; import com.springwater.easybot.Easybot; diff --git a/src/main/java/com/springwater/easybot/event/RedisChatMessageSyncEvents.java b/src/main/java/com/springwater/easybot/event/message/RedisChatMessageSyncEvents.java similarity index 96% rename from src/main/java/com/springwater/easybot/event/RedisChatMessageSyncEvents.java rename to src/main/java/com/springwater/easybot/event/message/RedisChatMessageSyncEvents.java index df408d4..ede1a43 100644 --- a/src/main/java/com/springwater/easybot/event/RedisChatMessageSyncEvents.java +++ b/src/main/java/com/springwater/easybot/event/message/RedisChatMessageSyncEvents.java @@ -1,4 +1,4 @@ -package com.springwater.easybot.event; +package com.springwater.easybot.event.message; import com.springwater.easybot.Easybot; import com.springwater.easybot.bridge.packet.PlayerInfoWithRaw; diff --git a/src/main/java/com/springwater/easybot/event/message/VentureChatMessageSyncEvents.java b/src/main/java/com/springwater/easybot/event/message/VentureChatMessageSyncEvents.java new file mode 100644 index 0000000..b0cdc0b --- /dev/null +++ b/src/main/java/com/springwater/easybot/event/message/VentureChatMessageSyncEvents.java @@ -0,0 +1,23 @@ +package com.springwater.easybot.event.message; + +import com.springwater.easybot.Easybot; +import com.springwater.easybot.bridge.packet.PlayerInfoWithRaw; +import com.springwater.easybot.utils.BridgeUtils; +import com.springwater.easybot.utils.FakePlayerUtils; +import mineverse.Aust1n46.chat.api.MineverseChatPlayer; +import mineverse.Aust1n46.chat.api.events.VentureChatEvent; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +public class VentureChatMessageSyncEvents implements Listener { + @EventHandler(priority = EventPriority.LOWEST) + public static void syncMessage(VentureChatEvent event) { + if (Easybot.instance.getConfig().getBoolean("skip_options.skip_chat")) return; + MineverseChatPlayer mcp = event.getMineverseChatPlayer(); + if (mcp.getPlayer() == null) return; + if (FakePlayerUtils.isFake(mcp.getPlayer())) return; + PlayerInfoWithRaw playerInfo = BridgeUtils.buildPlayerInfoFull(mcp.getPlayer()); + Easybot.EXECUTOR.execute(() -> Easybot.getClient().syncMessage(playerInfo, event.getChat(), false)); + } +} diff --git a/src/main/java/com/springwater/easybot/utils/BukkitUtils.java b/src/main/java/com/springwater/easybot/utils/BukkitUtils.java index 1539159..b2b39dd 100644 --- a/src/main/java/com/springwater/easybot/utils/BukkitUtils.java +++ b/src/main/java/com/springwater/easybot/utils/BukkitUtils.java @@ -133,4 +133,13 @@ public static boolean hasPaperSkinApi() { return false; } } + + public static boolean hasVentureChat() { + try { + Class.forName("mineverse.Aust1n46.chat.MineverseChat"); + return true; + } catch (ClassNotFoundException e) { + return false; + } + } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 5d65e96..69e8f80 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,7 +3,7 @@ version: '${version}' main: com.springwater.easybot.Easybot api-version: '1.13' load: STARTUP -softdepend: [Essentials,PlaceHolderAPI,PlayerChat,RedisChat,TrChat,Geyser-Spigot,SkinsRestorer,ItemsAdder,FakePlayer] +softdepend: [ Essentials,PlaceHolderAPI,PlayerChat,RedisChat,TrChat,Geyser-Spigot,SkinsRestorer,ItemsAdder,FakePlayer,VentureChat ] folia-supported: true commands: