// Protocol18x.h
/*
Declares the 1.8.x protocol classes:
- cProtocol180
- release 1.8 protocol (#47)
(others may be added later in the future for the 1.8 release series)
*/
#pragma once
#include "Protocol.h"
#include "Protocol17x.h"
#include "../ByteBuffer.h"
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4127)
#pragma warning(disable:4244)
#pragma warning(disable:4231)
#pragma warning(disable:4189)
#pragma warning(disable:4702)
#endif
#ifdef _MSC_VER
#pragma warning(pop)
#endif
// fwd:
namespace Json
{
class Value;
}
class cProtocol180 :
public cProtocol176
{
typedef cProtocol176 super;
public:
cProtocol180(cClientHandle * a_Client, const AString & a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State);
virtual void SendLoginSuccess (void) override;
virtual void SendPlayerAbilities (void) override {}
virtual void SendWindowClose (const cWindow & a_Window) override {}
virtual void SendPickupSpawn (const cPickup & a_Pickup) override {}
virtual void SendSpawnObject (const cEntity & a_Entity, char a_ObjectType, int a_ObjectData, Byte a_Yaw, Byte a_Pitch) override {}
virtual void SendInventorySlot (char a_WindowID, short a_SlotNum, const cItem & a_Item) override {}
virtual void SendWholeInventory (const cWindow & a_Window) override {}
virtual void SendParticleEffect (const AString & a_ParticleName, float a_SrcX, float a_SrcY, float a_SrcZ, float a_OffsetX, float a_OffsetY, float a_OffsetZ, float a_ParticleData, int a_ParticleAmmount) override;
virtual void SendPlayerMoveLook (void) override;
virtual void SendUseBed (const cEntity & a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ) override;
virtual void SendCollectEntity (const cEntity & a_Entity, const cPlayer & a_Player) override;
virtual void SendEntityVelocity (const cEntity & a_Entity) override;
virtual void SendDestroyEntity (const cEntity & a_Entity) override;
virtual void SendEntityRelMove (const cEntity & a_Entity, char a_RelX, char a_RelY, char a_RelZ) override;
virtual void SendEntityRelMoveLook (const cEntity & a_Entity, char a_RelX, char a_RelY, char a_RelZ) override;
virtual void SendEntityLook(const cEntity & a_Entity) override;
virtual void SendTeleportEntity(const cEntity & a_Entity) override;
virtual void SendEntityHeadLook(const cEntity & a_Entity) override;
virtual void SendEntityMetadata(const cEntity & a_Entity) override;
virtual void SendEntityEffect(const cEntity & a_Entity, int a_EffectID, int a_Amplifier, short a_Duration) override;
virtual void SendRemoveEntityEffect(const cEntity & a_Entity, int a_EffectID) override;
virtual void SendEntityProperties(const cEntity & a_Entity) override;
virtual void SendKeepAlive(int a_PingID) override;
virtual void SendHealth(void) override;
virtual void SendExperience(void) override;
virtual void SendPaintingSpawn(const cPainting & a_Painting) override;
virtual void SendPluginMessage(const AString & a_Channel, const AString & a_Message) override;
virtual void SendUnloadChunk(int a_ChunkX, int a_ChunkZ) override;
virtual void SendChunkData(int a_ChunkX, int a_ChunkZ, cChunkDataSerializer & a_Serializer) override;
virtual void SendBlockChange(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override;
virtual void SendBlockChanges(int a_ChunkX, int a_ChunkZ, const sSetBlockVector & a_Changes) override;
virtual void SendChat(const AString & a_Message) override;
virtual void SendChat(const cCompositeChat & a_Message) override;
virtual void SendPlayerListItem(const cPlayer & a_Player, bool a_IsOnline) override {}
virtual void SendEntityEquipment(const cEntity & a_Entity, short a_SlotNum, const cItem & a_Item) override;
virtual void SendLogin(const cPlayer & a_Player, const cWorld & a_World) override;
protected:
virtual void HandlePacketStatusRequest(cByteBuffer & a_ByteBuffer) override;
// Packet handlers while in the Login state (m_State == 2):
virtual void HandlePacketLoginStart(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketLoginEncryptionResponse(cByteBuffer & a_ByteBuffer) override;
// Packet handlers while in the Game state (m_State == 3):
virtual void HandlePacketPluginMessage(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketClientStatus(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketSteerVehicle(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketEntityAction(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketUseEntity(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketKeepAlive(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketPlayerPos(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketPlayerPosLook(cByteBuffer & a_ByteBuffer) override;
virtual void HandlePacketClientSettings(cByteBuffer & a_ByteBuffer) override;
} ;