Files
MinecraftConsoles/Minecraft.World/UpdateAttributesPacket.h
ModMaker101 a9be52c41a Project modernization (#630)
* Fixed boats falling and a TP glitch #266

* Replaced every C-style cast with C++ ones

* Replaced every C-style cast with C++ ones

* Fixed boats falling and a TP glitch #266

* Updated NULL to nullptr and fixing some type issues

* Modernized and fixed a few bugs

- Replaced most instances of `NULL` with `nullptr`.
- Replaced most `shared_ptr(new ...)` with `make_shared`.
- Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances.

* Fixing more conflicts

* Replace int loops with size_t and start work on overrides
2026-03-08 09:56:03 +07: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 std::make_shared<UpdateAttributesPacket>(); }
virtual int getId() { return 44; }
};