Files
MinecraftConsoles/Minecraft.World/UpdateAttributesPacket.h
Loki Rautio 087b7e7abf Revert "Project modernization (#630)"
This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.

This reverts commit a9be52c41a.
2026-03-07 21:12:22 -06:00

46 lines
1.1 KiB
C++

#pragma once
#include "Packet.h"
class AttributeModifier;
class AttributeInstance;
class UpdateAttributesPacket : public Packet, public enable_shared_from_this<UpdateAttributesPacket>
{
public:
class AttributeSnapshot
{
private:
eATTRIBUTE_ID id;
double base;
unordered_set<AttributeModifier *> modifiers;
public:
AttributeSnapshot(eATTRIBUTE_ID id, double base, unordered_set<AttributeModifier *> *modifiers);
~AttributeSnapshot();
eATTRIBUTE_ID getId();
double getBase();
unordered_set<AttributeModifier *> *getModifiers();
};
private:
int entityId;
unordered_set<AttributeSnapshot *> attributes;
public:
UpdateAttributesPacket();
UpdateAttributesPacket(int entityId, unordered_set<AttributeInstance *> *values);
~UpdateAttributesPacket();
void read(DataInputStream *dis);
void write(DataOutputStream *dos);
void handle(PacketListener *listener);
int getEstimatedSize();
int getEntityId();
unordered_set<AttributeSnapshot *> getValues();
public:
static shared_ptr<Packet> create() { return shared_ptr<Packet>(new UpdateAttributesPacket()); }
virtual int getId() { return 44; }
};