mirror of
https://gitea.sffempire.ru/Kolyah35/minecraft-pe-0.6.1.git
synced 2026-03-20 06:53:30 +00:00
174 lines
3.2 KiB
C++
Executable File
174 lines
3.2 KiB
C++
Executable File
#ifndef _MINECRAFT_NETWORK_PACKET_H_
|
|
#define _MINECRAFT_NETWORK_PACKET_H_
|
|
|
|
#include "NetEventCallback.h"
|
|
|
|
#include "../raknet/MessageIdentifiers.h"
|
|
#include "../raknet/RakNetTypes.h"
|
|
#include "../raknet/BitStream.h"
|
|
#include "../raknet/PacketPriority.h"
|
|
|
|
class LevelChunk;
|
|
|
|
|
|
enum MinecraftPacketIds
|
|
{
|
|
PACKET_KEEPALIVE = 0,
|
|
|
|
PACKET_LOGIN,
|
|
PACKET_LOGINSTATUS,
|
|
PACKET_READY,
|
|
|
|
PACKET_MESSAGE,
|
|
PACKET_SETTIME,
|
|
|
|
PACKET_STARTGAME,
|
|
|
|
PACKET_ADDMOB,
|
|
PACKET_ADDPLAYER,
|
|
PACKET_REMOVEPLAYER,
|
|
PACKET_TELEPORTENTITY,
|
|
|
|
PACKET_ADDENTITY,
|
|
PACKET_REMOVEENTITY,
|
|
PACKET_ADDITEMENTITY,
|
|
PACKET_TAKEITEMENTITY,
|
|
|
|
PACKET_MOVEENTITY,
|
|
PACKET_MOVEENTITY_POS,
|
|
PACKET_MOVEENTITY_ROT,
|
|
PACKET_MOVEENTITY_POSROT,
|
|
PACKET_MOVEPLAYER,
|
|
|
|
PACKET_PLACEBLOCK,
|
|
PACKET_REMOVEBLOCK,
|
|
PACKET_UPDATEBLOCK,
|
|
|
|
PACKET_ADDPAINTING,
|
|
|
|
PACKET_EXPLODE,
|
|
|
|
PACKET_LEVELEVENT,
|
|
PACKET_TILEEVENT,
|
|
PACKET_ENTITYEVENT,
|
|
|
|
PACKET_REQUESTCHUNK,
|
|
PACKET_CHUNKDATA,
|
|
|
|
PACKET_PLAYEREQUIPMENT,
|
|
PACKET_PLAYERARMOREQUIPMENT,
|
|
PACKET_INTERACT,
|
|
PACKET_USEITEM,
|
|
PACKET_PLAYERACTION,
|
|
PACKET_UPDATEARMOR,
|
|
PACKET_HURTARMOR,
|
|
|
|
PACKET_SETENTITYDATA,
|
|
PACKET_SETENTITYMOTION,
|
|
PACKET_SETHEALTH,
|
|
PACKET_SETSPAWNPOSITION,
|
|
|
|
PACKET_ANIMATE,
|
|
PACKET_RESPAWN,
|
|
|
|
PACKET_SENDINVENTORY,
|
|
PACKET_DROPITEM,
|
|
|
|
PACKET_CONTAINEROPEN,
|
|
PACKET_CONTAINERCLOSE,
|
|
PACKET_CONTAINERSETSLOT,
|
|
PACKET_CONTAINERSETDATA,
|
|
PACKET_CONTAINERSETCONTENT,
|
|
PACKET_CONTAINERACK,
|
|
|
|
PACKET_CHAT,
|
|
PACKET_SIGNUPDATE,
|
|
|
|
PACKET_ADVENTURESETTINGS,
|
|
/*
|
|
PACKET_PRELOGIN,
|
|
PACKET_CHAT,
|
|
PACKET_SETEQUIPPEDITEM,
|
|
PACKET_SETSPAWNPOSITION,
|
|
|
|
PACKET_PLAYERACTION,
|
|
PACKET_SETCARRIEDITEM,
|
|
PACKET_ENTITYACTIONATPOSITION,
|
|
PACKET_PLAYERCOMMAND,
|
|
|
|
PACKET_ADDENTITY,
|
|
PACKET_ADDMOB,
|
|
PACKET_ADDPAINTING,
|
|
PACKET_PLAYERINPUT,
|
|
PACKET_SETENTITYMOTION,
|
|
PACKET_REMOVEENTITY,
|
|
|
|
PACKET_MOVEENTITY,
|
|
PACKET_SETRIDING,
|
|
PACKET_ENTITYDATA,
|
|
|
|
PACKET_CHUNKVISIBILITY,
|
|
PACKET_BLOCKREGIONUPDATE,
|
|
PACKET_CHUNKBLOCKUPDATE,
|
|
PACKET_BLOCKUPDATE,
|
|
PACKET_BLOCKEVENT,
|
|
|
|
PACKET_GAMEEVENT,
|
|
PACKET_ADDGLOBALENTITY,
|
|
|
|
PACKET_CONTAINEROPEN,
|
|
PACKET_CONTAINERCLOSE,
|
|
PACKET_CONTAINERCLICK,
|
|
PACKET_CONTAINERSETSLOT,
|
|
PACKET_CONTAINERSETCONTENT,
|
|
PACKET_CONTAINERSETDATA,
|
|
PACKET_CONTAINERACK,
|
|
|
|
PACKET_SIGNUPDATE,
|
|
PACKET_AWARDSTAT,
|
|
|
|
PACKET_DISCONNECT,
|
|
*/
|
|
|
|
PACKET_END_ID
|
|
};
|
|
|
|
|
|
const int NUM_PACKETS = PACKET_END_ID;
|
|
|
|
class Packet
|
|
{
|
|
public:
|
|
Packet();
|
|
virtual ~Packet() {}
|
|
|
|
virtual void write(RakNet::BitStream* bitStream) = 0;
|
|
virtual void read(RakNet::BitStream* bitStream) = 0;
|
|
|
|
virtual void handle(const RakNet::RakNetGUID& source, NetEventCallback* callback) = 0;
|
|
|
|
PacketPriority priority;
|
|
PacketReliability reliability;
|
|
};
|
|
|
|
|
|
class MinecraftPackets
|
|
{
|
|
public:
|
|
|
|
static Packet* createPacket(int id);
|
|
|
|
};
|
|
|
|
namespace PacketUtil {
|
|
signed char Rot_degreesToChar(float rot);
|
|
float Rot_charToDegrees(signed char rot);
|
|
void Rot_entityToChar(const Entity* e, signed char& yRot, signed char& xRot);
|
|
void Rot_charToEntity(Entity* e, signed char yRot, signed char xRot);
|
|
|
|
void writeItemInstance(const ItemInstance& item, RakNet::BitStream* stream);
|
|
ItemInstance readItemInstance(RakNet::BitStream* stream);
|
|
}
|
|
|
|
#endif
|