![]() |
Cuberite
A lightweight, fast and extensible game server for Minecraft
|
Meta-protocol that recognizes multiple protocol versions, creates the specific protocol version instance and redirects everything to it. More...
#include <ProtocolRecognizer.h>
Public Member Functions | |
cProtocolRecognizer (cClientHandle *a_Client) | |
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 | 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 | 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 | SendChunkData (int a_ChunkX, int a_ChunkZ, cChunkDataSerializer &a_Serializer) override |
virtual void | SendCollectEntity (const cEntity &a_Entity, const cPlayer &a_Player, int a_Count) override |
virtual void | SendData (const char *a_Data, size_t a_Size) override |
A generic data-sending routine, all outgoing packet data needs to be routed through this so that descendants may override it. More... | |
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 | SendHideTitle (void) override |
virtual void | SendInventorySlot (char a_WindowID, short a_SlotNum, const cItem &a_Item) override |
virtual void | SendKeepAlive (UInt32 a_PingID) 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 | SendLoginSuccess (void) 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 | 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 | SendPluginMessage (const AString &a_Channel, const AString &a_Message) 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 | SendScoreboardObjective (const AString &a_Name, const AString &a_DisplayName, Byte a_Mode) 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 | SendSoundEffect (const AString &a_SoundName, double a_X, double a_Y, double a_Z, float a_Volume, float a_Pitch) 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 | SendSpawnMob (const cMonster &a_Mob) 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 | SendStatistics (const cStatManager &a_Manager) override |
virtual void | SendTabCompletionResults (const AStringVector &a_Results) 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 | SendTitleTimes (int a_FadeInTicks, int a_DisplayTicks, int a_FadeOutTicks) override |
virtual void | SendUnleashEntity (const cEntity &a_Entity) override |
virtual void | SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override |
virtual void | SendUpdateBlockEntity (cBlockEntity &a_BlockEntity) override |
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 |
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 |
virtual | ~cProtocolRecognizer () override |
![]() | |
cProtocol (cClientHandle *a_Client) | |
virtual void | Initialize (cClientHandle &a_Client) |
Called after construction so that the protocol class can initialize itself. More... | |
virtual | ~cProtocol () |
Static Public Member Functions | |
static AString | GetVersionTextFromInt (int a_ProtocolVersion) |
Translates protocol version number into protocol version text: 49 -> "1.4.4". More... | |
Protected Member Functions | |
virtual UInt32 | GetPacketID (ePacketType a_PacketType) override |
Returns the protocol-specific packet ID given the protocol-agnostic packet enum. More... | |
void | HandlePacketStatusPing () |
void | HandlePacketStatusRequest () |
virtual void | SendPacket (cPacketizer &a_Pkt) override |
Sends a single packet contained within the cPacketizer class. More... | |
bool | TryRecognizeLengthedProtocol (UInt32 a_PacketLengthRemaining) |
Tries to recognize a protocol in the lengthed family (1.7+), based on m_Buffer; returns true if recognized. More... | |
bool | TryRecognizeProtocol (void) |
Tries to recognize protocol based on m_Buffer contents; returns true if recognized. More... | |
Protected Attributes | |
cByteBuffer | m_Buffer |
Buffer for the incoming data until we recognize the protocol. More... | |
bool | m_InPingForUnrecognizedVersion |
Is a server list ping for an unrecognized version currently occuring? More... | |
std::unique_ptr< cProtocol > | m_Protocol |
The recognized 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 | super |
Meta-protocol that recognizes multiple protocol versions, creates the specific protocol version instance and redirects everything to it.
Definition at line 21 of file ProtocolRecognizer.h.
|
private |
Definition at line 24 of file ProtocolRecognizer.h.
anonymous enum |
Definition at line 27 of file ProtocolRecognizer.h.
cProtocolRecognizer::cProtocolRecognizer | ( | cClientHandle * | a_Client | ) |
Definition at line 28 of file ProtocolRecognizer.cpp.
|
inlineoverridevirtual |
Definition at line 44 of file ProtocolRecognizer.h.
|
overridevirtual |
Called when client sends some data:
Implements cProtocol.
Definition at line 63 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Returns the ServerID used for authentication through session.minecraft.net.
Implements cProtocol.
Definition at line 1003 of file ProtocolRecognizer.cpp.
|
overrideprotectedvirtual |
Returns the protocol-specific packet ID given the protocol-agnostic packet enum.
Implements cProtocol.
Definition at line 1212 of file ProtocolRecognizer.cpp.
|
static |
Translates protocol version number into protocol version text: 49 -> "1.4.4".
Definition at line 39 of file ProtocolRecognizer.cpp.
|
protected |
Definition at line 1276 of file ProtocolRecognizer.cpp.
|
protected |
Definition at line 1231 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Sending stuff to clients (alphabetically sorted):
Implements cProtocol.
Definition at line 136 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 146 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 156 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 166 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 176 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 186 of file ProtocolRecognizer.cpp.
Implements cProtocol.
Definition at line 196 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 206 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 216 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 226 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 236 of file ProtocolRecognizer.cpp.
|
overridevirtual |
A generic data-sending routine, all outgoing packet data needs to be routed through this so that descendants may override it.
Implements cProtocol.
Definition at line 1013 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 246 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 256 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 266 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 753 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Request the client to open up the sign editor for the sign (1.6+)
Implements cProtocol.
Definition at line 284 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 573 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 294 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 304 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 314 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 324 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 334 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 344 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 354 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 364 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 374 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 384 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 713 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 723 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 394 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 404 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 414 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 424 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 434 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 454 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 464 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 474 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 494 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 504 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 514 of file ProtocolRecognizer.cpp.
|
overrideprotectedvirtual |
Sends a single packet contained within the cPacketizer class.
The cPacketizer's destructor calls this to send the contained packet; protocol may transform the data (compression in 1.8 etc).
Implements cProtocol.
Definition at line 1189 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 544 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 524 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 534 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 553 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 563 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 583 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 593 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 623 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 603 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 613 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Informs the client of the maximum player speed (1.6.1+)
Implements cProtocol.
Definition at line 633 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 643 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 653 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 663 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 673 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 683 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 693 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 703 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 733 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 743 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 773 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 793 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 763 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 783 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 803 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 813 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 823 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 833 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 843 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 853 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 863 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 873 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 883 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 893 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 913 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 903 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 484 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 923 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 933 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 943 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 953 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 963 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 973 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 983 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 993 of file ProtocolRecognizer.cpp.
|
overridevirtual |
Implements cProtocol.
Definition at line 444 of file ProtocolRecognizer.cpp.
|
protected |
Tries to recognize a protocol in the lengthed family (1.7+), based on m_Buffer; returns true if recognized.
The packet length and type have already been read, type is 0 The number of bytes remaining in the packet is passed as a_PacketLengthRemaining.
Definition at line 1065 of file ProtocolRecognizer.cpp.
|
protected |
Tries to recognize protocol based on m_Buffer contents; returns true if recognized.
Definition at line 1023 of file ProtocolRecognizer.cpp.
|
protected |
Buffer for the incoming data until we recognize the protocol.
Definition at line 151 of file ProtocolRecognizer.h.
|
protected |
Is a server list ping for an unrecognized version currently occuring?
Definition at line 154 of file ProtocolRecognizer.h.
|
protected |
The recognized protocol.
Definition at line 148 of file ProtocolRecognizer.h.