新增玩家加入和退出事件的处理

This commit is contained in:
Xujiayao 2026-01-23 12:32:09 +08:00
parent 663245a61e
commit f50e29ad45
2 changed files with 21 additions and 0 deletions

View file

@ -63,8 +63,13 @@ public class ServerHandler extends SimpleChannelInboundHandler<Packet> {
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);
}
}

View file

@ -35,6 +35,22 @@ public class MinecraftEventHandler {
DMCC.shutdown();
});
EventManager.register(MinecraftEvents.PlayerJoin.class, event -> {
Map<String, String> 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<String, String> 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());