![]() |
Cuberite
A lightweight, fast and extensible game server for Minecraft
|
#include <Protocol_1_13.h>
Public Member Functions | |
cProtocol_1_13 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
virtual void | Initialize (cClientHandle &a_Client) override |
Called after construction so that the protocol class can initialize itself. More... | |
![]() | |
cProtocol_1_12_2 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
![]() | |
cProtocol_1_12_1 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
![]() | |
cProtocol_1_12 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
virtual void | SendCollectEntity (const cEntity &a_Entity, const cPlayer &a_Player, int a_Count) override |
virtual void | SendHideTitle (void) override |
virtual void | SendResetTitle (void) override |
virtual void | SendSpawnMob (const cMonster &a_Mob) override |
virtual void | SendTitleTimes (int a_FadeInTicks, int a_DisplayTicks, int a_FadeOutTicks) override |
![]() | |
cProtocol_1_11_1 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
![]() | |
cProtocol_1_11_0 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
![]() | |
cProtocol_1_10_0 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
![]() | |
cProtocol_1_9_4 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
virtual void | SendUpdateSign (int a_BlockX, int a_BlockY, int a_BlockZ, const AString &a_Line1, const AString &a_Line2, const AString &a_Line3, const AString &a_Line4) override |
![]() | |
cProtocol_1_9_2 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
![]() | |
cProtocol_1_9_1 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
virtual void | SendLogin (const cPlayer &a_Player, const cWorld &a_World) override |
![]() | |
cProtocol_1_9_0 (cClientHandle *a_Client, const AString &a_ServerAddress, UInt16 a_ServerPort, UInt32 a_State) | |
virtual void | DataReceived (const char *a_Data, size_t a_Size) override |
Called when client sends some data: More... | |
virtual AString | GetAuthServerID (void) override |
Returns the ServerID used for authentication through session.minecraft.net. More... | |
virtual void | SendAttachEntity (const cEntity &a_Entity, const cEntity &a_Vehicle) override |
Sending stuff to clients (alphabetically sorted): More... | |
virtual void | SendBlockAction (int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType) override |
virtual void | SendBlockBreakAnim (UInt32 a_EntityID, int a_BlockX, int a_BlockY, int a_BlockZ, char a_Stage) override |
virtual void | SendCameraSetTo (const cEntity &a_Entity) override |
virtual void | SendChat (const AString &a_Message, eChatType a_Type) override |
virtual void | SendChat (const cCompositeChat &a_Message, eChatType a_Type, bool a_ShouldUseChatPrefixes) override |
virtual void | SendChatRaw (const AString &a_MessageRaw, eChatType a_Type) override |
virtual void | SendDestroyEntity (const cEntity &a_Entity) override |
virtual void | SendDetachEntity (const cEntity &a_Entity, const cEntity &a_PreviousVehicle) override |
virtual void | SendDisconnect (const AString &a_Reason) override |
virtual void | SendDisplayObjective (const AString &a_Objective, cScoreboard::eDisplaySlot a_Display) override |
virtual void | SendEditSign (int a_BlockX, int a_BlockY, int a_BlockZ) override |
Request the client to open up the sign editor for the sign (1.6+) More... | |
virtual void | SendEntityAnimation (const cEntity &a_Entity, char a_Animation) override |
virtual void | SendEntityEffect (const cEntity &a_Entity, int a_EffectID, int a_Amplifier, int 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 | SendEntityStatus (const cEntity &a_Entity, char a_Status) override |
virtual void | SendEntityVelocity (const cEntity &a_Entity) override |
virtual void | SendExperience (void) override |
virtual void | SendExperienceOrb (const cExpOrb &a_ExpOrb) override |
virtual void | SendExplosion (double a_BlockX, double a_BlockY, double a_BlockZ, float a_Radius, const cVector3iArray &a_BlocksAffected, const Vector3d &a_PlayerMotion) override |
virtual void | SendGameMode (eGameMode a_GameMode) override |
virtual void | SendHealth (void) override |
virtual void | SendHeldItemChange (int a_ItemIndex) override |
virtual void | SendInventorySlot (char a_WindowID, short a_SlotNum, const cItem &a_Item) override |
virtual void | SendLeashEntity (const cEntity &a_Entity, const cEntity &a_EntityLeashedTo) override |
virtual void | SendLoginSuccess (void) override |
virtual void | SendPickupSpawn (const cPickup &a_Pickup) override |
virtual void | SendPlayerAbilities (void) override |
virtual void | SendPlayerListAddPlayer (const cPlayer &a_Player) override |
virtual void | SendPlayerListRemovePlayer (const cPlayer &a_Player) override |
virtual void | SendPlayerListUpdateDisplayName (const cPlayer &a_Player, const AString &a_CustomName) override |
virtual void | SendPlayerListUpdateGameMode (const cPlayer &a_Player) override |
virtual void | SendPlayerListUpdatePing (const cPlayer &a_Player) override |
virtual void | SendPlayerMaxSpeed (void) override |
Informs the client of the maximum player speed (1.6.1+) More... | |
virtual void | SendPlayerMoveLook (void) override |
virtual void | SendPlayerPosition (void) override |
virtual void | SendPlayerSpawn (const cPlayer &a_Player) override |
virtual void | SendRemoveEntityEffect (const cEntity &a_Entity, int a_EffectID) 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 | SendSetRawSubTitle (const AString &a_SubTitle) override |
virtual void | SendSetRawTitle (const AString &a_Title) override |
virtual void | SendSetSubTitle (const cCompositeChat &a_SubTitle) override |
virtual void | SendSetTitle (const cCompositeChat &a_Title) override |
virtual void | SendSoundParticleEffect (const EffectID a_EffectID, int a_SrcX, int a_SrcY, int a_SrcZ, int a_Data) override |
virtual void | SendSpawnFallingBlock (const cFallingBlock &a_FallingBlock) override |
virtual void | SendSpawnObject (const cEntity &a_Entity, char a_ObjectType, int a_ObjectData, Byte a_Yaw, Byte a_Pitch) override |
virtual void | SendSpawnVehicle (const cEntity &a_Vehicle, char a_VehicleType, char a_VehicleSubType) override |
virtual void | SendTeleportEntity (const cEntity &a_Entity) override |
virtual void | SendThunderbolt (int a_BlockX, int a_BlockY, int a_BlockZ) override |
virtual void | SendTimeUpdate (Int64 a_WorldAge, Int64 a_TimeOfDay, bool a_DoDaylightCycle) override |
virtual void | SendUnleashEntity (const cEntity &a_Entity) override |
virtual void | SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override |
virtual void | SendUseBed (const cEntity &a_Entity, int a_BlockX, int a_BlockY, int a_BlockZ) override |
virtual void | SendWeather (eWeather a_Weather) override |
virtual void | SendWholeInventory (const cWindow &a_Window) override |
virtual void | SendWindowClose (const cWindow &a_Window) override |
virtual void | SendWindowOpen (const cWindow &a_Window) override |
virtual void | SendWindowProperty (const cWindow &a_Window, short a_Property, short a_Value) override |
![]() | |
cProtocol (cClientHandle *a_Client) | |
virtual | ~cProtocol () |
Protected Member Functions | |
virtual UInt32 | GetPacketID (ePacketType a_PacketType) override |
Get the packet ID for a given packet. More... | |
virtual AString | GetPaletteVersion () const |
Returns the string identifying the palettes' version, such as "1.13" or "1.14.4". More... | |
virtual bool | HandlePacket (cByteBuffer &a_ByteBuffer, UInt32 a_PacketType) override |
Reads and handles the packet. More... | |
virtual void | HandlePacketPluginMessage (cByteBuffer &a_ByteBuffer) override |
virtual void | HandlePacketStatusRequest (cByteBuffer &a_ByteBuffer) override |
virtual bool | ReadItem (cByteBuffer &a_ByteBuffer, cItem &a_Item, size_t a_KeepRemainingBytes) override |
Reads an item out of the received data, sets a_Item to the values read. More... | |
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 | SendChunkData (int a_ChunkX, int a_ChunkZ, cChunkDataSerializer &a_Serializer) override |
virtual void | SendMapData (const cMap &a_Map, int a_DataStartX, int a_DataStartY) override |
virtual void | SendPaintingSpawn (const cPainting &a_Painting) 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_ParticleAmount) 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 | SendPluginMessage (const AString &a_Channel, const AString &a_Message) override |
virtual void | SendScoreboardObjective (const AString &a_Name, const AString &a_DisplayName, Byte a_Mode) override |
virtual void | SendSoundEffect (const AString &a_SoundName, double a_X, double a_Y, double a_Z, float a_Volume, float a_Pitch) override |
virtual void | SendStatistics (const cStatManager &a_Manager) override |
virtual void | SendTabCompletionResults (const AStringVector &a_Results) override |
virtual void | SendUpdateBlockEntity (cBlockEntity &a_BlockEntity) override |
virtual void | WriteEntityMetadata (cPacketizer &a_Pkt, const cEntity &a_Entity) override |
Writes the metadata for the specified entity, not including the terminating 0xff. More... | |
virtual void | WriteItem (cPacketizer &a_Pkt, const cItem &a_Item) override |
Writes the item data into a packet. More... | |
![]() | |
virtual void | HandlePacketKeepAlive (cByteBuffer &a_ByteBuffer) override |
virtual void | SendKeepAlive (UInt32 a_PingID) override |
![]() | |
virtual void | HandlePacketAdvancementTab (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketBlockPlace (cByteBuffer &a_ByteBuffer) override |
virtual void | HandlePacketCraftingBookData (cByteBuffer &a_ByteBuffer) |
virtual void | WriteMobMetadata (cPacketizer &a_Pkt, const cMonster &a_Mob) override |
Writes the mob-specific metadata for the specified mob. More... | |
![]() | |
virtual void | WriteBlockEntity (cPacketizer &a_Pkt, const cBlockEntity &a_BlockEntity) override |
Writes the block entity data for the specified block entity into the packet. More... | |
![]() | |
void | AddReceivedData (const char *a_Data, size_t a_Size) |
Adds the received (unencrypted) data to m_ReceivedData, parses complete packets. More... | |
eBlockFace | FaceIntToBlockFace (Int32 a_FaceInt) |
Converts the BlockFace received by the protocol into eBlockFace constants. More... | |
eHand | HandIntToEnum (Int32 a_Hand) |
Converts the hand parameter received by the protocol into eHand constants. More... | |
virtual void | HandleConfirmTeleport (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketAnimation (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketBlockDig (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketBoatSteer (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketChatMessage (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketClientSettings (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketClientStatus (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketCreativeInventoryAction (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketEnchantItem (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketEntityAction (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketLoginEncryptionResponse (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketLoginStart (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketPlayer (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketPlayerAbilities (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketPlayerLook (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketPlayerPos (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketPlayerPosLook (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketSlotSelect (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketSpectate (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketStatusPing (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketSteerVehicle (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketTabComplete (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketUpdateSign (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketUseEntity (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketUseItem (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketVehicleMove (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketWindowClick (cByteBuffer &a_ByteBuffer) |
virtual void | HandlePacketWindowClose (cByteBuffer &a_ByteBuffer) |
virtual void | HandleVanillaPluginMessage (cByteBuffer &a_ByteBuffer, const AString &a_Channel) |
Parses Vanilla plugin messages into specific ClientHandle calls. More... | |
void | ParseItemMetadata (cItem &a_Item, const AString &a_Metadata) |
Parses item metadata as read by ReadItem(), into the item enchantments. More... | |
void | SendCompass (const cWorld &a_World) |
virtual void | SendData (const char *a_Data, size_t a_Size) override |
Sends the data to the client, encrypting them if needed. More... | |
virtual void | SendPacket (cPacketizer &a_Packet) override |
Sends the packet to the client. More... | |
void | StartEncryption (const Byte *a_Key) |
void | WriteEntityProperties (cPacketizer &a_Pkt, const cEntity &a_Entity) |
Writes the entity properties for the specified entity, including the Count field. More... | |
Protected Attributes | |
std::map< UInt32, UInt32 > | m_BlockTypeMap |
Temporary hack for initial 1.13+ support while keeping BLOCKTYPE data: Map of the BLOCKTYPE::META to the protocol-specific NetBlockID. More... | |
std::shared_ptr< const BlockTypePalette > | m_BlockTypePalette |
The palette used to transform internal block type palette into the protocol-specific ID. More... | |
![]() | |
AString | m_AuthServerID |
cFile | m_CommLogFile |
The logfile where the comm is logged, when g_ShouldLogComm is true. More... | |
cAesCfb128Decryptor | m_Decryptor |
cAesCfb128Encryptor | m_Encryptor |
bool | m_IsEncrypted |
bool | m_IsTeleportIdConfirmed |
The current teleport ID, and whether it has been confirmed by the client. More... | |
UInt32 | m_OutstandingTeleportId |
cByteBuffer | m_ReceivedData |
Buffer for the received data. More... | |
AString | m_ServerAddress |
UInt16 | m_ServerPort |
UInt32 | m_State |
State of the protocol. More... | |
![]() | |
cClientHandle * | m_Client |
cCriticalSection | m_CSPacket |
Provides synchronization for sending the entire packet at once. More... | |
cByteBuffer | m_OutPacketBuffer |
Buffer for composing the outgoing packets, through cPacketizer. More... | |
cByteBuffer | m_OutPacketLenBuffer |
Buffer for composing packet length (so that each cPacketizer instance doesn't allocate a new cPacketBuffer) More... | |
Private Types | |
typedef cProtocol_1_12_2 | Super |
Definition at line 30 of file Protocol_1_13.h.
|
private |
Definition at line 33 of file Protocol_1_13.h.
cProtocol_1_13::cProtocol_1_13 | ( | cClientHandle * | a_Client, |
const AString & | a_ServerAddress, | ||
UInt16 | a_ServerPort, | ||
UInt32 | a_State | ||
) |
Definition at line 66 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Get the packet ID for a given packet.
Reimplemented from cProtocol_1_12_1.
Definition at line 94 of file Protocol_1_13.cpp.
|
protectedvirtual |
Returns the string identifying the palettes' version, such as "1.13" or "1.14.4".
The palettes for that version are loaded into m_BlockTypePalette and m_ItemTypePalette.
Definition at line 157 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reads and handles the packet.
The packet length and type have already been read. Returns true if the packet was understood, false if it was an unknown packet.
Reimplemented from cProtocol_1_12_1.
Definition at line 166 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 264 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_12_2.
Definition at line 219 of file Protocol_1_13.cpp.
|
overridevirtual |
Called after construction so that the protocol class can initialize itself.
Throws a std::exception descendant on failure; the client is kicked with the exception's message as a result.
Reimplemented from cProtocol.
Definition at line 75 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reads an item out of the received data, sets a_Item to the values read.
Returns false if not enough received data. a_KeepRemainingBytes tells the function to keep that many bytes at the end of the buffer.
Reimplemented from cProtocol_1_9_0.
Definition at line 425 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 289 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 302 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_4.
Definition at line 322 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 335 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 344 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 353 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 362 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 371 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 380 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_10_0.
Definition at line 389 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 398 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 407 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Reimplemented from cProtocol_1_9_0.
Definition at line 416 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Writes the metadata for the specified entity, not including the terminating 0xff.
Reimplemented from cProtocol_1_12.
Definition at line 488 of file Protocol_1_13.cpp.
|
overrideprotectedvirtual |
Writes the item data into a packet.
Reimplemented from cProtocol_1_9_0.
Definition at line 459 of file Protocol_1_13.cpp.
Temporary hack for initial 1.13+ support while keeping BLOCKTYPE data: Map of the BLOCKTYPE::META to the protocol-specific NetBlockID.
Definition at line 48 of file Protocol_1_13.h.
|
protected |
The palette used to transform internal block type palette into the protocol-specific ID.
Definition at line 44 of file Protocol_1_13.h.