8 "data_player_absorption_id",
10 "data_player_mode_customisation",
11 "data_player_main_hand",
13 "data_shoulder_right",
31#if PROTOCOL_VERSION > 765
36#if PROTOCOL_VERSION > 766
60#if PROTOCOL_VERSION > 404
130#if PROTOCOL_VERSION > 765
135#if PROTOCOL_VERSION > 766
162 return std::any_cast<float>(
metadata.at(
"data_player_absorption_id"));
168 return std::any_cast<int>(
metadata.at(
"data_score_id"));
174 return std::any_cast<char>(
metadata.at(
"data_player_mode_customisation"));
180 return std::any_cast<char>(
metadata.at(
"data_player_main_hand"));
186 return std::any_cast<ProtocolCraft::NBT::Value>(
metadata.at(
"data_shoulder_left"));
192 return std::any_cast<ProtocolCraft::NBT::Value>(
metadata.at(
"data_shoulder_right"));
199 metadata[
"data_player_absorption_id"] = data_player_absorption_id;
205 metadata[
"data_score_id"] = data_score_id;
211 metadata[
"data_player_mode_customisation"] = data_player_mode_customisation;
217 metadata[
"data_player_main_hand"] = data_player_main_hand;
223 metadata[
"data_shoulder_left"] = data_shoulder_left;
229 metadata[
"data_shoulder_right"] = data_shoulder_right;
256#if PROTOCOL_VERSION > 765
276#if PROTOCOL_VERSION > 766
310#if PROTOCOL_VERSION > 404
329#if PROTOCOL_VERSION > 404
338#if PROTOCOL_VERSION > 404
345#if PROTOCOL_VERSION > 404
348 const double half_width =
GetWidth(pose) / 2.0;
349 const double half_height =
GetHeight(pose) / 2.0;
@ PlayerSubmergedMiningSpeed
@ PlayerEntityInteractionRange
@ PlayerBlockInteractionRange
@ PlayerSweepingDamageRatio
std::shared_mutex entity_mutex
Pose GetDataPoseImpl() const
std::map< std::string, std::any > metadata
Vector3< double > position
std::map< EntityAttribute::Type, EntityAttribute > attributes
virtual ProtocolCraft::Json::Value Serialize() const override
virtual void SetMetadataValue(const int index, const std::any &value) override
double GetAttributePlayerBlockBreakSpeedValue() const
virtual void SetMetadataValue(const int index, const std::any &value) override
void SetDataPlayerModeCustomisation(const char data_player_mode_customisation)
double GetAttributeAttackSpeedValue() const
int GetDataScoreId() const
void SetDataPlayerAbsorptionId(const float data_player_absorption_id)
void SetDataShoulderRight(const ProtocolCraft::NBT::Value &data_shoulder_right)
virtual double GetWidthImpl() const override
void SetDataShoulderLeft(const ProtocolCraft::NBT::Value &data_shoulder_left)
double GetAttributePlayerSweepingDamageRatioValue() const
static constexpr int hierarchy_metadata_count
virtual double GetHeightImpl() const override
float GetDataPlayerAbsorptionId() const
virtual std::string GetName() const override
Get the name of this entity TYPE as a string. For player name see NetworkManager::GetMyName()
virtual EntityType GetType() const override
double GetAttributeLuckValue() const
double GetAttributePlayerSneakingSpeedValueImpl() const
void SetDataPlayerMainHand(const char data_player_main_hand)
char GetDataPlayerModeCustomisation() const
double GetAttributePlayerBlockInteractionRangeValue() const
virtual ProtocolCraft::Json::Value Serialize() const override
virtual bool IsRemotePlayer() const override
double GetAttributePlayerEntityInteractionRangeValue() const
static constexpr int metadata_count
AABB GetColliderImpl() const
static EntityType GetClassType()
void SetDataScoreId(const int data_score_id)
double GetAttributePlayerSubmergedMiningSpeedValue() const
static std::string GetClassName()
char GetDataPlayerMainHand() const
ProtocolCraft::NBT::Value GetDataShoulderLeft() const
ProtocolCraft::NBT::Value GetDataShoulderRight() const
double GetEyeHeight() const
virtual double GetEyeHeightImpl() const
double GetAttributePlayerMiningEfficiencyValue() const
static const std::array< std::string, metadata_count > metadata_names
double GetAttributePlayerSneakingSpeedValue() const
double GetAttributeAttackDamageValue() const
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...
virtual Json::Value Serialize() const