Cuberite
A lightweight, fast and extensible game server for Minecraft
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
cProtocol Class Referenceabstract

#include <Protocol.h>

Inheritance diagram for cProtocol:
Inheritance graph
[legend]
Collaboration diagram for cProtocol:
Collaboration graph
[legend]

Public Types

enum class  EntityMetadata {
  EntityFlags , EntityAir , EntityCustomName , EntityCustomNameVisible ,
  EntitySilent , EntityNoGravity , EntityPose , PotionThrown ,
  FallingBlockPosition , AreaEffectCloudRadius , AreaEffectCloudColor , AreaEffectCloudSinglePointEffect ,
  AreaEffectCloudParticleId , AreaEffectCloudParticleParameter1 , AreaEffectCloudParticleParameter2 , ArrowFlags ,
  TippedArrowColor , PiercingLevel , BoatLastHitTime , BoatForwardDirection ,
  BoatDamageTaken , BoatType , BoatLeftPaddleTurning , BoatRightPaddleTurning ,
  BoatSplashTimer , EnderCrystalBeamTarget , EnderCrystalShowBottom , WitherSkullInvulnerable ,
  FireworkInfo , FireworkBoostedEntityId , FireworkFromCrossbow , ItemFrameItem ,
  ItemFrameRotation , ItemItem , LivingActiveHand , LivingHealth ,
  LivingPotionEffectColor , LivingPotionEffectAmbient , LivingNumberOfArrows , PlayerAdditionalHearts ,
  PlayerScore , PlayerDisplayedSkinParts , PlayerMainHand , ArmorStandStatus ,
  ArmorStandHeadRotation , ArmorStandBodyRotation , ArmorStandLeftArmRotation , ArmorStandRightArmRotation ,
  ArmorStandLeftLegRotation , ArmorStandRightLegRotation , InsentientFlags , BatHanging ,
  AgeableIsBaby , AbstractHorseFlags , AbstractHorseOwner , HorseVariant ,
  HorseArmour , ChestedHorseChested , LlamaStrength , LlamaCarpetColor ,
  LlamaVariant , PigHasSaddle , PigTotalCarrotOnAStickBoost , RabbitType ,
  PolarBearStanding , SheepFlags , TameableAnimalFlags , TameableAnimalOwner ,
  ThrowableItem , TridentLoyaltyLevel , OcelotType , WolfDamageTaken ,
  WolfBegging , WolfCollarColour , VillagerProfession , IronGolemPlayerCreated ,
  ShulkerFacingDirection , ShulkerAttachmentFallingBlockPosition , ShulkerShieldHeight , BlazeOnFire ,
  CreeperState , CreeperPowered , CreeperIgnited , GuardianStatus ,
  GuardianTarget , IllagerFlags , SpeIlagerSpell , VexFlags ,
  AbstractSkeletonArmsSwinging , SpiderClimbing , WitchAggresive , WitchDrinking ,
  WitherFirstHeadTarget , WitherSecondHeadTarget , WitherThirdHeadTarget , WitherInvulnerableTimer ,
  ZombieIsBaby , ZombieUnusedWasType , ZombieHandsRisedUp , ZombieVillagerConverting ,
  ZombieVillagerProfession , EndermanCarriedBlock , EndermanScreaming , EnderDragonDragonPhase ,
  GhastAttacking , SlimeSize , MinecartShakingPower , MinecartShakingDirection ,
  MinecartShakingMultiplier , MinecartBlockIDMeta , MinecartBlockY , MinecartShowBlock ,
  MinecartCommandBlockCommand , MinecartCommandBlockLastOutput , MinecartFurnacePowered , MooshroomType ,
  TNTPrimedFuseTime
}
 
enum class  EntityMetadataType {
  Byte , VarInt , Float , String ,
  Chat , OptChat , Item , Boolean ,
  Rotation , Position , OptPosition , Direction ,
  OptUUID , OptBlockID , NBT , Particle ,
  VillagerData , OptVarInt , Pose
}
 
enum  ePacketType {
  pktAttachEntity = 0 , pktBlockAction , pktBlockBreakAnim , pktBlockChange ,
  pktBlockChanges , pktBossBar , pktCameraSetTo , pktChatRaw ,
  pktCollectEntity , pktDestroyEntity , pktDifficulty , pktDisconnectDuringLogin ,
  pktDisconnectDuringGame , pktDisplayObjective , pktEditSign , pktEncryptionRequest ,
  pktEntityAnimation , pktEntityEffect , pktEntityEquipment , pktEntityHeadLook ,
  pktEntityLook , pktEntityMeta , pktEntityProperties , pktEntityRelMove ,
  pktEntityRelMoveLook , pktEntityStatus , pktEntityVelocity , pktExperience ,
  pktExplosion , pktGameMode , pktHeldItemChange , pktHorseWindowOpen ,
  pktInventorySlot , pktJoinGame , pktKeepAlive , pktLeashEntity ,
  pktLoginSuccess , pktMapData , pktParticleEffect , pktPingResponse ,
  pktPlayerAbilities , pktPlayerList , pktPlayerListHeaderFooter , pktPlayerMoveLook ,
  pktPluginMessage , pktRemoveEntityEffect , pktResourcePack , pktRespawn ,
  pktScoreboardObjective , pktSpawnObject , pktSoundEffect , pktSoundParticleEffect ,
  pktSpawnExperienceOrb , pktSpawnGlobalEntity , pktSpawnMob , pktSpawnOtherPlayer ,
  pktSpawnPainting , pktSpawnPosition , pktStartCompression , pktStatistics ,
  pktStatusResponse , pktTabCompletionResults , pktTeleportEntity , pktTimeUpdate ,
  pktTitle , pktUnloadChunk , pktUnlockRecipe , pktUpdateBlockEntity ,
  pktUpdateHealth , pktUpdateScore , pktUpdateSign , pktUseBed ,
  pktWeather , pktWindowItems , pktWindowClose , pktWindowOpen ,
  pktWindowProperty
}
 Logical types of outgoing packets. More...
 
enum  State { Status = 1 , Login = 2 , Game = 3 }
 
enum class  Version {
  v1_8_0 = 47 , v1_9_0 = 107 , v1_9_1 = 108 , v1_9_2 = 109 ,
  v1_9_4 = 110 , v1_10_0 = 210 , v1_11_0 = 315 , v1_11_1 = 316 ,
  v1_12 = 335 , v1_12_1 = 338 , v1_12_2 = 340 , v1_13 = 393 ,
  v1_13_1 = 401 , v1_13_2 = 404 , v1_14 = 477 , v1_14_1 = 480 ,
  v1_14_2 = 485 , v1_14_3 = 490 , v1_14_4 = 498
}
 The protocol version number, received from the client in the Handshake packet. More...
 

Public Member Functions

 cProtocol (cClientHandle *a_Client)
 
virtual void DataPrepared (ContiguousByteBuffer &a_Data)=0
 Called by cClientHandle to finalise a buffer of prepared data before they are sent to the client. More...
 
virtual void DataReceived (cByteBuffer &a_Buffer, ContiguousByteBuffer &a_Data)=0
 Called by cClientHandle to process data, when the client sends some. More...
 
virtual AString GetAuthServerID (void)=0
 Returns the ServerID used for authentication through session.minecraft.net. More...
 
virtual void SendAttachEntity (const cEntity &a_Entity, const cEntity &a_Vehicle)=0
 
virtual void SendBlockAction (Vector3i a_BlockPos, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType)=0
 
virtual void SendBlockBreakAnim (UInt32 a_EntityID, Vector3i a_BlockPos, char a_Stage)=0
 
virtual void SendBlockChange (Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)=0
 
virtual void SendBlockChanges (int a_ChunkX, int a_ChunkZ, const sSetBlockVector &a_Changes)=0
 
virtual void SendBossBarAdd (UInt32 a_UniqueID, const cCompositeChat &a_Title, float a_FractionFilled, BossBarColor a_Color, BossBarDivisionType a_DivisionType, bool a_DarkenSky, bool a_PlayEndMusic, bool a_CreateFog)=0
 
virtual void SendBossBarRemove (UInt32 a_UniqueID)=0
 
virtual void SendBossBarUpdateFlags (UInt32 a_UniqueID, bool a_DarkenSky, bool a_PlayEndMusic, bool a_CreateFog)=0
 
virtual void SendBossBarUpdateHealth (UInt32 a_UniqueID, float a_FractionFilled)=0
 
virtual void SendBossBarUpdateStyle (UInt32 a_UniqueID, BossBarColor a_Color, BossBarDivisionType a_DivisionType)=0
 
virtual void SendBossBarUpdateTitle (UInt32 a_UniqueID, const cCompositeChat &a_Title)=0
 
virtual void SendCameraSetTo (const cEntity &a_Entity)=0
 
virtual void SendChat (const AString &a_Message, eChatType a_Type)=0
 
virtual void SendChat (const cCompositeChat &a_Message, eChatType a_Type, bool a_ShouldUseChatPrefixes)=0
 
virtual void SendChatRaw (const AString &a_MessageRaw, eChatType a_Type)=0
 
virtual void SendChunkData (ContiguousByteBufferView a_ChunkData)=0
 
virtual void SendCollectEntity (const cEntity &a_Collected, const cEntity &a_Collector, unsigned a_Count)=0
 
virtual void SendDestroyEntity (const cEntity &a_Entity)=0
 
virtual void SendDetachEntity (const cEntity &a_Entity, const cEntity &a_PreviousVehicle)=0
 
virtual void SendDisconnect (const AString &a_Reason)=0
 
virtual void SendDisplayObjective (const AString &a_Objective, cScoreboard::eDisplaySlot a_Display)=0
 
virtual void SendEditSign (Vector3i a_BlockPos)=0
 Request the client to open up the sign editor for the sign (1.6+) More...
 
virtual void SendEntityAnimation (const cEntity &a_Entity, EntityAnimation a_Animation)=0
 
virtual void SendEntityEffect (const cEntity &a_Entity, int a_EffectID, int a_Amplifier, int a_Duration)=0
 
virtual void SendEntityEquipment (const cEntity &a_Entity, short a_SlotNum, const cItem &a_Item)=0
 
virtual void SendEntityHeadLook (const cEntity &a_Entity)=0
 
virtual void SendEntityLook (const cEntity &a_Entity)=0
 
virtual void SendEntityMetadata (const cEntity &a_Entity)=0
 
virtual void SendEntityPosition (const cEntity &a_Entity)=0
 
virtual void SendEntityProperties (const cEntity &a_Entity)=0
 
virtual void SendEntityVelocity (const cEntity &a_Entity)=0
 
virtual void SendExperience (void)=0
 
virtual void SendExperienceOrb (const cExpOrb &a_ExpOrb)=0
 
virtual void SendExplosion (Vector3f a_Position, float a_Power)=0
 
virtual void SendGameMode (eGameMode a_GameMode)=0
 
virtual void SendHealth (void)=0
 
virtual void SendHeldItemChange (int a_ItemIndex)=0
 
virtual void SendHideTitle (void)=0
 
virtual void SendInitRecipes (UInt32 a_RecipeID)=0
 
virtual void SendInventorySlot (char a_WindowID, short a_SlotNum, const cItem &a_Item)=0
 
virtual void SendKeepAlive (UInt32 a_PingID)=0
 
virtual void SendLeashEntity (const cEntity &a_Entity, const cEntity &a_EntityLeashedTo)=0
 
virtual void SendLogin (const cPlayer &a_Player, const cWorld &a_World)=0
 
virtual void SendLoginSuccess (void)=0
 
virtual void SendMapData (const cMap &a_Map, int a_DataStartX, int a_DataStartY)=0
 
virtual void SendPaintingSpawn (const cPainting &a_Painting)=0
 
virtual void SendParticleEffect (const AString &a_SoundName, Vector3f a_Src, Vector3f a_Offset, float a_ParticleData, int a_ParticleAmount)=0
 
virtual void SendParticleEffect (const AString &a_SoundName, Vector3f a_Src, Vector3f a_Offset, float a_ParticleData, int a_ParticleAmount, std::array< int, 2 > a_Data)=0
 
virtual void SendPlayerAbilities (void)=0
 
virtual void SendPlayerListAddPlayer (const cPlayer &a_Player)=0
 
virtual void SendPlayerListHeaderFooter (const cCompositeChat &a_Header, const cCompositeChat &a_Footer)=0
 
virtual void SendPlayerListRemovePlayer (const cPlayer &a_Player)=0
 
virtual void SendPlayerListUpdateDisplayName (const cPlayer &a_Player, const AString &a_CustomName)=0
 
virtual void SendPlayerListUpdateGameMode (const cPlayer &a_Player)=0
 
virtual void SendPlayerListUpdatePing ()=0
 
virtual void SendPlayerMoveLook (Vector3d a_Pos, float a_Yaw, float a_Pitch, bool a_IsRelative)=0
 
virtual void SendPlayerMoveLook (void)=0
 
virtual void SendPlayerPermissionLevel (void)=0
 
virtual void SendPlayerPosition (void)=0
 
virtual void SendPlayerSpawn (const cPlayer &a_Player)=0
 
virtual void SendPluginMessage (const AString &a_Channel, ContiguousByteBufferView a_Message)=0
 
virtual void SendRemoveEntityEffect (const cEntity &a_Entity, int a_EffectID)=0
 
virtual void SendResetTitle (void)=0
 
virtual void SendResourcePack (const AString &a_ResourcePackUrl)=0
 
virtual void SendRespawn (eDimension a_Dimension)=0
 
virtual void SendScoreboardObjective (const AString &a_Name, const AString &a_DisplayName, Byte a_Mode)=0
 
virtual void SendScoreUpdate (const AString &a_Objective, const AString &a_Player, cObjective::Score a_Score, Byte a_Mode)=0
 
virtual void SendSetRawSubTitle (const AString &a_SubTitle)=0
 
virtual void SendSetRawTitle (const AString &a_Title)=0
 
virtual void SendSetSubTitle (const cCompositeChat &a_SubTitle)=0
 
virtual void SendSetTitle (const cCompositeChat &a_Title)=0
 
virtual void SendSoundEffect (const AString &a_SoundName, Vector3d a_Origin, float a_Volume, float a_Pitch)=0
 
virtual void SendSoundParticleEffect (const EffectID a_EffectID, Vector3i a_Origin, int a_Data)=0
 
virtual void SendSpawnEntity (const cEntity &a_Entity)=0
 
virtual void SendSpawnMob (const cMonster &a_Mob)=0
 
virtual void SendStatistics (const StatisticsManager &a_Manager)=0
 
virtual void SendTabCompletionResults (const AStringVector &a_Results)=0
 
virtual void SendThunderbolt (Vector3i a_Origin)=0
 
virtual void SendTimeUpdate (cTickTimeLong a_WorldAge, cTickTimeLong a_WorldDate, bool a_DoDaylightCycle)=0
 
virtual void SendTitleTimes (int a_FadeInTicks, int a_DisplayTicks, int a_FadeOutTicks)=0
 
virtual void SendUnleashEntity (const cEntity &a_Entity)=0
 
virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ)=0
 
virtual void SendUnlockRecipe (UInt32 a_RecipeID)=0
 
virtual void SendUpdateBlockEntity (cBlockEntity &a_BlockEntity)=0
 
virtual void SendUpdateSign (Vector3i a_BlockPos, const AString &a_Line1, const AString &a_Line2, const AString &a_Line3, const AString &a_Line4)=0
 
virtual void SendWeather (eWeather a_Weather)=0
 
virtual void SendWholeInventory (const cWindow &a_Window)=0
 
virtual void SendWindowClose (const cWindow &a_Window)=0
 
virtual void SendWindowOpen (const cWindow &a_Window)=0
 
virtual void SendWindowProperty (const cWindow &a_Window, size_t a_Property, short a_Value)=0
 
virtual ~cProtocol ()
 

Protected Member Functions

virtual UInt32 GetPacketID (ePacketType a_Packet) const =0
 Returns the protocol-specific packet ID given the protocol-agnostic packet enum. More...
 
virtual Version GetProtocolVersion () const =0
 Returns the current protocol's version, for handling status requests. More...
 
virtual void SendPacket (cPacketizer &a_Packet)=0
 Sends a single packet contained within the cPacketizer class. More...
 

Protected Attributes

cClientHandlem_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...
 

Friends

class cPacketizer
 

Detailed Description

Definition at line 40 of file Protocol.h.

Member Enumeration Documentation

◆ EntityMetadata

Enumerator
EntityFlags 
EntityAir 
EntityCustomName 
EntityCustomNameVisible 
EntitySilent 
EntityNoGravity 
EntityPose 
PotionThrown 
FallingBlockPosition 
AreaEffectCloudRadius 
AreaEffectCloudColor 
AreaEffectCloudSinglePointEffect 
AreaEffectCloudParticleId 
AreaEffectCloudParticleParameter1 
AreaEffectCloudParticleParameter2 
ArrowFlags 
TippedArrowColor 
PiercingLevel 
BoatLastHitTime 
BoatForwardDirection 
BoatDamageTaken 
BoatType 
BoatLeftPaddleTurning 
BoatRightPaddleTurning 
BoatSplashTimer 
EnderCrystalBeamTarget 
EnderCrystalShowBottom 
WitherSkullInvulnerable 
FireworkInfo 
FireworkBoostedEntityId 
FireworkFromCrossbow 
ItemFrameItem 
ItemFrameRotation 
ItemItem 
LivingActiveHand 
LivingHealth 
LivingPotionEffectColor 
LivingPotionEffectAmbient 
LivingNumberOfArrows 
PlayerAdditionalHearts 
PlayerScore 
PlayerDisplayedSkinParts 
PlayerMainHand 
ArmorStandStatus 
ArmorStandHeadRotation 
ArmorStandBodyRotation 
ArmorStandLeftArmRotation 
ArmorStandRightArmRotation 
ArmorStandLeftLegRotation 
ArmorStandRightLegRotation 
InsentientFlags 
BatHanging 
AgeableIsBaby 
AbstractHorseFlags 
AbstractHorseOwner 
HorseVariant 
HorseArmour 
ChestedHorseChested 
LlamaStrength 
LlamaCarpetColor 
LlamaVariant 
PigHasSaddle 
PigTotalCarrotOnAStickBoost 
RabbitType 
PolarBearStanding 
SheepFlags 
TameableAnimalFlags 
TameableAnimalOwner 
ThrowableItem 
TridentLoyaltyLevel 
OcelotType 
WolfDamageTaken 
WolfBegging 
WolfCollarColour 
VillagerProfession 
IronGolemPlayerCreated 
ShulkerFacingDirection 
ShulkerAttachmentFallingBlockPosition 
ShulkerShieldHeight 
BlazeOnFire 
CreeperState 
CreeperPowered 
CreeperIgnited 
GuardianStatus 
GuardianTarget 
IllagerFlags 
SpeIlagerSpell 
VexFlags 
AbstractSkeletonArmsSwinging 
SpiderClimbing 
WitchAggresive 
WitchDrinking 
WitherFirstHeadTarget 
WitherSecondHeadTarget 
WitherThirdHeadTarget 
WitherInvulnerableTimer 
ZombieIsBaby 
ZombieUnusedWasType 
ZombieHandsRisedUp 
ZombieVillagerConverting 
ZombieVillagerProfession 
EndermanCarriedBlock 
EndermanScreaming 
EnderDragonDragonPhase 
GhastAttacking 
SlimeSize 
MinecartShakingPower 
MinecartShakingDirection 
MinecartShakingMultiplier 
MinecartBlockIDMeta 
MinecartBlockY 
MinecartShowBlock 
MinecartCommandBlockCommand 
MinecartCommandBlockLastOutput 
MinecartFurnacePowered 
MooshroomType 
TNTPrimedFuseTime 

Definition at line 137 of file Protocol.h.

◆ EntityMetadataType

Enumerator
Byte 
VarInt 
Float 
String 
Chat 
OptChat 
Item 
Boolean 
Rotation 
Position 
OptPosition 
Direction 
OptUUID 
OptBlockID 
NBT 
Particle 
VillagerData 
OptVarInt 
Pose 

Definition at line 310 of file Protocol.h.

◆ ePacketType

Logical types of outgoing packets.

These values get translated to on-wire packet IDs in GetPacketID(), specific for each protocol. This is mainly useful for protocol sub-versions that re-number the packets while using mostly the same packet layout.

Enumerator
pktAttachEntity 
pktBlockAction 
pktBlockBreakAnim 
pktBlockChange 
pktBlockChanges 
pktBossBar 
pktCameraSetTo 
pktChatRaw 
pktCollectEntity 
pktDestroyEntity 
pktDifficulty 
pktDisconnectDuringLogin 
pktDisconnectDuringGame 
pktDisplayObjective 
pktEditSign 
pktEncryptionRequest 
pktEntityAnimation 
pktEntityEffect 
pktEntityEquipment 
pktEntityHeadLook 
pktEntityLook 
pktEntityMeta 
pktEntityProperties 
pktEntityRelMove 
pktEntityRelMoveLook 
pktEntityStatus 
pktEntityVelocity 
pktExperience 
pktExplosion 
pktGameMode 
pktHeldItemChange 
pktHorseWindowOpen 
pktInventorySlot 
pktJoinGame 
pktKeepAlive 
pktLeashEntity 
pktLoginSuccess 
pktMapData 
pktParticleEffect 
pktPingResponse 
pktPlayerAbilities 
pktPlayerList 
pktPlayerListHeaderFooter 
pktPlayerMoveLook 
pktPluginMessage 
pktRemoveEntityEffect 
pktResourcePack 
pktRespawn 
pktScoreboardObjective 
pktSpawnObject 
pktSoundEffect 
pktSoundParticleEffect 
pktSpawnExperienceOrb 
pktSpawnGlobalEntity 
pktSpawnMob 
pktSpawnOtherPlayer 
pktSpawnPainting 
pktSpawnPosition 
pktStartCompression 
pktStatistics 
pktStatusResponse 
pktTabCompletionResults 
pktTeleportEntity 
pktTimeUpdate 
pktTitle 
pktUnloadChunk 
pktUnlockRecipe 
pktUpdateBlockEntity 
pktUpdateHealth 
pktUpdateScore 
pktUpdateSign 
pktUseBed 
pktWeather 
pktWindowItems 
pktWindowClose 
pktWindowOpen 
pktWindowProperty 

Definition at line 56 of file Protocol.h.

◆ State

Enumerator
Status 
Login 
Game 

Definition at line 357 of file Protocol.h.

◆ Version

enum cProtocol::Version
strong

The protocol version number, received from the client in the Handshake packet.

Enumerator
v1_8_0 
v1_9_0 
v1_9_1 
v1_9_2 
v1_9_4 
v1_10_0 
v1_11_0 
v1_11_1 
v1_12 
v1_12_1 
v1_12_2 
v1_13 
v1_13_1 
v1_13_2 
v1_14 
v1_14_1 
v1_14_2 
v1_14_3 
v1_14_4 

Definition at line 334 of file Protocol.h.

Constructor & Destructor Documentation

◆ cProtocol()

cProtocol::cProtocol ( cClientHandle a_Client)
inline

Definition at line 44 of file Protocol.h.

◆ ~cProtocol()

virtual cProtocol::~cProtocol ( )
inlinevirtual

Definition at line 51 of file Protocol.h.

Member Function Documentation

◆ DataPrepared()

virtual void cProtocol::DataPrepared ( ContiguousByteBuffer a_Data)
pure virtual

Called by cClientHandle to finalise a buffer of prepared data before they are sent to the client.

Descendants may for example, encrypt the data if needed. The protocol modifies the provided buffer in-place.

Implemented in cProtocol_1_8_0.

◆ DataReceived()

virtual void cProtocol::DataReceived ( cByteBuffer a_Buffer,
ContiguousByteBuffer a_Data 
)
pure virtual

Called by cClientHandle to process data, when the client sends some.

The protocol uses the provided buffers for storage and processing, and must have exclusive access to them.

Implemented in cProtocol_1_8_0.

◆ GetAuthServerID()

virtual AString cProtocol::GetAuthServerID ( void  )
pure virtual

Returns the ServerID used for authentication through session.minecraft.net.

Implemented in cProtocol_1_8_0.

◆ GetPacketID()

virtual UInt32 cProtocol::GetPacketID ( ePacketType  a_Packet) const
protectedpure virtual

Returns the protocol-specific packet ID given the protocol-agnostic packet enum.

Implemented in cProtocol_1_14, cProtocol_1_13, cProtocol_1_9_4, cProtocol_1_9_0, cProtocol_1_8_0, cProtocol_1_12_1, and cProtocol_1_12.

◆ GetProtocolVersion()

virtual Version cProtocol::GetProtocolVersion ( ) const
protectedpure virtual

◆ SendAttachEntity()

virtual void cProtocol::SendAttachEntity ( const cEntity a_Entity,
const cEntity a_Vehicle 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendBlockAction()

virtual void cProtocol::SendBlockAction ( Vector3i  a_BlockPos,
char  a_Byte1,
char  a_Byte2,
BLOCKTYPE  a_BlockType 
)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_14.

◆ SendBlockBreakAnim()

virtual void cProtocol::SendBlockBreakAnim ( UInt32  a_EntityID,
Vector3i  a_BlockPos,
char  a_Stage 
)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_14.

◆ SendBlockChange()

virtual void cProtocol::SendBlockChange ( Vector3i  a_BlockPos,
BLOCKTYPE  a_BlockType,
NIBBLETYPE  a_BlockMeta 
)
pure virtual

◆ SendBlockChanges()

virtual void cProtocol::SendBlockChanges ( int  a_ChunkX,
int  a_ChunkZ,
const sSetBlockVector a_Changes 
)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_13.

◆ SendBossBarAdd()

virtual void cProtocol::SendBossBarAdd ( UInt32  a_UniqueID,
const cCompositeChat a_Title,
float  a_FractionFilled,
BossBarColor  a_Color,
BossBarDivisionType  a_DivisionType,
bool  a_DarkenSky,
bool  a_PlayEndMusic,
bool  a_CreateFog 
)
pure virtual

◆ SendBossBarRemove()

virtual void cProtocol::SendBossBarRemove ( UInt32  a_UniqueID)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendBossBarUpdateFlags()

virtual void cProtocol::SendBossBarUpdateFlags ( UInt32  a_UniqueID,
bool  a_DarkenSky,
bool  a_PlayEndMusic,
bool  a_CreateFog 
)
pure virtual

◆ SendBossBarUpdateHealth()

virtual void cProtocol::SendBossBarUpdateHealth ( UInt32  a_UniqueID,
float  a_FractionFilled 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendBossBarUpdateStyle()

virtual void cProtocol::SendBossBarUpdateStyle ( UInt32  a_UniqueID,
BossBarColor  a_Color,
BossBarDivisionType  a_DivisionType 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendBossBarUpdateTitle()

virtual void cProtocol::SendBossBarUpdateTitle ( UInt32  a_UniqueID,
const cCompositeChat a_Title 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendCameraSetTo()

virtual void cProtocol::SendCameraSetTo ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendChat() [1/2]

virtual void cProtocol::SendChat ( const AString a_Message,
eChatType  a_Type 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendChat() [2/2]

virtual void cProtocol::SendChat ( const cCompositeChat a_Message,
eChatType  a_Type,
bool  a_ShouldUseChatPrefixes 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendChatRaw()

virtual void cProtocol::SendChatRaw ( const AString a_MessageRaw,
eChatType  a_Type 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendChunkData()

virtual void cProtocol::SendChunkData ( ContiguousByteBufferView  a_ChunkData)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendCollectEntity()

virtual void cProtocol::SendCollectEntity ( const cEntity a_Collected,
const cEntity a_Collector,
unsigned  a_Count 
)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_11_0.

◆ SendDestroyEntity()

virtual void cProtocol::SendDestroyEntity ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendDetachEntity()

virtual void cProtocol::SendDetachEntity ( const cEntity a_Entity,
const cEntity a_PreviousVehicle 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendDisconnect()

virtual void cProtocol::SendDisconnect ( const AString a_Reason)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendDisplayObjective()

virtual void cProtocol::SendDisplayObjective ( const AString a_Objective,
cScoreboard::eDisplaySlot  a_Display 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendEditSign()

virtual void cProtocol::SendEditSign ( Vector3i  a_BlockPos)
pure virtual

Request the client to open up the sign editor for the sign (1.6+)

Implemented in cProtocol_1_8_0, and cProtocol_1_14.

◆ SendEntityAnimation()

virtual void cProtocol::SendEntityAnimation ( const cEntity a_Entity,
EntityAnimation  a_Animation 
)
pure virtual

◆ SendEntityEffect()

virtual void cProtocol::SendEntityEffect ( const cEntity a_Entity,
int  a_EffectID,
int  a_Amplifier,
int  a_Duration 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendEntityEquipment()

virtual void cProtocol::SendEntityEquipment ( const cEntity a_Entity,
short  a_SlotNum,
const cItem a_Item 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendEntityHeadLook()

virtual void cProtocol::SendEntityHeadLook ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendEntityLook()

virtual void cProtocol::SendEntityLook ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendEntityMetadata()

virtual void cProtocol::SendEntityMetadata ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendEntityPosition()

virtual void cProtocol::SendEntityPosition ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendEntityProperties()

virtual void cProtocol::SendEntityProperties ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendEntityVelocity()

virtual void cProtocol::SendEntityVelocity ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendExperience()

virtual void cProtocol::SendExperience ( void  )
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendExperienceOrb()

virtual void cProtocol::SendExperienceOrb ( const cExpOrb a_ExpOrb)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendExplosion()

virtual void cProtocol::SendExplosion ( Vector3f  a_Position,
float  a_Power 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendGameMode()

virtual void cProtocol::SendGameMode ( eGameMode  a_GameMode)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendHealth()

virtual void cProtocol::SendHealth ( void  )
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendHeldItemChange()

virtual void cProtocol::SendHeldItemChange ( int  a_ItemIndex)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendHideTitle()

virtual void cProtocol::SendHideTitle ( void  )
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_11_0.

◆ SendInitRecipes()

virtual void cProtocol::SendInitRecipes ( UInt32  a_RecipeID)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_12_2.

◆ SendInventorySlot()

virtual void cProtocol::SendInventorySlot ( char  a_WindowID,
short  a_SlotNum,
const cItem a_Item 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendKeepAlive()

virtual void cProtocol::SendKeepAlive ( UInt32  a_PingID)
pure virtual

◆ SendLeashEntity()

virtual void cProtocol::SendLeashEntity ( const cEntity a_Entity,
const cEntity a_EntityLeashedTo 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendLogin()

virtual void cProtocol::SendLogin ( const cPlayer a_Player,
const cWorld a_World 
)
pure virtual

◆ SendLoginSuccess()

virtual void cProtocol::SendLoginSuccess ( void  )
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendMapData()

virtual void cProtocol::SendMapData ( const cMap a_Map,
int  a_DataStartX,
int  a_DataStartY 
)
pure virtual

◆ SendPacket()

virtual void cProtocol::SendPacket ( cPacketizer a_Packet)
protectedpure virtual

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).

Implemented in cProtocol_1_8_0.

◆ SendPaintingSpawn()

virtual void cProtocol::SendPaintingSpawn ( const cPainting a_Painting)
pure virtual

◆ SendParticleEffect() [1/2]

virtual void cProtocol::SendParticleEffect ( const AString a_SoundName,
Vector3f  a_Src,
Vector3f  a_Offset,
float  a_ParticleData,
int  a_ParticleAmount 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendParticleEffect() [2/2]

virtual void cProtocol::SendParticleEffect ( const AString a_SoundName,
Vector3f  a_Src,
Vector3f  a_Offset,
float  a_ParticleData,
int  a_ParticleAmount,
std::array< int, 2 >  a_Data 
)
pure virtual

◆ SendPlayerAbilities()

virtual void cProtocol::SendPlayerAbilities ( void  )
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerListAddPlayer()

virtual void cProtocol::SendPlayerListAddPlayer ( const cPlayer a_Player)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerListHeaderFooter()

virtual void cProtocol::SendPlayerListHeaderFooter ( const cCompositeChat a_Header,
const cCompositeChat a_Footer 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerListRemovePlayer()

virtual void cProtocol::SendPlayerListRemovePlayer ( const cPlayer a_Player)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerListUpdateDisplayName()

virtual void cProtocol::SendPlayerListUpdateDisplayName ( const cPlayer a_Player,
const AString a_CustomName 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerListUpdateGameMode()

virtual void cProtocol::SendPlayerListUpdateGameMode ( const cPlayer a_Player)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerListUpdatePing()

virtual void cProtocol::SendPlayerListUpdatePing ( )
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerMoveLook() [1/2]

virtual void cProtocol::SendPlayerMoveLook ( Vector3d  a_Pos,
float  a_Yaw,
float  a_Pitch,
bool  a_IsRelative 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendPlayerMoveLook() [2/2]

virtual void cProtocol::SendPlayerMoveLook ( void  )
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendPlayerPermissionLevel()

virtual void cProtocol::SendPlayerPermissionLevel ( void  )
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_9_0.

◆ SendPlayerPosition()

virtual void cProtocol::SendPlayerPosition ( void  )
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendPlayerSpawn()

virtual void cProtocol::SendPlayerSpawn ( const cPlayer a_Player)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendPluginMessage()

virtual void cProtocol::SendPluginMessage ( const AString a_Channel,
ContiguousByteBufferView  a_Message 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendRemoveEntityEffect()

virtual void cProtocol::SendRemoveEntityEffect ( const cEntity a_Entity,
int  a_EffectID 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendResetTitle()

virtual void cProtocol::SendResetTitle ( void  )
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_11_0.

◆ SendResourcePack()

virtual void cProtocol::SendResourcePack ( const AString a_ResourcePackUrl)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendRespawn()

virtual void cProtocol::SendRespawn ( eDimension  a_Dimension)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_14.

◆ SendScoreboardObjective()

virtual void cProtocol::SendScoreboardObjective ( const AString a_Name,
const AString a_DisplayName,
Byte  a_Mode 
)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_13.

◆ SendScoreUpdate()

virtual void cProtocol::SendScoreUpdate ( const AString a_Objective,
const AString a_Player,
cObjective::Score  a_Score,
Byte  a_Mode 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendSetRawSubTitle()

virtual void cProtocol::SendSetRawSubTitle ( const AString a_SubTitle)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendSetRawTitle()

virtual void cProtocol::SendSetRawTitle ( const AString a_Title)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendSetSubTitle()

virtual void cProtocol::SendSetSubTitle ( const cCompositeChat a_SubTitle)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendSetTitle()

virtual void cProtocol::SendSetTitle ( const cCompositeChat a_Title)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendSoundEffect()

virtual void cProtocol::SendSoundEffect ( const AString a_SoundName,
Vector3d  a_Origin,
float  a_Volume,
float  a_Pitch 
)
pure virtual

◆ SendSoundParticleEffect()

virtual void cProtocol::SendSoundParticleEffect ( const EffectID  a_EffectID,
Vector3i  a_Origin,
int  a_Data 
)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_14.

◆ SendSpawnEntity()

virtual void cProtocol::SendSpawnEntity ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendSpawnMob()

virtual void cProtocol::SendSpawnMob ( const cMonster a_Mob)
pure virtual

◆ SendStatistics()

virtual void cProtocol::SendStatistics ( const StatisticsManager a_Manager)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_13.

◆ SendTabCompletionResults()

virtual void cProtocol::SendTabCompletionResults ( const AStringVector a_Results)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_13.

◆ SendThunderbolt()

virtual void cProtocol::SendThunderbolt ( Vector3i  a_Origin)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendTimeUpdate()

virtual void cProtocol::SendTimeUpdate ( cTickTimeLong  a_WorldAge,
cTickTimeLong  a_WorldDate,
bool  a_DoDaylightCycle 
)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendTitleTimes()

virtual void cProtocol::SendTitleTimes ( int  a_FadeInTicks,
int  a_DisplayTicks,
int  a_FadeOutTicks 
)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_11_0.

◆ SendUnleashEntity()

virtual void cProtocol::SendUnleashEntity ( const cEntity a_Entity)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendUnloadChunk()

virtual void cProtocol::SendUnloadChunk ( int  a_ChunkX,
int  a_ChunkZ 
)
pure virtual

Implemented in cProtocol_1_9_0, and cProtocol_1_8_0.

◆ SendUnlockRecipe()

virtual void cProtocol::SendUnlockRecipe ( UInt32  a_RecipeID)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_12_2.

◆ SendUpdateBlockEntity()

virtual void cProtocol::SendUpdateBlockEntity ( cBlockEntity a_BlockEntity)
pure virtual

◆ SendUpdateSign()

virtual void cProtocol::SendUpdateSign ( Vector3i  a_BlockPos,
const AString a_Line1,
const AString a_Line2,
const AString a_Line3,
const AString a_Line4 
)
pure virtual

◆ SendWeather()

virtual void cProtocol::SendWeather ( eWeather  a_Weather)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendWholeInventory()

virtual void cProtocol::SendWholeInventory ( const cWindow a_Window)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendWindowClose()

virtual void cProtocol::SendWindowClose ( const cWindow a_Window)
pure virtual

Implemented in cProtocol_1_8_0.

◆ SendWindowOpen()

virtual void cProtocol::SendWindowOpen ( const cWindow a_Window)
pure virtual

Implemented in cProtocol_1_8_0, and cProtocol_1_14.

◆ SendWindowProperty()

virtual void cProtocol::SendWindowProperty ( const cWindow a_Window,
size_t  a_Property,
short  a_Value 
)
pure virtual

Implemented in cProtocol_1_8_0.

Friends And Related Function Documentation

◆ cPacketizer

friend class cPacketizer
friend

Definition at line 470 of file Protocol.h.

Member Data Documentation

◆ m_Client

cClientHandle* cProtocol::m_Client
protected

Definition at line 472 of file Protocol.h.

◆ m_CSPacket

cCriticalSection cProtocol::m_CSPacket
protected

Provides synchronization for sending the entire packet at once.

Each SendXYZ() function must acquire this CS in order to send the whole packet at once. Automated via cPacketizer class.

Definition at line 477 of file Protocol.h.

◆ m_OutPacketBuffer

cByteBuffer cProtocol::m_OutPacketBuffer
protected

Buffer for composing the outgoing packets, through cPacketizer.

Definition at line 480 of file Protocol.h.

◆ m_OutPacketLenBuffer

cByteBuffer cProtocol::m_OutPacketLenBuffer
protected

Buffer for composing packet length (so that each cPacketizer instance doesn't allocate a new cPacketBuffer)

Definition at line 483 of file Protocol.h.


The documentation for this class was generated from the following file: