Cuberite
A lightweight, fast and extensible game server for Minecraft
Protocol_1_14.h
Go to the documentation of this file.
1 
2 // Protocol_1_14.h
3 
4 /*
5 Declares the 1.14 protocol classes:
6  - cProtocol_1_14
7  - release 1.14 protocol (#477)
8 */
9 
10 
11 
12 
13 
14 #pragma once
15 
16 #include "Protocol_1_13.h"
17 
18 
19 
20 
21 
23  public cProtocol_1_13_2
24 {
26 
27 public:
28 
29  using Super::Super;
30 
31 protected:
32 
33  virtual void SendBlockAction (Vector3i a_BlockPos, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType) override;
34  virtual void SendBlockBreakAnim (UInt32 a_EntityID, Vector3i a_BlockPos, char a_Stage) override;
35  virtual void SendBlockChange (Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override;
36  virtual void SendEditSign (Vector3i a_BlockPos) override;
37  virtual void SendEntityAnimation (const cEntity & a_Entity, EntityAnimation a_Animation) override;
38  virtual void SendEntitySpawn (const cEntity & a_Entity, const UInt8 a_ObjectType, const Int32 a_ObjectData) override;
39  virtual void SendLogin (const cPlayer & a_Player, const cWorld & a_World) override;
40  virtual void SendMapData (const cMap & a_Map, int a_DataStartX, int a_DataStartY) override;
41  virtual void SendPaintingSpawn (const cPainting & a_Painting) override;
42  virtual void SendParticleEffect (const AString & a_ParticleName, Vector3f a_Src, Vector3f a_Offset, float a_ParticleData, int a_ParticleAmount, std::array<int, 2> a_Data) override;
43  virtual void SendRespawn (eDimension a_Dimension) override;
44  virtual void SendSoundParticleEffect (const EffectID a_EffectID, Vector3i a_Origin, int a_Data) override;
45  virtual void SendUpdateBlockEntity (cBlockEntity & a_BlockEntity) override;
46  virtual void SendUpdateSign (Vector3i a_BlockPos, const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4) override;
47  virtual void SendWindowOpen (const cWindow & a_Window) override;
48 
49  virtual UInt8 GetEntityMetadataID(EntityMetadata a_Metadata) const override;
50  virtual UInt32 GetPacketID(ePacketType a_PacketType) const override;
51  virtual std::pair<short, short> GetItemFromProtocolID(UInt32 a_ProtocolID) const override;
52  virtual UInt32 GetProtocolBlockType(BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta) const override;
53  virtual signed char GetProtocolEntityStatus(EntityAnimation a_Animation) const override;
54  virtual UInt8 GetProtocolEntityType(const cEntity & a_Entity) const override;
55  virtual UInt32 GetProtocolItemType(short a_ItemID, short a_ItemDamage) const override;
56  virtual UInt32 GetProtocolMobType(eMonsterType a_MobType) const override;
57  virtual int GetProtocolParticleID(const AString & a_ParticleName) const override;
58  virtual UInt32 GetProtocolStatisticType(CustomStatistic a_Statistic) const override;
59  virtual Version GetProtocolVersion() const override;
60 
61  virtual bool HandlePacket(cByteBuffer & a_ByteBuffer, UInt32 a_PacketType) override;
62  virtual void HandlePacketBlockDig(cByteBuffer & a_ByteBuffer) override;
63  virtual void HandlePacketBlockPlace(cByteBuffer & a_ByteBuffer) override;
64  virtual void HandlePacketUpdateSign(cByteBuffer & a_ByteBuffer) override;
65 
66  virtual void WriteEntityMetadata(cPacketizer & a_Pkt, EntityMetadata a_Metadata, EntityMetadataType a_FieldType) const override;
67  virtual void WriteEntityMetadata(cPacketizer & a_Pkt, const cEntity & a_Entity) const override;
68  virtual void WriteMobMetadata(cPacketizer & a_Pkt, const cMonster & a_Mob) const override;
69 };
70 
71 
72 
73 
74 
76  public cProtocol_1_14
77 {
79 
80 public:
81 
82  using Super::Super;
83 
84 protected:
85 
86  virtual Version GetProtocolVersion() const override;
87 };
88 
89 
90 
91 
92 
94  public cProtocol_1_14_1
95 {
97 
98 public:
99 
100  using Super::Super;
101 
102 protected:
103 
104  virtual Version GetProtocolVersion() const override;
105 };
106 
107 
108 
109 
110 
112  public cProtocol_1_14_2
113 {
115 
116 public:
117 
118  using Super::Super;
119 
120 protected:
121 
122  virtual Version GetProtocolVersion() const override;
123 };
124 
125 
126 
127 
128 
130  public cProtocol_1_14_3
131 {
133 
134 public:
135 
136  using Super::Super;
137 
138 protected:
139 
140  virtual Version GetProtocolVersion() const override;
141 };
unsigned char NIBBLETYPE
The datatype used by nibbledata (meta, light, skylight)
Definition: ChunkDef.h:44
unsigned char BLOCKTYPE
The datatype used by blockdata.
Definition: ChunkDef.h:41
EntityAnimation
Definition: Defines.h:458
eDimension
Dimension of a world.
Definition: Defines.h:231
EffectID
Definition: EffectID.h:6
unsigned int UInt32
Definition: Globals.h:157
signed int Int32
Definition: Globals.h:152
unsigned char UInt8
Definition: Globals.h:159
eMonsterType
Identifies individual monster type.
Definition: MonsterTypes.h:11
CustomStatistic
std::string AString
Definition: StringUtils.h:11
An object that can store incoming bytes and lets its clients read the bytes sequentially The bytes ar...
Definition: ByteBuffer.h:32
Definition: Entity.h:76
Definition: Player.h:29
Encapsulates an in-game world map.
Definition: Map.h:83
Composes an individual packet in the protocol's m_OutPacketBuffer; sends it just before being destruc...
Definition: Packetizer.h:60
EntityMetadataType
Definition: Protocol.h:311
ePacketType
Logical types of outgoing packets.
Definition: Protocol.h:57
Version
The protocol version number, received from the client in the Handshake packet.
Definition: Protocol.h:335
EntityMetadata
Definition: Protocol.h:138
cProtocol_1_13_1 Super
virtual void SendWindowOpen(const cWindow &a_Window) override
virtual void WriteEntityMetadata(cPacketizer &a_Pkt, EntityMetadata a_Metadata, EntityMetadataType a_FieldType) const override
virtual Version GetProtocolVersion() const override
Returns the protocol version.
virtual void HandlePacketBlockPlace(cByteBuffer &a_ByteBuffer) override
virtual void HandlePacketUpdateSign(cByteBuffer &a_ByteBuffer) override
virtual UInt32 GetProtocolMobType(eMonsterType a_MobType) const override
Converts eMonsterType to protocol-specific mob types.
virtual void SendBlockBreakAnim(UInt32 a_EntityID, Vector3i a_BlockPos, char a_Stage) override
cProtocol_1_13_2 Super
Definition: Protocol_1_14.h:25
virtual void SendRespawn(eDimension a_Dimension) override
virtual UInt32 GetProtocolStatisticType(CustomStatistic a_Statistic) const override
virtual UInt8 GetEntityMetadataID(EntityMetadata a_Metadata) const override
virtual void SendParticleEffect(const AString &a_ParticleName, Vector3f a_Src, Vector3f a_Offset, float a_ParticleData, int a_ParticleAmount, std::array< int, 2 > a_Data) override
virtual void SendUpdateSign(Vector3i a_BlockPos, const AString &a_Line1, const AString &a_Line2, const AString &a_Line3, const AString &a_Line4) override
virtual bool HandlePacket(cByteBuffer &a_ByteBuffer, UInt32 a_PacketType) override
Reads and handles the packet.
virtual void SendSoundParticleEffect(const EffectID a_EffectID, Vector3i a_Origin, int a_Data) override
virtual void SendPaintingSpawn(const cPainting &a_Painting) override
virtual void SendUpdateBlockEntity(cBlockEntity &a_BlockEntity) override
virtual void SendMapData(const cMap &a_Map, int a_DataStartX, int a_DataStartY) override
virtual void SendLogin(const cPlayer &a_Player, const cWorld &a_World) override
virtual UInt8 GetProtocolEntityType(const cEntity &a_Entity) const override
Converts an entity to a protocol-specific entity type.
virtual std::pair< short, short > GetItemFromProtocolID(UInt32 a_ProtocolID) const override
virtual int GetProtocolParticleID(const AString &a_ParticleName) const override
The 1.8 protocol use a particle id instead of a string.
virtual void SendEntityAnimation(const cEntity &a_Entity, EntityAnimation a_Animation) override
virtual signed char GetProtocolEntityStatus(EntityAnimation a_Animation) const override
Converts an animation into an ID suitable for use with the Entity Status packet.
virtual UInt32 GetProtocolItemType(short a_ItemID, short a_ItemDamage) const override
virtual void SendBlockAction(Vector3i a_BlockPos, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType) override
virtual void HandlePacketBlockDig(cByteBuffer &a_ByteBuffer) override
virtual void WriteMobMetadata(cPacketizer &a_Pkt, const cMonster &a_Mob) const override
Writes the mob-specific metadata for the specified mob.
virtual void SendEditSign(Vector3i a_BlockPos) override
Request the client to open up the sign editor for the sign (1.6+)
virtual void SendBlockChange(Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override
virtual void SendEntitySpawn(const cEntity &a_Entity, const UInt8 a_ObjectType, const Int32 a_ObjectData) override
Sends the entity type and entity-dependent data required for the entity to initially spawn.
virtual UInt32 GetProtocolBlockType(BLOCKTYPE a_BlockType, NIBBLETYPE a_Meta) const override
virtual UInt32 GetPacketID(ePacketType a_PacketType) const override
Get the packet ID for a given packet.
virtual Version GetProtocolVersion() const override
Returns the protocol version.
cProtocol_1_14 Super
Definition: Protocol_1_14.h:78
virtual Version GetProtocolVersion() const override
Returns the protocol version.
cProtocol_1_14_1 Super
Definition: Protocol_1_14.h:96
cProtocol_1_14_2 Super
virtual Version GetProtocolVersion() const override
Returns the protocol version.
virtual Version GetProtocolVersion() const override
Returns the protocol version.
The version 110 protocol, used by 1.9.3 and 1.9.4.
Definition: Protocol_1_9.h:170
Represents a UI window.
Definition: Window.h:54
Definition: World.h:53