From 8e05ed062e014f20d54a6cb904a13c8316ecc862 Mon Sep 17 00:00:00 2001 From: kuroppoi <68156848+kuroppoi@users.noreply.github.com> Date: Sat, 24 Apr 2021 20:34:34 +0200 Subject: [PATCH] Implemented EntityChangeMessage --- .../gameserver/entity/player/Player.java | 5 +++-- .../gameserver/server/NetworkRegistry.java | 2 ++ .../server/messages/EntityChangeMessage.java | 21 +++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 gameserver/src/main/java/brainwine/gameserver/server/messages/EntityChangeMessage.java diff --git a/gameserver/src/main/java/brainwine/gameserver/entity/player/Player.java b/gameserver/src/main/java/brainwine/gameserver/entity/player/Player.java index fd6a5c5..3dee8b9 100644 --- a/gameserver/src/main/java/brainwine/gameserver/entity/player/Player.java +++ b/gameserver/src/main/java/brainwine/gameserver/entity/player/Player.java @@ -29,6 +29,7 @@ import brainwine.gameserver.server.messages.BlockMetaMessage; import brainwine.gameserver.server.messages.ConfigurationMessage; import brainwine.gameserver.server.messages.DialogMessage; import brainwine.gameserver.server.messages.EffectMessage; +import brainwine.gameserver.server.messages.EntityChangeMessage; import brainwine.gameserver.server.messages.EntityItemUseMessage; import brainwine.gameserver.server.messages.EntityPositionMessage; import brainwine.gameserver.server.messages.EntityStatusMessage; @@ -436,13 +437,13 @@ public class Player extends Entity implements CommandExecutor { } clothing.put(slot, item); - zone.sendMessage(new EntityStatusMessage(this, EntityStatus.ENTERING)); + zone.sendMessage(new EntityChangeMessage(id, getAppearanceConfig())); } public void setColor(ColorSlot slot, String hex) { // TODO check if the string is actually a valid hex color colors.put(slot, hex); - zone.sendMessage(new EntityStatusMessage(this, EntityStatus.ENTERING)); + zone.sendMessage(new EntityChangeMessage(id, getAppearanceConfig())); } public boolean hasClothing(Item item) { diff --git a/gameserver/src/main/java/brainwine/gameserver/server/NetworkRegistry.java b/gameserver/src/main/java/brainwine/gameserver/server/NetworkRegistry.java index 433086c..f89683a 100644 --- a/gameserver/src/main/java/brainwine/gameserver/server/NetworkRegistry.java +++ b/gameserver/src/main/java/brainwine/gameserver/server/NetworkRegistry.java @@ -13,6 +13,7 @@ import brainwine.gameserver.server.messages.ChatMessage; import brainwine.gameserver.server.messages.ConfigurationMessage; import brainwine.gameserver.server.messages.DialogMessage; import brainwine.gameserver.server.messages.EffectMessage; +import brainwine.gameserver.server.messages.EntityChangeMessage; import brainwine.gameserver.server.messages.EntityItemUseMessage; import brainwine.gameserver.server.messages.EntityPositionMessage; import brainwine.gameserver.server.messages.EntityStatusMessage; @@ -95,6 +96,7 @@ public class NetworkRegistry { registerMessage(PlayerPositionMessage.class, 5); registerMessage(EntityPositionMessage.class, 6); registerMessage(EntityStatusMessage.class, 7); + registerMessage(EntityChangeMessage.class, 8); registerMessage(BlockChangeMessage.class, 9); registerMessage(EntityItemUseMessage.class, 10); registerMessage(ChatMessage.class, 13); diff --git a/gameserver/src/main/java/brainwine/gameserver/server/messages/EntityChangeMessage.java b/gameserver/src/main/java/brainwine/gameserver/server/messages/EntityChangeMessage.java new file mode 100644 index 0000000..3adedba --- /dev/null +++ b/gameserver/src/main/java/brainwine/gameserver/server/messages/EntityChangeMessage.java @@ -0,0 +1,21 @@ +package brainwine.gameserver.server.messages; + +import java.util.Map; + +import brainwine.gameserver.server.Message; + +public class EntityChangeMessage extends Message { + + public int id; + public Map details; + + public EntityChangeMessage(int id, Map details) { + this.id = id; + this.details = details; + } + + @Override + public boolean isCollection() { + return true; + } +}