Add crafting grid packet

This commit is contained in:
E x o t i c 2026-03-09 06:14:17 -04:00 committed by GitHub
parent a358a3caae
commit c0d30ebeb1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 100 additions and 0 deletions

View file

@ -1711,6 +1711,17 @@ void PlayerConnection::handleCraftItem(shared_ptr<CraftItemPacket> packet)
}
void PlayerConnection::handleCraftItemGrid(shared_ptr<CraftItemGridPacket> packet)
{
short uid = packet->uid;
int recipe = packet->recipe;
bool is2x2 = packet->is2x2;
for(int i = 0; i < 9; i++)
{
int itemId = packet->gridData[i];
}
}
void PlayerConnection::handleTradeItem(shared_ptr<TradeItemPacket> packet)
{
if (player->containerMenu->containerId == packet->containerId)

View file

@ -98,6 +98,7 @@ public:
// 4J Added
virtual void handleCraftItem(shared_ptr<CraftItemPacket> packet);
virtual void handleCraftItemGrid(shared_ptr<CraftItemGridPacket> packet);
virtual void handleTradeItem(shared_ptr<TradeItemPacket> packet);
virtual void handleDebugOptions(shared_ptr<DebugOptionsPacket> packet);
virtual void handleTexture(shared_ptr<TexturePacket> packet);

View file

@ -0,0 +1,54 @@
#include "stdafx.h"
#include <iostream>
#include "InputOutputStream.h"
#include "net.minecraft.world.item.h"
#include "PacketListener.h"
#include "CraftItemGridPacket.h"
CraftItemGridPacket::~CraftItemGridPacket()
{
}
CraftItemGridPacket::CraftItemGridPacket()
{
recipe = -1;
uid = 0;
is2x2 = false;
for(int i = 0; i < 9; i++) gridData[i] = -1;
}
CraftItemGridPacket::CraftItemGridPacket(int recipe, short uid, bool is2x2, int gridData[9])
{
this->recipe = recipe;
this->uid = uid;
this->is2x2 = is2x2;
for(int i = 0; i < 9; i++) this->gridData[i] = gridData[i];
}
void CraftItemGridPacket::handle(PacketListener *listener)
{
listener->handleCraftItemGrid(shared_from_this());
}
void CraftItemGridPacket::read(DataInputStream *dis)
{
uid = dis->readShort();
recipe = dis->readInt();
is2x2 = dis->readBoolean();
for(int i = 0; i < 9; i++) gridData[i] = dis->readInt();
}
void CraftItemGridPacket::write(DataOutputStream *dos)
{
dos->writeShort(uid);
dos->writeInt(recipe);
dos->writeBoolean(is2x2);
for(int i = 0; i < 9; i++) dos->writeInt(gridData[i]);
}
int CraftItemGridPacket::getEstimatedSize()
{
return 2 + 4 + 1 + (9 * 4);
}

View file

@ -0,0 +1,27 @@
#pragma once
using namespace std;
#include "Packet.h"
class CraftItemGridPacket : public Packet, public enable_shared_from_this<CraftItemGridPacket>
{
public:
int recipe;
short uid;
bool is2x2;
int gridData[9];
CraftItemGridPacket();
~CraftItemGridPacket();
CraftItemGridPacket(int recipe, short uid, bool is2x2, int gridData[9]);
virtual void handle(PacketListener *listener);
virtual void read(DataInputStream *dis);
virtual void write(DataOutputStream *dos);
virtual int getEstimatedSize();
public:
static shared_ptr<Packet> create() { return std::make_shared<CraftItemGridPacket>(); }
virtual int getId() { return 169; }
};

View file

@ -437,6 +437,11 @@ void PacketListener::handleCraftItem(shared_ptr<CraftItemPacket> packet)
onUnhandledPacket( (shared_ptr<Packet> ) packet);
}
void PacketListener::handleCraftItemGrid(shared_ptr<CraftItemGridPacket> packet)
{
onUnhandledPacket( (shared_ptr<Packet> ) packet);
}
void PacketListener::handleTradeItem(shared_ptr<TradeItemPacket> packet)
{
onUnhandledPacket( (shared_ptr<Packet> ) packet);

View file

@ -97,6 +97,7 @@ class TileEditorOpenPacket;
// 4J Added
class CraftItemPacket;
class CraftItemGridPacket;
class TradeItemPacket;
class DebugOptionsPacket;
class ServerSettingsChangedPacket;
@ -214,6 +215,7 @@ public:
// 4J Added
virtual void handleCraftItem(shared_ptr<CraftItemPacket> packet);
virtual void handleCraftItemGrid(shared_ptr<CraftItemGridPacket> packet);
virtual void handleTradeItem(shared_ptr<TradeItemPacket> packet);
virtual void handleDebugOptions(shared_ptr<DebugOptionsPacket> packet);
virtual void handleServerSettingsChanged(shared_ptr<ServerSettingsChangedPacket> packet);