aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/ChatPacket.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/ChatPacket.h
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.World/ChatPacket.h')
-rw-r--r--Minecraft.World/ChatPacket.h98
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; }
+};
+