From f50e29ad45ff4d2aae9e608429d4f549b54dfec3 Mon Sep 17 00:00:00 2001 From: Xujiayao Date: Fri, 23 Jan 2026 12:32:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=8E=A9=E5=AE=B6=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E5=92=8C=E9=80=80=E5=87=BA=E4=BA=8B=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../discord_mc_chat/server/ServerHandler.java | 5 +++++ .../minecraft/events/MinecraftEventHandler.java | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/core/src/main/java/com/xujiayao/discord_mc_chat/server/ServerHandler.java b/core/src/main/java/com/xujiayao/discord_mc_chat/server/ServerHandler.java index 44738f25..400bab69 100644 --- a/core/src/main/java/com/xujiayao/discord_mc_chat/server/ServerHandler.java +++ b/core/src/main/java/com/xujiayao/discord_mc_chat/server/ServerHandler.java @@ -63,8 +63,13 @@ public class ServerHandler extends SimpleChannelInboundHandler { switch (packet) { case MinecraftEventPacket p -> { switch (p.type) { + // Server events case SERVER_STARTED -> DiscordManager.clientBroadcast(clientName, "server.started", "server.start", false, p.placeholders); case SERVER_STOPPING -> DiscordManager.clientBroadcast(clientName, "server.stopped", "server.stop", false, p.placeholders); + // Player events + case PLAYER_JOIN -> DiscordManager.clientBroadcast(clientName, "player.join", "player.join", false, p.placeholders); + case PLAYER_QUIT -> DiscordManager.clientBroadcast(clientName, "player.quit", "player.quit", false, p.placeholders); + // Unhandled events default -> LOGGER.warn("Received MinecraftEventPacket from authenticated client {}: type={}, placeholders={}", clientName, p.type, p.placeholders); } } diff --git a/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java b/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java index 8de86421..365255bd 100644 --- a/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java +++ b/minecraft/src/main/java/com/xujiayao/discord_mc_chat/minecraft/events/MinecraftEventHandler.java @@ -35,6 +35,22 @@ public class MinecraftEventHandler { DMCC.shutdown(); }); + EventManager.register(MinecraftEvents.PlayerJoin.class, event -> { + Map placeholders = Map.of( + "user_name", event.serverPlayer().getName().getString(), + "display_name", event.serverPlayer().getDisplayName().getString() + ); + NetworkManager.sendPacketToServer(new MinecraftEventPacket(MinecraftEventPacket.MessageType.PLAYER_JOIN, placeholders)); + }); + + EventManager.register(MinecraftEvents.PlayerQuit.class, event -> { + Map placeholders = Map.of( + "user_name", event.serverPlayer().getName().getString(), + "display_name", event.serverPlayer().getDisplayName().getString() + ); + NetworkManager.sendPacketToServer(new MinecraftEventPacket(MinecraftEventPacket.MessageType.PLAYER_QUIT, placeholders)); + }); + EventManager.register(MinecraftEvents.CommandRegister.class, event -> { // Register Minecraft /dmcc commands MinecraftCommands.register(event.dispatcher());