#include "../../Platform/stdafx.h" #include #include "../../IO/Streams/InputOutputStream.h" #include "PacketListener.h" #include "../../Headers/net.minecraft.world.level.tile.entity.h" #include "SignUpdatePacket.h" SignUpdatePacket::SignUpdatePacket() { shouldDelay = true; m_bVerified = false; m_bCensored = false; x = 0; y = 0; z = 0; } SignUpdatePacket::SignUpdatePacket(int x, int y, int z, bool bVerified, bool bCensored, std::wstring lines[]) { shouldDelay = true; this->m_bVerified = bVerified; this->m_bCensored = bCensored; this->x = x; this->y = y; this->z = z; for (int i = 0; i < MAX_SIGN_LINES; i++) this->lines[i] = lines[i]; } void SignUpdatePacket::read(DataInputStream* dis) // throws IOException { x = dis->readInt(); y = dis->readShort(); z = dis->readInt(); this->m_bVerified = dis->readBoolean(); this->m_bCensored = dis->readBoolean(); ; for (int i = 0; i < MAX_SIGN_LINES; i++) lines[i] = readUtf(dis, SignTileEntity::MAX_LINE_LENGTH); } void SignUpdatePacket::write(DataOutputStream* dos) // throws IOException { dos->writeInt(x); dos->writeShort(y); dos->writeInt(z); dos->writeBoolean(m_bVerified); dos->writeBoolean(m_bCensored); for (int i = 0; i < MAX_SIGN_LINES; i++) writeUtf(lines[i], dos); } void SignUpdatePacket::handle(PacketListener* listener) { listener->handleSignUpdate(shared_from_this()); } int SignUpdatePacket::getEstimatedSize() { int l = 0; l += sizeof(int); l += sizeof(short); l += sizeof(int); l += sizeof(uint8_t); l += sizeof(uint8_t); for (int i = 0; i < MAX_SIGN_LINES; i++) l += (int)lines[i].length(); return l; }