From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/ChatPacket.h | 98 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 Minecraft.World/ChatPacket.h (limited to 'Minecraft.World/ChatPacket.h') diff --git a/Minecraft.World/ChatPacket.h b/Minecraft.World/ChatPacket.h new file mode 100644 index 00000000..c480dfd0 --- /dev/null +++ b/Minecraft.World/ChatPacket.h @@ -0,0 +1,98 @@ +#pragma once +using namespace std; + +#include "Packet.h" + +class ChatPacket : public Packet, public enable_shared_from_this +{ + // longest allowed string is "<" + name + "> " + message +private: + static const unsigned int MAX_LENGTH; + +public: + // 4J - We want to be able to localise the messages sent. The enum also allows for the posibility that there + // may be different versions playing the game, so the enum should map to a string id which may be different on + // different versions + enum EChatPacketMessage + { + e_ChatCustom = 0, // No localised string, only the text passed in + e_ChatBedOccupied, + e_ChatBedNoSleep, + e_ChatBedNotValid, + e_ChatBedNotSafe, + e_ChatBedPlayerSleep, + e_ChatBedMeSleep, + e_ChatPlayerLeftGame, + e_ChatPlayerJoinedGame, + e_ChatPlayerKickedFromGame, + e_ChatCannotPlaceLava, + + e_ChatDeathInFire, + e_ChatDeathOnFire, + e_ChatDeathLava, + e_ChatDeathInWall, + e_ChatDeathDrown, + e_ChatDeathStarve, + e_ChatDeathCactus, + e_ChatDeathFall, + e_ChatDeathOutOfWorld, + e_ChatDeathGeneric, + e_ChatDeathExplosion, + e_ChatDeathMagic, + e_ChatDeathMob, + e_ChatDeathPlayer, + e_ChatDeathArrow, + e_ChatDeathFireball, + e_ChatDeathThrown, + e_ChatDeathIndirectMagic, + e_ChatDeathDragonBreath, + e_ChatDeathWither, + e_ChatDeathAnvil, + e_ChatDeathFallingBlock, + e_ChatDeathThorns, + + e_ChatPlayerEnteredEnd, + e_ChatPlayerLeftEnd, + + e_ChatPlayerMaxPigsSheepCows, // tell the players they can't use the spawn egg + e_ChatPlayerMaxChickens, // tell the players they can't use the spawn egg + e_ChatPlayerMaxSquid, // tell the players they can't use the spawn egg + e_ChatPlayerMaxMooshrooms, // tell the players they can't use the spawn egg + e_ChatPlayerMaxWolves, // tell the players they can't use the spawn egg + e_ChatPlayerMaxAnimals, // tell the players they can't use the spawn egg + e_ChatPlayerMaxEnemies, // tell the players they can't use the spawn egg + e_ChatPlayerMaxVillagers, // tell the players they can't use the spawn egg + e_ChatPlayerMaxHangingEntities, // tell the players they hit the picture/itemframe limit + e_ChatPlayerCantSpawnInPeaceful, // Tell the player they can't spawn enemies in peaceful mode + e_ChatPlayerMaxBredAnimals, // Tell the player they can't put this animal in love mode because no breeding can be done + e_ChatPlayerMaxBredPigsSheepCows, // Tell the player they can't put this animal in love mode because no breeding can be done + e_ChatPlayerMaxBredChickens, // Tell the player they can't put this animal in love mode because no breeding can be done + e_ChatPlayerMaxBredMooshrooms, // Tell the player they can't put this animal in love mode because no breeding can be done + e_ChatPlayerMaxBredWolves, // Tell the player they can't put this wolf in love mode because no breeding can be done + e_ChatPlayerCantShearMooshroom, // Tell the player they can't shear because the limits have been reached + e_ChatPlayerMaxBoats, + + e_ChatCommandTeleportSuccess, + e_ChatCommandTeleportMe, + e_ChatCommandTeleportToMe, + + }; + +public: + vector m_stringArgs; + vector m_intArgs; + EChatPacketMessage m_messageType; + + ChatPacket(); + ChatPacket(const wstring& message, EChatPacketMessage type = e_ChatCustom, int customData = -1, const wstring& additionalMessage = L""); + + virtual void read(DataInputStream *dis); + virtual void write(DataOutputStream *dos); + virtual void handle(PacketListener *listener); + virtual int getEstimatedSize(); + +public: + static shared_ptr create() { return shared_ptr(new ChatPacket()); } + virtual int getId() { return 3; } +}; + -- cgit v1.2.3