diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/ChatPacket.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.World/ChatPacket.h')
| -rw-r--r-- | Minecraft.World/ChatPacket.h | 98 |
1 files changed, 98 insertions, 0 deletions
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<ChatPacket> +{ + // 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<wstring> m_stringArgs; + vector<int> 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<Packet> create() { return shared_ptr<Packet>(new ChatPacket()); } + virtual int getId() { return 3; } +}; + |
