From e83d82923fe750c8d2dd873b0f3f598a23d7e412 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Sun, 6 May 2018 14:20:58 +0300 Subject: [PATCH] Chat processor --- .../main/java/mc/core/chat/ChatProcessor.java | 15 +++++++++++ .../java/mc/core/{ => chat}/ChatStyle.java | 2 +- .../mc/core/chat/SimpleChatProcessor.java | 26 +++++++++++++++++++ .../proto_125/netty/PacketHandler.java | 13 ++++++---- 4 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 core/src/main/java/mc/core/chat/ChatProcessor.java rename core/src/main/java/mc/core/{ => chat}/ChatStyle.java (98%) create mode 100644 core/src/main/java/mc/core/chat/SimpleChatProcessor.java diff --git a/core/src/main/java/mc/core/chat/ChatProcessor.java b/core/src/main/java/mc/core/chat/ChatProcessor.java new file mode 100644 index 0000000..5219781 --- /dev/null +++ b/core/src/main/java/mc/core/chat/ChatProcessor.java @@ -0,0 +1,15 @@ +/* + * DmitriyMX + * 2018-05-06 + */ +package mc.core.chat; + +import mc.core.Player; +import org.slf4j.Marker; +import org.slf4j.helpers.BasicMarkerFactory; + +public abstract class ChatProcessor { + protected static final Marker CHAT_MARKER = new BasicMarkerFactory().getMarker("Chat"); + + public abstract void process(Player player, String message); +} diff --git a/core/src/main/java/mc/core/ChatStyle.java b/core/src/main/java/mc/core/chat/ChatStyle.java similarity index 98% rename from core/src/main/java/mc/core/ChatStyle.java rename to core/src/main/java/mc/core/chat/ChatStyle.java index 9378816..9621120 100644 --- a/core/src/main/java/mc/core/ChatStyle.java +++ b/core/src/main/java/mc/core/chat/ChatStyle.java @@ -2,7 +2,7 @@ * DmitriyMX * 2018-04-30 */ -package mc.core; +package mc.core.chat; import java.util.regex.Pattern; diff --git a/core/src/main/java/mc/core/chat/SimpleChatProcessor.java b/core/src/main/java/mc/core/chat/SimpleChatProcessor.java new file mode 100644 index 0000000..40f3edc --- /dev/null +++ b/core/src/main/java/mc/core/chat/SimpleChatProcessor.java @@ -0,0 +1,26 @@ +/* + * DmitriyMX + * 2018-05-06 + */ +package mc.core.chat; + +import lombok.extern.slf4j.Slf4j; +import mc.core.Player; +import mc.core.PlayerManager; +import org.springframework.beans.factory.annotation.Autowired; + +@Slf4j +public class SimpleChatProcessor extends ChatProcessor { + @Autowired + private PlayerManager playerManager; + + @Override + public void process(Player player, String message) { + log.info(CHAT_MARKER, "<{}> {}", player.getName(), ChatStyle.escapeStyle(message)); + playerManager.getBroadcastChannel().sendChatMessage( + ChatStyle.GOLD + player.getName() + + ChatStyle.GRAY + ": " + + ChatStyle.WHITE + message + ); + } +} diff --git a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java index 46937b1..fa241fe 100644 --- a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java +++ b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java @@ -12,13 +12,13 @@ import io.netty.channel.SimpleChannelInboundHandler; import io.netty.util.AttributeKey; import lombok.extern.slf4j.Slf4j; import mc.core.*; +import mc.core.chat.ChatProcessor; +import mc.core.chat.ChatStyle; import mc.core.events.*; import mc.core.network.CSPacket; import mc.core.network.proto_125.netty.wrappers.WrapperNetChannel; import mc.core.network.proto_125.packets.*; import mc.core.world.World; -import org.slf4j.Marker; -import org.slf4j.helpers.BasicMarkerFactory; import org.springframework.beans.factory.annotation.Autowired; import java.lang.reflect.Method; @@ -28,13 +28,14 @@ import java.util.Optional; @Slf4j public class PacketHandler extends SimpleChannelInboundHandler { private static final AttributeKey ATTR_PLAYER = AttributeKey.newInstance("ATTR_PLAYER"); - private static final Marker CHAT_MARKER = new BasicMarkerFactory().getMarker("Chat"); @Autowired private Config config; @Autowired private PlayerManager playerManager; @Autowired private World world; + @Autowired + private ChatProcessor chatProcessor; @Override public void channelInactive(ChannelHandlerContext context) throws Exception { @@ -201,7 +202,9 @@ public class PacketHandler extends SimpleChannelInboundHandler { } private void onChatMessagePacket(Channel channel, ChatMessagePacket packet) { - log.info(CHAT_MARKER, "<{}>: {}", channel.attr(ATTR_PLAYER).get().getName(), ChatStyle.escapeStyle(packet.getMessage())); - playerManager.getBroadcastChannel().writeAndFlush(packet); + chatProcessor.process( + channel.attr(ATTR_PLAYER).get(), + packet.getMessage() + ); } }