1
0

GetPacketID for protocol packet IDs (#3977)

* Added GetPacketId method to protocol, implemented for all protocols.

* Moved GetPacketID methods into a single file, alpha-sorted.

* Fixed 1.12.1 HandlePacket switch statement.

* Added SendLogin to the GetPacketId framework.

* Added SpawnObject to GetPacketId framework.

* Added missing sendEntityEquipment packet ID update for 1.12.1

* Added LeashEntity packet ID change to 1.12.1

* Alphabetized packet enum, added SpawnGlobalEntity to GetPacketId framework

* Fixed clang errors

* Indented cases, expanded comment for GetPacketId

* Changed dyslexic comment.
This commit is contained in:
Lane Kolbly
2017-09-02 11:46:57 -05:00
committed by Alexander Harkness
parent 49c443896d
commit aebfbfb8c8
11 changed files with 366 additions and 1359 deletions

View File

@@ -56,9 +56,84 @@ public:
virtual ~cProtocol() {}
/** A list of all outgoing packets */
enum eOutgoingPackets
{
sendAttachEntity = 0,
sendBlockAction,
sendBlockBreakAnim,
sendBlockChange,
sendBlockChanges,
sendCameraSetTo,
sendChatRaw,
sendCollectEntity,
sendDestroyEntity,
sendDifficulty,
sendDisconnectDuringLogin,
sendDisconnectDuringGame,
sendDisplayObjective,
sendEditSign,
sendEntityAnimation,
sendEntityEffect,
sendEntityEquipment,
sendEntityHeadLook,
sendEntityLook,
sendEntityMeta,
sendEntityProperties,
sendEntityRelMove,
sendEntityRelMoveLook,
sendEntityStatus,
sendEntityVelocity,
sendExperience,
sendExperienceOrb,
sendExplosion,
sendGameMode,
sendHealth,
sendInventorySlot,
sendJoinGame,
sendKeepAlive,
sendLeashEntity,
sendMapData,
sendPaintingSpawn,
sendParticleEffect,
sendPlayerAbilities,
sendPlayerList,
sendPlayerMaxSpeed,
sendPlayerMoveLook,
sendPlayerSpawn,
sendPluginMessage,
sendRemoveEntityEffect,
sendRespawn,
sendScoreboardObjective,
sendScoreUpdate,
sendSpawnObject,
sendSoundEffect,
sendSoundParticleEffect,
sendSpawnGlobalEntity,
sendSpawnMob,
sendSpawnPosition,
sendStatistics,
sendTabCompletion,
sendTeleportEntity,
sendTimeUpdate,
sendTitle,
sendUnloadChunk,
sendUpdateBlockEntity,
sendUpdateSign,
sendUseBed,
sendWeather,
sendWindowItems,
sendWindowClose,
sendWindowOpen,
sendWindowProperty
};
/** Called when client sends some data */
virtual void DataReceived(const char * a_Data, size_t a_Size) = 0;
/** Returns the protocol-specific packet ID given the protocol-agnostic packet enum (see PacketID.cpp for implementations) */
virtual UInt32 GetPacketId(eOutgoingPackets a_Packet) = 0;
// Sending stuff to clients (alphabetically sorted):
virtual void SendAttachEntity (const cEntity & a_Entity, const cEntity & a_Vehicle) = 0;
virtual void SendBlockAction (int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType) = 0;