Rename DiscordEventPacket to DiscordRelayPacket and update references

This commit is contained in:
Xujiayao 2026-03-22 18:15:16 +08:00
parent e9f915e3f8
commit 28c915d52e
4 changed files with 20 additions and 18 deletions

View file

@ -24,7 +24,7 @@ import com.xujiayao.discord_mc_chat.network.packets.commands.info.InfoResponsePa
import com.xujiayao.discord_mc_chat.network.packets.commands.link.LinkResponsePacket;
import com.xujiayao.discord_mc_chat.network.packets.commands.link.OpSyncPacket;
import com.xujiayao.discord_mc_chat.network.packets.commands.unlink.UnlinkResponsePacket;
import com.xujiayao.discord_mc_chat.network.packets.events.DiscordEventPacket;
import com.xujiayao.discord_mc_chat.network.packets.events.DiscordRelayPacket;
import com.xujiayao.discord_mc_chat.network.packets.events.TextSegment;
import com.xujiayao.discord_mc_chat.network.packets.misc.KeepAlivePacket;
import com.xujiayao.discord_mc_chat.network.packets.misc.LatencyPongPacket;
@ -64,14 +64,14 @@ public final class ClientHandler extends SimpleChannelInboundHandler<Packet> {
this.initialLoginFuture = initialLoginFuture;
}
private static void logDiscordEventForConsole(DiscordEventPacket p) {
private static void logDiscordEventForConsole(DiscordRelayPacket p) {
if (p.replySegments != null && !p.replySegments.isEmpty()) {
LOGGER.info(TextSegment.toPlainText(p.replySegments));
}
if (p.segments != null && !p.segments.isEmpty()) {
LOGGER.info(TextSegment.toPlainText(p.segments));
}
if (p.type == DiscordEventPacket.EventType.EDIT && p.editedMessageSegments != null && !p.editedMessageSegments.isEmpty()) {
if (p.type == DiscordRelayPacket.EventType.EDIT && p.editedMessageSegments != null && !p.editedMessageSegments.isEmpty()) {
LOGGER.info(TextSegment.toPlainText(p.editedMessageSegments));
}
}
@ -215,7 +215,7 @@ public final class ClientHandler extends SimpleChannelInboundHandler<Packet> {
EventManager.post(new CoreEvents.UnlinkResponseEvent(p.minecraftUuid, p.success, p.discordName != null ? p.discordName : ""));
case OpSyncPacket p -> // Handle OP sync from server - apply OP levels to Minecraft players
EventManager.post(new CoreEvents.OpSyncEvent(p.opLevels));
case DiscordEventPacket p -> {
case DiscordRelayPacket p -> {
// Handle Discord event forwarded from server - render in Minecraft
if ("multi_server_client".equals(ModeManager.getMode())) {
logDiscordEventForConsole(p);

View file

@ -5,16 +5,18 @@ import com.xujiayao.discord_mc_chat.network.packets.Packet;
import java.util.List;
/**
* Packet sent from DMCC Server to Client(s) when a Discord event needs to be
* Packet sent from DMCC Server to Client(s) when a message from Discord needs to be
* rendered in Minecraft.
* <p>
* The server pre-processes the Discord message into a list of {@link TextSegment}
* objects so that the client can directly build Minecraft Components without
* needing access to Discord APIs or custom_messages resources.
* <p>
* This packet should be used for Discord messages only.
*
* @author Xujiayao
*/
public final class DiscordEventPacket extends Packet {
public final class DiscordRelayPacket extends Packet {
/**
* The type of Discord event.
@ -73,7 +75,7 @@ public final class DiscordEventPacket extends Packet {
* @param type The event type.
* @param segments The pre-built text segments for the main message line.
*/
public DiscordEventPacket(EventType type, List<TextSegment> segments) {
public DiscordRelayPacket(EventType type, List<TextSegment> segments) {
this.type = type;
this.segments = segments;
}

View file

@ -13,7 +13,7 @@ import java.util.List;
* Discord APIs or custom_messages.
* <p>
* This class is intentionally kept as a simple serializable POJO so that it can be
* transmitted over the Netty channel inside {@link DiscordEventPacket}.
* transmitted over the Netty channel inside {@link DiscordRelayPacket}.
*
* @author Xujiayao
*/

View file

@ -3,7 +3,7 @@ package com.xujiayao.discord_mc_chat.server.discord;
import com.xujiayao.discord_mc_chat.commands.CommandManager;
import com.xujiayao.discord_mc_chat.commands.impl.StatsCommand;
import com.xujiayao.discord_mc_chat.network.NetworkManager;
import com.xujiayao.discord_mc_chat.network.packets.events.DiscordEventPacket;
import com.xujiayao.discord_mc_chat.network.packets.events.DiscordRelayPacket;
import com.xujiayao.discord_mc_chat.network.packets.events.TextSegment;
import com.xujiayao.discord_mc_chat.server.message.DiscordMessageParser;
import com.xujiayao.discord_mc_chat.utils.LogFileUtils;
@ -51,14 +51,14 @@ public final class DiscordEventHandler extends ListenerAdapter {
private static final ConcurrentHashMap<String, CachedMessage> messageCache = new ConcurrentHashMap<>();
private static final int MAX_CACHE_SIZE = 200;
private static void logDiscordEventForConsole(DiscordEventPacket packet) {
private static void logDiscordEventForConsole(DiscordRelayPacket packet) {
if (packet.replySegments != null && !packet.replySegments.isEmpty()) {
LOGGER.info(TextSegment.toPlainText(packet.replySegments));
}
if (packet.segments != null && !packet.segments.isEmpty()) {
LOGGER.info(TextSegment.toPlainText(packet.segments));
}
if (packet.type == DiscordEventPacket.EventType.EDIT && packet.editedMessageSegments != null && !packet.editedMessageSegments.isEmpty()) {
if (packet.type == DiscordRelayPacket.EventType.EDIT && packet.editedMessageSegments != null && !packet.editedMessageSegments.isEmpty()) {
LOGGER.info(TextSegment.toPlainText(packet.editedMessageSegments));
}
}
@ -144,7 +144,7 @@ public final class DiscordEventHandler extends ListenerAdapter {
}
List<TextSegment> segments = DiscordMessageParser.buildCommandSegments(effectiveName, roleColor, fullCommand.toString());
DiscordEventPacket packet = new DiscordEventPacket(DiscordEventPacket.EventType.COMMAND, segments);
DiscordRelayPacket packet = new DiscordRelayPacket(DiscordRelayPacket.EventType.COMMAND, segments);
logDiscordEventForConsole(packet);
NetworkManager.broadcastToClients(packet);
}
@ -427,7 +427,7 @@ public final class DiscordEventHandler extends ListenerAdapter {
}
// Build and send the DiscordEventPacket to all connected clients
DiscordEventPacket packet = new DiscordEventPacket(DiscordEventPacket.EventType.CHAT, mainSegments);
DiscordRelayPacket packet = new DiscordRelayPacket(DiscordRelayPacket.EventType.CHAT, mainSegments);
packet.replySegments = replySegments;
packet.mentionNotificationText = mentionNotificationText;
packet.mentionNotificationStyle = mentionNotificationStyle;
@ -474,13 +474,13 @@ public final class DiscordEventHandler extends ListenerAdapter {
event.retrieveMessage().queue(targetMessage -> {
List<TextSegment> segments = DiscordMessageParser.buildReactionSegments(reactorName, roleColor, emojiText);
DiscordEventPacket packet = new DiscordEventPacket(DiscordEventPacket.EventType.REACTION, segments);
DiscordRelayPacket packet = new DiscordRelayPacket(DiscordRelayPacket.EventType.REACTION, segments);
packet.replySegments = DiscordMessageParser.buildReplySegments(targetMessage);
logDiscordEventForConsole(packet);
NetworkManager.broadcastToClients(packet);
}, _ -> {
List<TextSegment> segments = DiscordMessageParser.buildReactionSegments(reactorName, roleColor, emojiText);
DiscordEventPacket packet = new DiscordEventPacket(DiscordEventPacket.EventType.REACTION, segments);
DiscordRelayPacket packet = new DiscordRelayPacket(DiscordRelayPacket.EventType.REACTION, segments);
logDiscordEventForConsole(packet);
NetworkManager.broadcastToClients(packet);
});
@ -541,7 +541,7 @@ public final class DiscordEventHandler extends ListenerAdapter {
// Build new message content segments
List<TextSegment> editedMessageSegments = DiscordMessageParser.buildEditedMessageSegments(message);
DiscordEventPacket packet = new DiscordEventPacket(DiscordEventPacket.EventType.EDIT, notificationSegments);
DiscordRelayPacket packet = new DiscordRelayPacket(DiscordRelayPacket.EventType.EDIT, notificationSegments);
packet.replySegments = replySegments;
packet.editedMessageSegments = editedMessageSegments;
logDiscordEventForConsole(packet);
@ -575,14 +575,14 @@ public final class DiscordEventHandler extends ListenerAdapter {
if (cached == null) {
// No cached info - send a generic delete notification
List<TextSegment> segments = DiscordMessageParser.buildDeleteSegments(I18nManager.getDmccTranslation("discord.message_parser.unknown_user"), "white");
DiscordEventPacket packet = new DiscordEventPacket(DiscordEventPacket.EventType.DELETE, segments);
DiscordRelayPacket packet = new DiscordRelayPacket(DiscordRelayPacket.EventType.DELETE, segments);
logDiscordEventForConsole(packet);
NetworkManager.broadcastToClients(packet);
return;
}
List<TextSegment> segments = DiscordMessageParser.buildDeleteSegments(cached.authorName(), cached.authorRoleColor());
DiscordEventPacket packet = new DiscordEventPacket(DiscordEventPacket.EventType.DELETE, segments);
DiscordRelayPacket packet = new DiscordRelayPacket(DiscordRelayPacket.EventType.DELETE, segments);
packet.replySegments = DiscordMessageParser.buildReplySegments(
cached.authorName(),
cached.authorRoleColor(),