13 #include "../Defines.h"
14 #include "../Scoreboard.h"
15 #include "../ByteBuffer.h"
16 #include "../EffectID.h"
414 virtual void SendMapData (
const cMap & a_Map,
int a_DataStartX,
int a_DataStartY) = 0;
451 virtual void SendTitleTimes (
int a_FadeInTicks,
int a_DisplayTicks,
int a_FadeOutTicks) = 0;
std::vector< sSetBlock > sSetBlockVector
unsigned char NIBBLETYPE
The datatype used by nibbledata (meta, light, skylight)
unsigned char BLOCKTYPE
The datatype used by blockdata.
eDimension
Dimension of a world.
std::chrono::duration< signed long long int, cTickTime::period > cTickTimeLong
std::basic_string_view< std::byte > ContiguousByteBufferView
#define KiB
Allows arithmetic expressions like "32 KiB" (but consider using parenthesis around it,...
std::basic_string< std::byte > ContiguousByteBuffer
std::vector< AString > AStringVector
An object that can store incoming bytes and lets its clients read the bytes sequentially The bytes ar...
Container for a single chat message composed of multiple functional parts.
Encapsulates an in-game world map.
Composes an individual packet in the protocol's m_OutPacketBuffer; sends it just before being destruc...
virtual void SendThunderbolt(Vector3i a_Origin)=0
virtual Version GetProtocolVersion() const =0
Returns the current protocol's version, for handling status requests.
virtual void SendCameraSetTo(const cEntity &a_Entity)=0
virtual void SendWeather(eWeather a_Weather)=0
virtual void SendBlockChange(Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta)=0
virtual void SendParticleEffect(const AString &a_SoundName, Vector3f a_Src, Vector3f a_Offset, float a_ParticleData, int a_ParticleAmount)=0
cCriticalSection m_CSPacket
Provides synchronization for sending the entire packet at once.
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 SendBlockAction(Vector3i a_BlockPos, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType)=0
cByteBuffer m_OutPacketLenBuffer
Buffer for composing packet length (so that each cPacketizer instance doesn't allocate a new cPacketB...
virtual void SendPlayerAbilities(void)=0
virtual void SendHeldItemChange(int a_ItemIndex)=0
virtual void SendTimeUpdate(cTickTimeLong a_WorldAge, cTickTimeLong a_WorldDate, bool a_DoDaylightCycle)=0
virtual void SendChat(const cCompositeChat &a_Message, eChatType a_Type, bool a_ShouldUseChatPrefixes)=0
virtual void SendSetSubTitle(const cCompositeChat &a_SubTitle)=0
virtual void SendEditSign(Vector3i a_BlockPos)=0
Request the client to open up the sign editor for the sign (1.6+)
cProtocol(cClientHandle *a_Client)
virtual void SendWindowProperty(const cWindow &a_Window, size_t a_Property, short a_Value)=0
virtual void SendSetRawSubTitle(const AString &a_SubTitle)=0
virtual void SendBlockBreakAnim(UInt32 a_EntityID, Vector3i a_BlockPos, char a_Stage)=0
virtual void SendWindowClose(const cWindow &a_Window)=0
virtual void SendWholeInventory(const cWindow &a_Window)=0
virtual void SendEntityAnimation(const cEntity &a_Entity, EntityAnimation a_Animation)=0
virtual void SendBossBarUpdateTitle(UInt32 a_UniqueID, const cCompositeChat &a_Title)=0
virtual void SendBlockChanges(int a_ChunkX, int a_ChunkZ, const sSetBlockVector &a_Changes)=0
virtual void SendStatistics(const StatisticsManager &a_Manager)=0
virtual void SendExperience(void)=0
virtual void SendBossBarUpdateStyle(UInt32 a_UniqueID, BossBarColor a_Color, BossBarDivisionType a_DivisionType)=0
virtual void DataReceived(cByteBuffer &a_Buffer, ContiguousByteBuffer &a_Data)=0
Called by cClientHandle to process data, when the client sends some.
virtual void SendSoundParticleEffect(const EffectID a_EffectID, Vector3i a_Origin, int a_Data)=0
virtual void SendPlayerPosition(void)=0
virtual void SendGameMode(eGameMode a_GameMode)=0
virtual void SendPlayerListHeaderFooter(const cCompositeChat &a_Header, const cCompositeChat &a_Footer)=0
virtual void SendPlayerMoveLook(void)=0
virtual void SendEntityMetadata(const cEntity &a_Entity)=0
virtual void SendPaintingSpawn(const cPainting &a_Painting)=0
virtual void SendUnloadChunk(int a_ChunkX, int a_ChunkZ)=0
virtual void SendChat(const AString &a_Message, eChatType a_Type)=0
virtual void SendTitleTimes(int a_FadeInTicks, int a_DisplayTicks, int a_FadeOutTicks)=0
virtual void SendSpawnEntity(const cEntity &a_Entity)=0
virtual void SendEntityPosition(const cEntity &a_Entity)=0
virtual void SendPacket(cPacketizer &a_Packet)=0
Sends a single packet contained within the cPacketizer class.
virtual void SendResetTitle(void)=0
virtual UInt32 GetPacketID(ePacketType a_Packet) const =0
Returns the protocol-specific packet ID given the protocol-agnostic packet enum.
ePacketType
Logical types of outgoing packets.
@ pktTabCompletionResults
@ pktPlayerListHeaderFooter
@ pktDisconnectDuringGame
@ pktDisconnectDuringLogin
virtual void SendBossBarRemove(UInt32 a_UniqueID)=0
virtual void SendLeashEntity(const cEntity &a_Entity, const cEntity &a_EntityLeashedTo)=0
virtual void SendPlayerMoveLook(Vector3d a_Pos, float a_Yaw, float a_Pitch, bool a_IsRelative)=0
virtual void SendDetachEntity(const cEntity &a_Entity, const cEntity &a_PreviousVehicle)=0
virtual void SendWindowOpen(const cWindow &a_Window)=0
virtual void DataPrepared(ContiguousByteBuffer &a_Data)=0
Called by cClientHandle to finalise a buffer of prepared data before they are sent to the client.
virtual void SendExperienceOrb(const cExpOrb &a_ExpOrb)=0
virtual void SendDestroyEntity(const cEntity &a_Entity)=0
virtual void SendHealth(void)=0
Version
The protocol version number, received from the client in the Handshake packet.
virtual void SendRespawn(eDimension a_Dimension)=0
virtual void SendEntityVelocity(const cEntity &a_Entity)=0
virtual void SendCollectEntity(const cEntity &a_Collected, const cEntity &a_Collector, unsigned a_Count)=0
virtual void SendSetTitle(const cCompositeChat &a_Title)=0
@ ShulkerAttachmentFallingBlockPosition
@ ZombieVillagerProfession
@ MinecartCommandBlockCommand
@ FireworkBoostedEntityId
@ PlayerDisplayedSkinParts
@ MinecartShakingDirection
@ MinecartCommandBlockLastOutput
@ LivingPotionEffectColor
@ ArmorStandLeftLegRotation
@ PigTotalCarrotOnAStickBoost
@ ZombieVillagerConverting
@ WitherSkullInvulnerable
@ AreaEffectCloudSinglePointEffect
@ LivingPotionEffectAmbient
@ AbstractSkeletonArmsSwinging
@ AreaEffectCloudParticleParameter1
@ ArmorStandRightArmRotation
@ AreaEffectCloudParticleParameter2
@ AreaEffectCloudParticleId
@ ArmorStandRightLegRotation
@ WitherInvulnerableTimer
@ MinecartShakingMultiplier
@ EntityCustomNameVisible
@ ArmorStandLeftArmRotation
virtual void SendChunkData(ContiguousByteBufferView a_ChunkData)=0
virtual void SendPlayerListAddPlayer(const cPlayer &a_Player)=0
virtual void SendPluginMessage(const AString &a_Channel, ContiguousByteBufferView a_Message)=0
virtual void SendMapData(const cMap &a_Map, int a_DataStartX, int a_DataStartY)=0
virtual void SendResourcePack(const AString &a_ResourcePackUrl)=0
virtual void SendUnlockRecipe(UInt32 a_RecipeID)=0
cByteBuffer m_OutPacketBuffer
Buffer for composing the outgoing packets, through cPacketizer.
virtual void SendLogin(const cPlayer &a_Player, const cWorld &a_World)=0
virtual void SendChatRaw(const AString &a_MessageRaw, eChatType a_Type)=0
virtual void SendPlayerListRemovePlayer(const cPlayer &a_Player)=0
virtual void SendSoundEffect(const AString &a_SoundName, Vector3d a_Origin, float a_Volume, float a_Pitch)=0
virtual void SendUnleashEntity(const cEntity &a_Entity)=0
virtual void SendRemoveEntityEffect(const cEntity &a_Entity, int a_EffectID)=0
virtual void SendKeepAlive(UInt32 a_PingID)=0
virtual void SendDisplayObjective(const AString &a_Objective, cScoreboard::eDisplaySlot a_Display)=0
virtual void SendHideTitle(void)=0
virtual void SendInitRecipes(UInt32 a_RecipeID)=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 SendPlayerPermissionLevel(void)=0
virtual void SendLoginSuccess(void)=0
virtual void SendExplosion(Vector3f a_Position, float a_Power)=0
virtual void SendEntityLook(const cEntity &a_Entity)=0
virtual void SendSpawnMob(const cMonster &a_Mob)=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 SendTabCompletionResults(const AStringVector &a_Results)=0
virtual void SendBossBarUpdateFlags(UInt32 a_UniqueID, bool a_DarkenSky, bool a_PlayEndMusic, bool a_CreateFog)=0
virtual void SendAttachEntity(const cEntity &a_Entity, const cEntity &a_Vehicle)=0
virtual void SendDisconnect(const AString &a_Reason)=0
virtual void SendPlayerSpawn(const cPlayer &a_Player)=0
virtual AString GetAuthServerID(void)=0
Returns the ServerID used for authentication through session.minecraft.net.
virtual void SendScoreboardObjective(const AString &a_Name, const AString &a_DisplayName, Byte a_Mode)=0
virtual void SendPlayerListUpdateGameMode(const cPlayer &a_Player)=0
virtual void SendPlayerListUpdatePing()=0
virtual void SendInventorySlot(char a_WindowID, short a_SlotNum, const cItem &a_Item)=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 SendPlayerListUpdateDisplayName(const cPlayer &a_Player, const AString &a_CustomName)=0
virtual void SendSetRawTitle(const AString &a_Title)=0
virtual void SendEntityHeadLook(const cEntity &a_Entity)=0
virtual void SendUpdateBlockEntity(cBlockEntity &a_BlockEntity)=0
virtual void SendEntityProperties(const cEntity &a_Entity)=0
virtual void SendScoreUpdate(const AString &a_Objective, const AString &a_Player, cObjective::Score a_Score, Byte a_Mode)=0
virtual void SendBossBarUpdateHealth(UInt32 a_UniqueID, float a_FractionFilled)=0
Class that manages the statistics and achievements of a single player.