mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 07:23:41 +00:00
70 lines
2.1 KiB
C++
70 lines
2.1 KiB
C++
#include "ContainerOpenPacket.h"
|
|
|
|
#include "PacketListener.h"
|
|
#include "java/InputOutputStream/DataInputStream.h"
|
|
#include "java/InputOutputStream/DataOutputStream.h"
|
|
|
|
void ContainerOpenPacket::_init(int containerId, int type,
|
|
const std::string& title, int size,
|
|
bool customName, int entityId) {
|
|
this->containerId = containerId;
|
|
this->type = type;
|
|
this->title = title;
|
|
this->size = size;
|
|
this->customName = customName;
|
|
this->entityId = entityId;
|
|
}
|
|
|
|
ContainerOpenPacket::ContainerOpenPacket() { _init(0, 0, "", 0, false, 0); }
|
|
|
|
ContainerOpenPacket::ContainerOpenPacket(int containerId, int type,
|
|
const std::string& title, int size,
|
|
bool customName) {
|
|
_init(containerId, type, title, size, customName, 0);
|
|
}
|
|
|
|
ContainerOpenPacket::ContainerOpenPacket(int containerId, int type,
|
|
const std::string& title, int size,
|
|
bool customName, int entityId) {
|
|
_init(containerId, type, title, size, customName, entityId);
|
|
}
|
|
|
|
void ContainerOpenPacket::handle(PacketListener* listener) {
|
|
listener->handleContainerOpen(shared_from_this());
|
|
}
|
|
|
|
void ContainerOpenPacket::read(DataInputStream* dis) // throws IOException
|
|
{
|
|
containerId = dis->readByte() & 0xff;
|
|
type = dis->readByte() & 0xff;
|
|
size = dis->readByte() & 0xff;
|
|
customName = dis->readBoolean();
|
|
if (type == HORSE) {
|
|
entityId = dis->readInt();
|
|
}
|
|
if (customName) {
|
|
title = readUtf(dis, 64);
|
|
}
|
|
}
|
|
|
|
void ContainerOpenPacket::write(DataOutputStream* dos) // throws IOException
|
|
{
|
|
dos->writeByte(containerId & 0xff);
|
|
dos->writeByte(type & 0xff);
|
|
dos->writeByte(size & 0xff);
|
|
dos->writeBoolean(customName);
|
|
if (type == HORSE) {
|
|
dos->writeInt(entityId);
|
|
}
|
|
if (customName) {
|
|
writeUtf(title, dos);
|
|
}
|
|
}
|
|
|
|
int ContainerOpenPacket::getEstimatedSize() {
|
|
if (type == HORSE) {
|
|
return 10;
|
|
}
|
|
return 6;
|
|
}
|