diff options
Diffstat (limited to 'Minecraft.World/PlayerInfoPacket.cpp')
| -rw-r--r-- | Minecraft.World/PlayerInfoPacket.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Minecraft.World/PlayerInfoPacket.cpp b/Minecraft.World/PlayerInfoPacket.cpp new file mode 100644 index 00000000..9cbe5f7c --- /dev/null +++ b/Minecraft.World/PlayerInfoPacket.cpp @@ -0,0 +1,61 @@ +#include "stdafx.h" +#include "net.minecraft.world.entity.player.h" +#include "..\Minecraft.Client\ServerPlayer.h" +#include "..\Minecraft.Client\PlayerConnection.h" +#include <qnet.h> +#include "PacketListener.h" +#include "InputOutputStream.h" +#include "PlayerInfoPacket.h" + + + +PlayerInfoPacket::PlayerInfoPacket() +{ + m_networkSmallId = 0; + m_playerColourIndex = -1; + m_playerPrivileges = 0; + m_entityId = -1; +} + +PlayerInfoPacket::PlayerInfoPacket(BYTE networkSmallId, short playerColourIndex, unsigned int playerPrivileges) +{ + m_networkSmallId = networkSmallId; + m_playerColourIndex = playerColourIndex; + m_playerPrivileges = playerPrivileges; + m_entityId = -1; +} + +PlayerInfoPacket::PlayerInfoPacket(shared_ptr<ServerPlayer> player) +{ + m_networkSmallId = 0; + if(player->connection != NULL && player->connection->getNetworkPlayer() != NULL) m_networkSmallId = player->connection->getNetworkPlayer()->GetSmallId(); + m_playerColourIndex = player->getPlayerIndex(); + m_playerPrivileges = player->getAllPlayerGamePrivileges(); + m_entityId = player->entityId; +} + +void PlayerInfoPacket::read(DataInputStream *dis) +{ + m_networkSmallId = dis->readByte(); + m_playerColourIndex = dis->readShort(); + m_playerPrivileges = dis->readInt(); + m_entityId = dis->readInt(); +} + +void PlayerInfoPacket::write(DataOutputStream *dos) +{ + dos->writeByte(m_networkSmallId); + dos->writeShort(m_playerColourIndex); + dos->writeInt(m_playerPrivileges); + dos->writeInt(m_entityId); +} + +void PlayerInfoPacket::handle(PacketListener *listener) +{ + listener->handlePlayerInfo(shared_from_this()); +} + +int PlayerInfoPacket::getEstimatedSize() +{ + return 2 + 2 + 4 + 4; +}
\ No newline at end of file |
