summaryrefslogtreecommitdiffstats
path: root/src/Protocol/Protocol_1_12.h
blob: e1fc121493085833eb478c94f730e75fb0af2592 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

// Protocol_1_12.h

/*
Declares the 1.12 protocol classes:
	- cProtocol_1_12
		- release 1.12 protocol (#335)
	- cProtocol_1_12_1
		- release 1.12.1 protocol (#338)
(others may be added later in the future for the 1.12 release series)
*/





#pragma once

#include "Protocol_1_11.h"





class cProtocol_1_12 :
	public cProtocol_1_11_1
{
	typedef cProtocol_1_11_1 super;

public:
	cProtocol_1_12(cClientHandle * a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State);

	virtual void SendAttachEntity(const cEntity & a_Entity, const cEntity & a_Vehicle) override;
	virtual void SendCameraSetTo(const cEntity & a_Entity) override;
	virtual void SendCollectEntity(const cEntity & a_Entity, const cPlayer & a_Player, int a_Count) override;
	virtual void SendDestroyEntity(const cEntity & a_Entity) override;
	virtual void SendDetachEntity(const cEntity & a_Entity, const cEntity & a_PreviousVehicle) override;
	virtual void SendDisplayObjective(const AString & a_Objective, cScoreboard::eDisplaySlot a_Display) override;
	virtual void SendEntityEffect(const cEntity & a_Entity, int a_EffectID, int a_Amplifier, short a_Duration) override;
	virtual void SendEntityEquipment(const cEntity & a_Entity, short a_SlotNum, const cItem & a_Item) override;
	virtual void SendEntityHeadLook(const cEntity & a_Entity) override;
	virtual void SendEntityLook(const cEntity & a_Entity) override;
	virtual void SendEntityMetadata(const cEntity & a_Entity) override;
	virtual void SendEntityProperties(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 SendEntityVelocity(const cEntity & a_Entity) override;
	virtual void SendExperience(void) override;
	virtual void SendHealth(void) override;
	virtual void SendHideTitle(void) override;
	virtual void SendLeashEntity(const cEntity & a_Entity, const cEntity & a_EntityLeashedTo) override;
	virtual void SendLogin(const cPlayer & a_Player, const cWorld & a_World) override;
	virtual void SendPlayerMaxSpeed(void) override;
	virtual void SendRemoveEntityEffect(const cEntity & a_Entity, int a_EffectID) override;
	virtual void SendResetTitle(void) override;
	virtual void SendRespawn(eDimension a_Dimension) override;
	virtual void SendScoreUpdate(const AString & a_Objective, const AString & a_Player, cObjective::Score a_Score, Byte a_Mode) override;
	virtual void SendScoreboardObjective(const AString & a_Name, const AString & a_DisplayName, Byte a_Mode) override;
	virtual void SendSetRawSubTitle(const AString & a_SubTitle) override;
	virtual void SendSetRawTitle(const AString & a_Title) override;
	virtual void SendSpawnMob(const cMonster & a_Mob) override;
	virtual void SendTeleportEntity(const cEntity & a_Entity) override;
	virtual void SendTimeUpdate(Int64 a_WorldAge, Int64 a_TimeOfDay, bool a_DoDaylightCycle) override;
	virtual void SendTitleTimes(int a_FadeInTicks, int a_DisplayTicks, int a_FadeOutTicks) override;
	virtual void SendUpdateBlockEntity(cBlockEntity & a_BlockEntity) override;
	virtual void SendUnleashEntity(const cEntity & a_Entity) override;
protected:
	virtual bool HandlePacket(cByteBuffer & a_ByteBuffer, UInt32 a_PacketType) override;
	virtual void HandlePacketAdvancementTab(cByteBuffer & a_ByteBuffer);
	virtual void HandlePacketCraftingBookData(cByteBuffer & a_ByteBuffer);
	virtual void HandlePacketBlockPlace(cByteBuffer & a_ByteBuffer) override;
	virtual void HandlePacketStatusRequest(cByteBuffer & a_ByteBuffer) override;
	virtual void WriteEntityMetadata(cPacketizer & a_Pkt, const cEntity & a_Entity) override;
	virtual void WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mob) override;
};





class cProtocol_1_12_1 :
	public cProtocol_1_12
{
	typedef cProtocol_1_12 super;

public:
	cProtocol_1_12_1(cClientHandle * a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State);

	virtual void SendRespawn(eDimension a_Dimension) override;
	virtual void SendPlayerListAddPlayer(const cPlayer & a_Player) override;
	virtual void SendPlayerListRemovePlayer(const cPlayer & a_Player) override;
	virtual void SendPlayerListUpdateGameMode(const cPlayer & a_Player) override;
	virtual void SendPlayerListUpdatePing(const cPlayer & a_Player) override;
	virtual void SendPlayerListUpdateDisplayName(const cPlayer & a_Player, const AString & a_CustomName) override;
	virtual void SendPlayerAbilities(void) 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 SendDestroyEntity(const cEntity & a_Entity) override;
	virtual void SendRemoveEntityEffect(const cEntity & a_Entity, int a_EffectID) override;
	virtual void SendEntityHeadLook(const cEntity & a_Entity) override;
	virtual void SendCameraSetTo(const cEntity & a_Entity) override;
	virtual void SendDisplayObjective(const AString & a_Objective, cScoreboard::eDisplaySlot a_Display) override;
	virtual void SendEntityMetadata(const cEntity & a_Entity) override;
	virtual void SendEntityVelocity(const cEntity & a_Entity) override;
	virtual void SendEntityEquipment(const cEntity & a_Entity, short a_SlotNum, const cItem & a_Item) override;
	virtual void SendExperience(void) override;
	virtual void SendHealth(void) override;
	virtual void SendScoreboardObjective(const AString & a_Name, const AString & a_DisplayName, Byte a_Mode) override;
	virtual void SendAttachEntity(const cEntity & a_Entity, const cEntity & a_Vehicle) override;
	virtual void SendDetachEntity(const cEntity & a_Entity, const cEntity & a_PreviousVehicle) override;
	virtual void SendScoreUpdate(const AString & a_Objective, const AString & a_Player, cObjective::Score a_Score, Byte a_Mode) override;
	virtual void SendLogin(const cPlayer & a_Player, const cWorld & a_World) override;
	virtual void SendTimeUpdate(Int64 a_WorldAge, Int64 a_TimeOfDay, bool a_DoDaylightCycle) override;
	virtual void SendHideTitle(void) override;
	virtual void SendResetTitle(void) override;
	virtual void SendSetRawSubTitle(const AString & a_SubTitle) override;
	virtual void SendSetRawTitle(const AString & a_Title) override;
	virtual void SendTitleTimes(int a_FadeInTicks, int a_DisplayTicks, int a_FadeOutTicks) override;
	virtual void SendCollectEntity(const cEntity & a_Entity, const cPlayer & a_Player, int a_Count) override;
	virtual void SendTeleportEntity(const cEntity & a_Entity) override;
	virtual void SendEntityProperties(const cEntity & a_Entity) override;
	virtual void SendEntityEffect(const cEntity & a_Entity, int a_EffectID, int a_Amplifier, short a_Duration) override;
	virtual void SendPlayerMaxSpeed(void) override;

protected:
	virtual bool HandlePacket(cByteBuffer & a_ByteBuffer, UInt32 a_PacketType) override;
	virtual void HandlePacketStatusRequest(cByteBuffer & a_ByteBuffer) override;
};