diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java index ba5b550..ccac5d0 100644 --- a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/api/BallAPI.java @@ -60,8 +60,8 @@ public abstract class BallAPI { public BallAPI(@NotNull BallConfig ballConfig) { this.ballConfig = ballConfig; - redisPub = CoreAPI.getInstance().getRedisClient().connectPubSub(BallMessage.CODEC); - redisSub = CoreAPI.getInstance().getRedisClient().connectPubSub(BallMessage.CODEC); + redisPub = CoreAPI.getInstance().getRedisClient().connectPubSub(BallMessage.REDIS_CODEC); + redisSub = CoreAPI.getInstance().getRedisClient().connectPubSub(BallMessage.REDIS_CODEC); allServerInfo = new ConcurrentHashMap<>(); allPlayerInfo = new ConcurrentHashMap<>(); eventBus = new AsyncEventBus("HamsterBall - EventBus", CoreAPI.getInstance().getExecutorService()); diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallMessage.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallMessage.java index 8917f00..48d0f37 100644 --- a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallMessage.java +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/data/BallMessage.java @@ -8,8 +8,9 @@ import cn.hamster3.mc.plugin.core.lib.io.lettuce.core.codec.StringCodec; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import lombok.Data; +import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -21,14 +22,15 @@ import java.util.UUID; /** * 服务消息 */ -@Data +@Getter +@Setter @NoArgsConstructor @SuppressWarnings("unused") public class BallMessage { /** - * 编解码器 + * lettuce 编解码器 */ - public static final RedisCodec CODEC = new RedisCodec() { + public static final RedisCodec REDIS_CODEC = new RedisCodec() { @Override public String decodeKey(ByteBuffer bytes) { return StringCodec.UTF8.decodeKey(bytes); @@ -98,8 +100,7 @@ public class BallMessage { this.content = CoreAPI.getInstance().getGson().toJsonTree(content); } - public BallMessage(@NotNull String senderID, @Nullable String receiverID, - @Nullable BallServerType receiverType, @NotNull String action, @Nullable JsonElement content) { + public BallMessage(@NotNull String senderID, @Nullable String receiverID, @Nullable BallServerType receiverType, @NotNull String action, @Nullable JsonElement content) { this.senderID = senderID; this.receiverID = receiverID; this.receiverType = receiverType; diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageEvent.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageEvent.java new file mode 100644 index 0000000..224caa6 --- /dev/null +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageEvent.java @@ -0,0 +1,35 @@ +package cn.hamster3.mc.plugin.ball.common.event.message; + +import cn.hamster3.mc.plugin.ball.common.data.BallMessage; +import com.google.gson.JsonObject; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.jetbrains.annotations.NotNull; + +@Getter +@Setter +@ToString(callSuper = true) +public class MessageEvent extends BallMessage { + /** + * 消息的频道 + */ + @NotNull + private String channel; + + public MessageEvent(@NotNull String channel, @NotNull BallMessage message) { + this.channel = channel; + setSenderID(message.getSenderID()); + setReceiverID(message.getReceiverID()); + setReceiverType(message.getReceiverType()); + setAction(message.getAction()); + setContent(message.getContent()); + } + + @Override + public @NotNull JsonObject toJson() { + JsonObject object = super.toJson(); + object.addProperty("channel", channel); + return object; + } +} diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageReceivedEvent.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageReceivedEvent.java index 9cd30e9..9c36bf0 100644 --- a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageReceivedEvent.java +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageReceivedEvent.java @@ -1,21 +1,22 @@ package cn.hamster3.mc.plugin.ball.common.event.message; import cn.hamster3.mc.plugin.ball.common.data.BallMessage; -import lombok.AllArgsConstructor; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; import org.jetbrains.annotations.NotNull; -@Data -@AllArgsConstructor -public class MessageReceivedEvent { +@Getter +@Setter +@ToString(callSuper = true) +public class MessageReceivedEvent extends MessageEvent { /** * 消息的频道 */ @NotNull private String channel; - /** - * 消息的内容 - */ - @NotNull - private BallMessage message; + + public MessageReceivedEvent(@NotNull String channel, @NotNull BallMessage message) { + super(channel, message); + } } diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageSentEvent.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageSentEvent.java index cd6c229..5b51920 100644 --- a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageSentEvent.java +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/event/message/MessageSentEvent.java @@ -1,21 +1,22 @@ package cn.hamster3.mc.plugin.ball.common.event.message; import cn.hamster3.mc.plugin.ball.common.data.BallMessage; -import lombok.AllArgsConstructor; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; import org.jetbrains.annotations.NotNull; -@Data -@AllArgsConstructor -public class MessageSentEvent { +@Getter +@Setter +@ToString(callSuper = true) +public class MessageSentEvent extends MessageEvent { /** * 消息的频道 */ @NotNull private String channel; - /** - * 消息的内容 - */ - @NotNull - private BallMessage message; + + public MessageSentEvent(@NotNull String channel, @NotNull BallMessage message) { + super(channel, message); + } } diff --git a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallDebugListener.java b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallDebugListener.java index 10ae469..3f80bdc 100644 --- a/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallDebugListener.java +++ b/ball-common/src/main/java/cn/hamster3/mc/plugin/ball/common/listener/BallDebugListener.java @@ -13,11 +13,11 @@ public class BallDebugListener { @Subscribe public void onMessageReceived(MessageReceivedEvent event) { - BallAPI.getInstance().getLogger().info("从 " + event.getChannel() + " 收到了一条消息: " + event.getMessage()); + BallAPI.getInstance().getLogger().info("收到了一条消息: " + event); } @Subscribe public void onMessageSent(MessageSentEvent event) { - BallAPI.getInstance().getLogger().info("向 " + event.getChannel() + " 发送了一条消息: " + event.getMessage()); + BallAPI.getInstance().getLogger().info("发送了一条消息: " + event); } }