mirror of
https://github.com/neoStudiosLCE/neoLegacy.git
synced 2026-06-08 23:13:00 +00:00
Some checks are pending
Sync branches with main / sync (push) Waiting to run
* CustomPayloadPacket Changes commented all code for old equip packets cleaned up custom payload key creation added 2 new payload packet definitions for upcoming changes * server sided recipe list * code cleanup for recipes * add dtor for recipe classes to fix memory leak * forgot this part to the dtor commit * dtor changes tested and fixed * server side creative menu list
62 lines
2.3 KiB
C++
62 lines
2.3 KiB
C++
#pragma once
|
|
using namespace std;
|
|
|
|
#include "Packet.h"
|
|
|
|
#define CreatePayloadKey(identifier, action) identifier L"|" action
|
|
#define CreateVanillaPayloadKey(action) CreatePayloadKey(L"MC", action)
|
|
|
|
class CustomPayloadPacket : public Packet, public enable_shared_from_this<CustomPayloadPacket>
|
|
{
|
|
public:
|
|
|
|
// Mojang-defined custom packets
|
|
static const wstring CUSTOM_BOOK_PACKET;
|
|
static const wstring CUSTOM_BOOK_SIGN_PACKET;
|
|
static const wstring TEXTURE_PACK_PACKET;
|
|
static const wstring TRADER_LIST_PACKET;
|
|
static const wstring TRADER_SELECTION_PACKET;
|
|
static const wstring SET_ADVENTURE_COMMAND_PACKET;
|
|
static const wstring SET_BEACON_PACKET;
|
|
static const wstring SET_ITEM_NAME_PACKET;
|
|
|
|
// neoLegacy-defined custom packets
|
|
static const wstring UPDATE_RECIPE_REGISTRY;
|
|
static const wstring UPDATE_CREATIVE_REGISTRY;
|
|
|
|
// Security: stream cipher handshake channels
|
|
static const wstring CIPHER_KEY_CHANNEL; // server->client: carries 32-byte key (16 AES key + 16 IV)
|
|
static const wstring CIPHER_ACK_CHANNEL; // client->server: ack (empty payload)
|
|
static const wstring CIPHER_ON_CHANNEL; // server->client: activation signal (empty payload)
|
|
|
|
// Security: identity token channels
|
|
static const wstring IDENTITY_TOKEN_ISSUE; // server->client: issue new 32-byte token
|
|
static const wstring IDENTITY_TOKEN_CHALLENGE; // server->client: request stored token
|
|
static const wstring IDENTITY_TOKEN_RESPONSE; // client->server: present stored token
|
|
|
|
// Fork extensions: server capability and player lifecycle
|
|
static const wstring FORK_HELLO_CHANNEL; // server->client: identifies fork server (empty payload)
|
|
static const wstring FORK_PLAYER_LEAVE_CHANNEL; // server->client: player disconnected (payload: UTF gamertag)
|
|
|
|
// Fixes for MP related crashes
|
|
//static const wstring QUICK_EQUIP_PACKET;
|
|
//static const wstring QUICK_EQUIP_SERVER_PACKET;
|
|
|
|
static const wstring ENCHANTMENT_LIST_PACKET;
|
|
|
|
wstring identifier;
|
|
int length;
|
|
byteArray data;
|
|
|
|
CustomPayloadPacket();
|
|
CustomPayloadPacket(const wstring &identifier, byteArray data);
|
|
|
|
virtual void read(DataInputStream *dis);
|
|
virtual void write(DataOutputStream *dos);
|
|
virtual void handle(PacketListener *listener);
|
|
virtual int getEstimatedSize();
|
|
|
|
public:
|
|
static shared_ptr<Packet> create() { return std::make_shared<CustomPayloadPacket>(); }
|
|
virtual int getId() { return 250; }
|
|
}; |