Files
MinecraftConsoles/Minecraft.World/PlayerAbilitiesPacket.h
void_17 7074f35e4b shared_ptr -> std::shared_ptr
This is one of the first commits in a plan to remove all `using namespace std;` lines in the entire codebase as it is considered anti-pattern today.
2026-03-02 15:58:20 +07:00

50 lines
1.3 KiB
C++

#pragma once
#include "Packet.h"
class Abilities;
class PlayerAbilitiesPacket : public Packet, public enable_shared_from_this<PlayerAbilitiesPacket>
{
private:
static const int FLAG_INVULNERABLE = 1 << 0;
static const int FLAG_FLYING = 1 << 1;
static const int FLAG_CAN_FLY = 1 << 2;
static const int FLAG_INSTABUILD = 1 << 3;
static const float SPEED_ACCURACY;
bool invulnerable;
bool _isFlying;
bool _canFly;
bool instabuild;
float flyingSpeed;
float walkingSpeed;
public:
PlayerAbilitiesPacket();
PlayerAbilitiesPacket(Abilities *abilities);
void read(DataInputStream *dis);
void write(DataOutputStream *dos);
void handle(PacketListener *listener);
int getEstimatedSize();
//wstring getDebugInfo();
bool isInvulnerable();
void setInvulnerable(bool invulnerable);
bool isFlying();
void setFlying(bool flying);
bool canFly();
void setCanFly(bool canFly);
bool canInstabuild();
void setInstabuild(bool instabuild);
float getFlyingSpeed();
void setFlyingSpeed(float flySpeed);
float getWalkingSpeed();
void setWalkingSpeed(float walkingSpeed);
bool canBeInvalidated();
bool isInvalidatedBy(std::shared_ptr<Packet> packet);
public:
static std::shared_ptr<Packet> create() { return std::shared_ptr<Packet>(new PlayerAbilitiesPacket()); }
virtual int getId() { return 202; }
};