diff --git a/build-number.txt b/build-number.txt index 3e06d1ff..d70c36f8 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -3504 \ No newline at end of file +3506 \ No newline at end of file diff --git a/src/main/java/me/chayapak1/chomens_bot/data/chat/ChatPacketType.java b/src/main/java/me/chayapak1/chomens_bot/data/chat/ChatPacketType.java index 1f0dc9ce..1acfb160 100644 --- a/src/main/java/me/chayapak1/chomens_bot/data/chat/ChatPacketType.java +++ b/src/main/java/me/chayapak1/chomens_bot/data/chat/ChatPacketType.java @@ -1,7 +1,13 @@ package me.chayapak1.chomens_bot.data.chat; public enum ChatPacketType { - PLAYER, - DISGUISED, - SYSTEM + PLAYER("P"), + DISGUISED("D"), + SYSTEM("S"); + + public final String shortName; + + ChatPacketType (final String shortName) { + this.shortName = shortName; + } } diff --git a/src/main/java/me/chayapak1/chomens_bot/data/listener/Listener.java b/src/main/java/me/chayapak1/chomens_bot/data/listener/Listener.java index 506669c2..f8fd8661 100644 --- a/src/main/java/me/chayapak1/chomens_bot/data/listener/Listener.java +++ b/src/main/java/me/chayapak1/chomens_bot/data/listener/Listener.java @@ -60,7 +60,7 @@ public interface Listener { // chat default boolean onPlayerMessageReceived (final PlayerMessage message, final ChatPacketType packetType) { return true; } - default boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { return true; } + default boolean onSystemMessageReceived (final Component component, final ChatPacketType packetType, final String string, final String ansi) { return true; } // commandspy default void onCommandSpyMessageReceived (final PlayerEntry sender, final String command) { } diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/ChatPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/ChatPlugin.java index a57d36fe..33b2b5d9 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/ChatPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/ChatPlugin.java @@ -126,7 +126,7 @@ public class ChatPlugin implements Listener { final PlayerMessage finalPlayerMessage = playerMessage; // ??? bot.listener.dispatchWithCheck(listener -> { - if (!listener.onSystemMessageReceived(component, string, ansi)) return false; + if (!listener.onSystemMessageReceived(component, ChatPacketType.SYSTEM, string, ansi)) return false; return finalPlayerMessage == null || listener.onPlayerMessageReceived(finalPlayerMessage, ChatPacketType.SYSTEM); @@ -233,7 +233,7 @@ public class ChatPlugin implements Listener { bot.listener.dispatchWithCheck(listener -> { if (!listener.onPlayerMessageReceived(playerMessage, ChatPacketType.PLAYER)) return false; - return listener.onSystemMessageReceived(systemComponent, string, ansi); + return listener.onSystemMessageReceived(systemComponent, ChatPacketType.PLAYER, string, ansi); }); } @@ -258,8 +258,8 @@ public class ChatPlugin implements Listener { final String string = ComponentUtilities.stringify(chatTypeComponent); final String ansi = ComponentUtilities.stringifyAnsi(chatTypeComponent); - bot.listener.dispatchWithCheck(listener -> - listener.onSystemMessageReceived(chatTypeComponent, string, ansi)); + bot.listener.dispatchWithCheck(listener -> listener.onSystemMessageReceived( + chatTypeComponent, ChatPacketType.DISGUISED, string, ansi)); for (final ChatParser parser : chatParsers) { final PlayerMessage parsed = parser.parse(chatTypeComponent); @@ -290,7 +290,7 @@ public class ChatPlugin implements Listener { bot.listener.dispatchWithCheck(listener -> { if (!listener.onPlayerMessageReceived(playerMessage, ChatPacketType.DISGUISED)) return false; - return listener.onSystemMessageReceived(component, string, ansi); + return listener.onSystemMessageReceived(component, ChatPacketType.DISGUISED, string, ansi); }); } } diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/ChomeNSModIntegrationPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/ChomeNSModIntegrationPlugin.java index 0ab125b1..b658cb80 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/ChomeNSModIntegrationPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/ChomeNSModIntegrationPlugin.java @@ -14,6 +14,7 @@ import me.chayapak1.chomens_bot.chomeNSMod.clientboundPackets.ClientboundMessage import me.chayapak1.chomens_bot.chomeNSMod.serverboundPackets.ServerboundRunCommandPacket; import me.chayapak1.chomens_bot.chomeNSMod.serverboundPackets.ServerboundRunCoreCommandPacket; import me.chayapak1.chomens_bot.chomeNSMod.serverboundPackets.ServerboundSuccessfulHandshakePacket; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.chomeNSMod.PayloadMetadata; import me.chayapak1.chomens_bot.data.chomeNSMod.PayloadState; import me.chayapak1.chomens_bot.data.listener.Listener; @@ -209,10 +210,16 @@ public class ChomeNSModIntegrationPlugin implements Listener { } @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String ansi + ) { if ( - !(component instanceof final TranslatableComponent translatableComponent) || - !translatableComponent.key().isEmpty() + packetType != ChatPacketType.SYSTEM + || !(component instanceof final TranslatableComponent translatableComponent) + || !translatableComponent.key().isEmpty() ) return true; final List arguments = translatableComponent.arguments(); diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSpyPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSpyPlugin.java index 9bc2d55b..5d27bba5 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSpyPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSpyPlugin.java @@ -1,6 +1,7 @@ package me.chayapak1.chomens_bot.plugins; import me.chayapak1.chomens_bot.Bot; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.listener.Listener; import me.chayapak1.chomens_bot.data.player.PlayerEntry; import me.chayapak1.chomens_bot.util.ComponentUtilities; @@ -20,11 +21,17 @@ public class CommandSpyPlugin implements Listener { } @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String ansi + ) { final List children = component.children(); if ( - !(component instanceof final TextComponent textComponent) + packetType != ChatPacketType.SYSTEM + || !(component instanceof final TextComponent textComponent) || children.size() != 2 || textComponent.style().isEmpty() || (textComponent.color() != NamedTextColor.AQUA && textComponent.color() != NamedTextColor.YELLOW) diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSuggestionPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSuggestionPlugin.java index 66516f5f..ed50080f 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSuggestionPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/CommandSuggestionPlugin.java @@ -2,6 +2,7 @@ package me.chayapak1.chomens_bot.plugins; import me.chayapak1.chomens_bot.Bot; import me.chayapak1.chomens_bot.command.Command; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.listener.Listener; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.JoinConfiguration; @@ -23,11 +24,17 @@ public class CommandSuggestionPlugin implements Listener { } @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String ansi + ) { final List children = component.children(); if ( - !(component instanceof final TextComponent idComponent) + packetType != ChatPacketType.SYSTEM + || !(component instanceof final TextComponent idComponent) || !idComponent.content().equals(id) || children.size() != 1 || !(children.getFirst() instanceof final TextComponent playerComponent) diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/DiscordPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/DiscordPlugin.java index 09c09df5..ac62b14f 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/DiscordPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/DiscordPlugin.java @@ -4,6 +4,7 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import me.chayapak1.chomens_bot.Bot; import me.chayapak1.chomens_bot.Configuration; import me.chayapak1.chomens_bot.Main; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.listener.Listener; import me.chayapak1.chomens_bot.discord.DirectMessageEventHandler; import me.chayapak1.chomens_bot.discord.GuildMessageEventHandler; @@ -99,7 +100,12 @@ public class DiscordPlugin { bot.listener.addListener(new Listener() { @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String _ansi) { + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String unusedAnsi + ) { if (string.length() > MAX_ANSI_MESSAGE_LENGTH) { sendMessage(CodeBlockUtilities.escape(string), channelId); } else { diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/IRCPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/IRCPlugin.java index 627ff3a1..50e4e432 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/IRCPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/IRCPlugin.java @@ -4,6 +4,7 @@ import me.chayapak1.chomens_bot.Bot; import me.chayapak1.chomens_bot.Configuration; import me.chayapak1.chomens_bot.Main; import me.chayapak1.chomens_bot.command.contexts.IRCCommandContext; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.listener.Listener; import me.chayapak1.chomens_bot.util.ColorUtilities; import me.chayapak1.chomens_bot.util.I18nUtilities; @@ -72,7 +73,12 @@ public class IRCPlugin extends ListenerAdapter { } @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String ansi + ) { IRCPlugin.this.systemMessageReceived(bot, ansi); return true; diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/LoggerPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/LoggerPlugin.java index aa706671..8957344c 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/LoggerPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/LoggerPlugin.java @@ -1,12 +1,14 @@ package me.chayapak1.chomens_bot.plugins; import me.chayapak1.chomens_bot.Bot; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.listener.Listener; import me.chayapak1.chomens_bot.data.logging.LogType; import me.chayapak1.chomens_bot.util.ExceptionUtilities; import me.chayapak1.chomens_bot.util.I18nUtilities; import me.chayapak1.chomens_bot.util.LoggerUtilities; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.geysermc.mcprotocollib.network.event.session.ConnectedEvent; import org.geysermc.mcprotocollib.network.event.session.DisconnectedEvent; @@ -81,8 +83,21 @@ public class LoggerPlugin implements Listener { } @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { - log(LogType.CHAT, component); + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String ansi + ) { + log( + LogType.CHAT, + Component.translatable( + "[%s] %s", + NamedTextColor.DARK_GRAY, + Component.text(packetType.shortName, NamedTextColor.GRAY), + component.colorIfAbsent(NamedTextColor.WHITE) + ) + ); return true; } diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java index 9b5f256f..bd722253 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/QueryPlugin.java @@ -3,6 +3,7 @@ package me.chayapak1.chomens_bot.plugins; import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.objects.ObjectObjectImmutablePair; import me.chayapak1.chomens_bot.Bot; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.listener.Listener; import me.chayapak1.chomens_bot.util.RandomStringUtilities; import net.kyori.adventure.text.*; @@ -50,10 +51,16 @@ public class QueryPlugin implements Listener { } @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String ansi + ) { if ( - !(component instanceof final TranslatableComponent rootTranslatable) || - !rootTranslatable.key().equals(ID) + packetType != ChatPacketType.SYSTEM + || !(component instanceof final TranslatableComponent rootTranslatable) + || !rootTranslatable.key().equals(ID) ) return true; final List arguments = rootTranslatable.arguments(); diff --git a/src/main/java/me/chayapak1/chomens_bot/plugins/SelfCarePlugin.java b/src/main/java/me/chayapak1/chomens_bot/plugins/SelfCarePlugin.java index 6e916731..91a303b2 100644 --- a/src/main/java/me/chayapak1/chomens_bot/plugins/SelfCarePlugin.java +++ b/src/main/java/me/chayapak1/chomens_bot/plugins/SelfCarePlugin.java @@ -1,6 +1,7 @@ package me.chayapak1.chomens_bot.plugins; import me.chayapak1.chomens_bot.Bot; +import me.chayapak1.chomens_bot.data.chat.ChatPacketType; import me.chayapak1.chomens_bot.data.listener.Listener; import me.chayapak1.chomens_bot.data.player.PlayerEntry; import me.chayapak1.chomens_bot.data.selfCare.SelfCare; @@ -64,7 +65,12 @@ public class SelfCarePlugin implements Listener { } @Override - public boolean onSystemMessageReceived (final Component component, final String string, final String ansi) { + public boolean onSystemMessageReceived ( + final Component component, + final ChatPacketType packetType, + final String string, + final String ansi + ) { for (final SelfCare selfCare : selfCares) selfCare.onMessageReceived(component, string); return true;