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/AwardStatPacket.cpp | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.World/AwardStatPacket.cpp')
| -rw-r--r-- | Minecraft.World/AwardStatPacket.cpp | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Minecraft.World/AwardStatPacket.cpp b/Minecraft.World/AwardStatPacket.cpp new file mode 100644 index 00000000..43328794 --- /dev/null +++ b/Minecraft.World/AwardStatPacket.cpp @@ -0,0 +1,89 @@ +#include "stdafx.h" +#include <iostream> +#include "InputOutputStream.h" +#include "PacketListener.h" +#include "AwardStatPacket.h" + + + +AwardStatPacket::AwardStatPacket() +{ + this->m_paramData.data = NULL; + this->m_paramData.length = 0; +} + +AwardStatPacket::AwardStatPacket(int statId, int count) +{ + this->statId = statId; + + this->m_paramData.data = (byte *) new int(count); + this->m_paramData.length = sizeof(int); +} + +AwardStatPacket::AwardStatPacket(int statId, byteArray paramData) +{ + this->statId = statId; + this->m_paramData = paramData; +} + +AwardStatPacket::~AwardStatPacket() +{ + if (m_paramData.data != NULL) + { + delete [] m_paramData.data; + m_paramData.data = NULL; + } +} + +void AwardStatPacket::handle(PacketListener *listener) +{ + listener->handleAwardStat(shared_from_this()); + m_paramData.data = NULL; +} + +void AwardStatPacket::read(DataInputStream *dis) //throws IOException +{ + statId = dis->readInt(); + + // Read parameter blob. + int length = dis->readInt(); + if(length > 0) + { + m_paramData = byteArray(length); + dis->readFully(m_paramData); + } +} + +void AwardStatPacket::write(DataOutputStream *dos) //throws IOException +{ + dos->writeInt(statId); + dos->writeInt(m_paramData.length); + if(m_paramData.length > 0) dos->write(m_paramData); +} + +int AwardStatPacket::getEstimatedSize() +{ + return 6; +} + +bool AwardStatPacket::isAync() +{ + return true; +} + +// On most platforms we only store 'count' in an AwardStatPacket. +int AwardStatPacket::getCount() +{ +#ifdef _DURANGO + assert(false); // Method not supported on Durango. + return 0; +#else + return *((int*)this->m_paramData.data); +#endif +} + +// On Durango we store 'Event' parameters here in a blob. +byteArray AwardStatPacket::getParamData() +{ + return m_paramData; +} |
