Botcraft 1.21.5
Loading...
Searching...
No Matches
Entity.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <any>
4#include <chrono>
5#include <map>
6#include <memory>
7#include <optional>
8#include <shared_mutex>
9
10#if PROTOCOL_VERSION > 340 /* > 1.12.2 */
12#endif
15
17
20
21#if USE_GUI
23#endif
24
25namespace Botcraft
26{
27 enum class EntityType;
28#if PROTOCOL_VERSION < 458 /* < 1.14 */
29 enum class ObjectEntityType;
30#endif
31
33 {
35 unsigned char amplifier;
36 std::chrono::steady_clock::time_point end;
37 };
38
39 enum class EntitySharedFlagsId : char
40 {
41 OnFire = 0,
42 ShiftKeyDown = 1,
43 // 2 is unused? Maybe in previous versions
44 Sprinting = 3,
45 Swimming = 4,
46 Invisible = 5,
47 Glowing = 6,
48 FallFlying = 7
49 };
50
51 class Entity
52 {
53 protected:
54#if PROTOCOL_VERSION > 754 /* > 1.16.5 */
55 static constexpr int metadata_count = 8;
56#elif PROTOCOL_VERSION > 404 /* > 1.13.2 */
57 static constexpr int metadata_count = 7;
58#else
59 static constexpr int metadata_count = 6;
60#endif
61 static const std::array<std::string, metadata_count> metadata_names;
62 static constexpr int hierarchy_metadata_count = 0;
63
64 public:
65 Entity();
66 virtual ~Entity();
67
68 // Object related stuff
69 virtual std::string GetName() const = 0;
70 virtual EntityType GetType() const = 0;
71 AABB GetCollider() const;
72 double GetWidth() const;
73 double GetHeight() const;
74
75 // Metadata stuff
76 void LoadMetadataFromRawArray(const std::vector<unsigned char>& data);
77 virtual void SetMetadataValue(const int index, const std::any& value);
78
79 char GetDataSharedFlagsId() const;
80 bool GetDataSharedFlagsId(const EntitySharedFlagsId id) const;
81 int GetDataAirSupplyId() const;
82#if PROTOCOL_VERSION > 340 /* > 1.12.2 */
83 std::optional<ProtocolCraft::Chat> GetDataCustomName() const;
84#else
85 std::string GetDataCustomName() const;
86#endif
87 bool GetDataCustomNameVisible() const;
88 bool GetDataSilent() const;
89 bool GetDataNoGravity() const;
90#if PROTOCOL_VERSION > 404 /* > 1.13.2 */
91 Pose GetDataPose() const;
92#endif
93#if PROTOCOL_VERSION > 754 /* > 1.16.5 */
94 int GetDataTicksFrozen() const;
95#endif
96
97 void SetDataSharedFlagsId(const char data_shared_flags_id);
98 void SetDataSharedFlagsId(const EntitySharedFlagsId id, const bool b);
99 void SetDataAirSupplyId(const int data_air_supply_id);
100#if PROTOCOL_VERSION > 340 /* > 1.12.2 */
101 void SetDataCustomName(const std::optional<ProtocolCraft::Chat>& data_custom_name);
102#else
103 void SetDataCustomName(const std::string& data_custom_name);
104#endif
105 void SetDataCustomNameVisible(const bool data_custom_name_visible);
106 void SetDataSilent(const bool data_silent);
107 void SetDataNoGravity(const bool data_no_gravity);
108#if PROTOCOL_VERSION > 404 /* > 1.13.2 */
109 void SetDataPose(const Pose data_pose);
110#endif
111#if PROTOCOL_VERSION > 754 /* > 1.16.5 */
112 void SetDataTicksFrozen(const int data_ticks_frozen);
113#endif
114
115 // Generic properties getter
116 int GetEntityID() const;
119 double GetX() const;
120 double GetY() const;
121 double GetZ() const;
122 float GetYaw() const;
123 float GetPitch() const;
125 double GetSpeedX() const;
126 double GetSpeedY() const;
127 double GetSpeedZ() const;
128 bool GetOnGround() const;
129 std::map<EquipmentSlot, ProtocolCraft::Slot> GetEquipments() const;
131 std::vector<EntityEffect> GetEffects() const;
132#if USE_GUI
133 std::vector<Renderer::Face> GetFaces(const bool reset_uptodate_status);
134 bool GetAreRenderedFacesUpToDate() const;
135#endif
136
137 // Generic properties setter
138 void SetEntityID(const int entity_id_);
139 void SetUUID(const ProtocolCraft::UUID& uuid_);
140 virtual void SetPosition(const Vector3<double>& position_);
141 virtual void SetX(const double x_);
142 virtual void SetY(const double y_);
143 virtual void SetZ(const double z_);
144 virtual void SetYaw(const float yaw_);
145 virtual void SetPitch(const float pitch_);
146 void SetSpeed(const Vector3<double>& speed_);
147 void SetSpeedX(const double speed_x_);
148 void SetSpeedY(const double speed_y_);
149 void SetSpeedZ(const double speed_z_);
150 void SetOnGround(const bool on_ground_);
151 void SetEquipment(const EquipmentSlot slot, const ProtocolCraft::Slot& item);
152 void SetEffects(const std::vector<EntityEffect>& effects_);
153 void AddEffect(const EntityEffect& effect);
154 void RemoveEffect(const EntityEffectType type);
155#if USE_GUI
156 void SetAreRenderedFacesUpToDate(const bool are_rendered_faces_up_to_date_);
157#endif
158
159 // In case it's needed one day, could be useful
161
162 virtual bool IsLocalPlayer() const;
163 virtual bool IsRemotePlayer() const;
164 // Can be used to know if an entity has a certain virtual type as ancestor
165 virtual bool IsLivingEntity() const;
166 virtual bool IsAbstractArrow() const;
167 virtual bool IsAnimal() const;
168 virtual bool IsAmbientCreature() const;
169 virtual bool IsMonster() const;
170#if PROTOCOL_VERSION > 761 /* > 1.19.3 */
171 virtual bool IsDisplay() const;
172#endif
173#if PROTOCOL_VERSION > 764 /* > 1.20.2 */
174 virtual bool IsVehicle() const;
175#endif
176 virtual bool IsTamableAnimal() const;
177 virtual bool IsAbstractSchoolingFish() const;
178 virtual bool IsWaterAnimal() const;
179 virtual bool IsAbstractChestedHorse() const;
180 virtual bool IsAbstractHurtingProjectile() const;
181 virtual bool IsMob() const;
182 virtual bool IsSpellcasterIllager() const;
183#if PROTOCOL_VERSION > 578 /* > 1.15.2 */
184 virtual bool IsProjectile() const;
185#endif
186 virtual bool IsFlyingMob() const;
187 virtual bool IsAbstractHorse() const;
188 virtual bool IsAbstractGolem() const;
189 virtual bool IsHangingEntity() const;
190 virtual bool IsFireball() const;
191 virtual bool IsAbstractMinecart() const;
192#if PROTOCOL_VERSION > 769 /* > 1.21.4 */
193 virtual bool IsAbstractCow() const;
194#endif
195 virtual bool IsAbstractMinecartContainer() const;
196 virtual bool IsShoulderRidingEntity() const;
197#if PROTOCOL_VERSION > 736 /* > 1.16.1 */
198 virtual bool IsAbstractPiglin() const;
199#endif
200 virtual bool IsAbstractIllager() const;
201#if PROTOCOL_VERSION > 769 /* > 1.21.4 */
202 virtual bool IsAbstractThrownPotion() const;
203#endif
204 virtual bool IsAbstractFish() const;
205#if PROTOCOL_VERSION > 404 /* > 1.13.2 */
206 virtual bool IsRaider() const;
207#endif
208 virtual bool IsAbstractSkeleton() const;
209 virtual bool IsThrowableItemProjectile() const;
210#if PROTOCOL_VERSION > 477 /* > 1.14 */
211 virtual bool IsAbstractVillager() const;
212#endif
213 virtual bool IsAgeableMob() const;
214 virtual bool IsPathfinderMob() const;
215#if PROTOCOL_VERSION > 404 /* > 1.13.2 */
216 virtual bool IsPatrollingMonster() const;
217#endif
218 virtual bool IsThrowableProjectile() const;
219#if PROTOCOL_VERSION > 765 /* > 1.20.4 */
220 virtual bool IsAbstractWindCharge() const;
221#endif
222#if PROTOCOL_VERSION > 766 /* > 1.20.6 */
223 virtual bool IsBlockAttachedEntity() const;
224#endif
225#if PROTOCOL_VERSION > 767 /* > 1.21.1 */
226 virtual bool IsAbstractBoat() const;
227 virtual bool IsAbstractChestBoat() const;
228 virtual bool IsAgeableWaterCreature() const;
229 virtual bool IsBoat() const;
230 virtual bool IsChestBoat() const;
231 virtual bool IsChestRaft() const;
232 virtual bool IsRaft() const;
233#endif
234
235 // Factory stuff
236 static std::shared_ptr<Entity> CreateEntity(const EntityType type);
237#if PROTOCOL_VERSION < 458 /* < 1.14 */
238 static std::shared_ptr<Entity> CreateObjectEntity(const ObjectEntityType type);
239#endif
240
241 protected:
242#if USE_GUI
243 virtual void InitializeFaces();
244 void OnSizeUpdated();
245#endif
246 char GetDataSharedFlagsIdImpl() const;
248 void SetDataSharedFlagsIdImpl(const char data_shared_flags_id);
249 void SetDataSharedFlagsIdImpl(const EntitySharedFlagsId id, const bool b);
250#if PROTOCOL_VERSION > 404 /* > 1.13.2 */
251 Pose GetDataPoseImpl() const;
252 void SetDataPoseImpl(const Pose data_pose);
253#endif
254 AABB GetColliderImpl() const;
255 virtual double GetWidthImpl() const;
256 virtual double GetHeightImpl() const;
257
258 protected:
259 mutable std::shared_mutex entity_mutex;
260
264 float yaw;
265 float pitch;
268 /// @brief Items on this entity. Note that for the local player
269 /// this will **NOT** be populated. Check corresponding
270 /// player inventory slots instead.
271 std::map<EquipmentSlot, ProtocolCraft::Slot> equipments;
272 std::vector<EntityEffect> effects;
273
274 std::map<std::string, std::any> metadata;
275
276#if USE_GUI
277 //All the faces of this model
278 std::vector<FaceDescriptor> face_descriptors;
279 std::vector<Renderer::Face> faces;
280
282#endif
283 };
284
285 enum class EntityType
286 {
287 None = -1,
288#if PROTOCOL_VERSION > 769 /* > 1.21.4 */
289 AcaciaBoat = 0,
290 AcaciaChestBoat = 1,
291 Allay = 2,
292 AreaEffectCloud = 3,
293 Armadillo = 4,
294 ArmorStand = 5,
295 Arrow = 6,
296 Axolotl = 7,
297 ChestRaft = 8,
298 Raft = 9,
299 Bat = 10,
300 Bee = 11,
301 BirchBoat = 12,
302 BirchChestBoat = 13,
303 Blaze = 14,
305 Bogged = 16,
306 Breeze = 17,
307 BreezeWindCharge = 18,
308 Camel = 19,
309 Cat = 20,
310 CaveSpider = 21,
311 CherryBoat = 22,
312 CherryChestBoat = 23,
313 MinecartChest = 24,
314 Chicken = 25,
315 Cod = 26,
317 Cow = 28,
318 Creaking = 29,
319 Creeper = 30,
320 DarkOakBoat = 31,
321 DarkOakChestBoat = 32,
322 Dolphin = 33,
323 Donkey = 34,
324 DragonFireball = 35,
325 Drowned = 36,
326 ThrownEgg = 37,
327 ElderGuardian = 38,
328 EnderMan = 39,
329 Endermite = 40,
330 EnderDragon = 41,
331 ThrownEnderpearl = 42,
332 EndCrystal = 43,
333 Evoker = 44,
334 EvokerFangs = 45,
336 ExperienceOrb = 47,
337 EyeOfEnder = 48,
339 LargeFireball = 50,
341 Fox = 52,
342 Frog = 53,
343 MinecartFurnace = 54,
344 Ghast = 55,
345 Giant = 56,
346 GlowItemFrame = 57,
347 GlowSquid = 58,
348 Goat = 59,
349 Guardian = 60,
350 Hoglin = 61,
351 MinecartHopper = 62,
352 Horse = 63,
353 Husk = 64,
354 Illusioner = 65,
355 Interaction = 66,
356 IronGolem = 67,
357 ItemEntity = 68,
359 ItemFrame = 70,
360 JungleBoat = 71,
361 JungleChestBoat = 72,
363 LightningBolt = 74,
364 Llama = 75,
365 LlamaSpit = 76,
366 MagmaCube = 77,
367 MangroveBoat = 78,
369 Marker = 80,
370 Minecart = 81,
371 MushroomCow = 82,
372 Mule = 83,
373 OakBoat = 84,
374 OakChestBoat = 85,
375 Ocelot = 86,
377 Painting = 88,
378 PaleOakBoat = 89,
379 PaleOakChestBoat = 90,
380 Panda = 91,
381 Parrot = 92,
382 Phantom = 93,
383 Pig = 94,
384 Piglin = 95,
385 PiglinBrute = 96,
386 Pillager = 97,
387 PolarBear = 98,
390 Pufferfish = 101,
391 Rabbit = 102,
392 Ravager = 103,
393 Salmon = 104,
394 Sheep = 105,
395 Shulker = 106,
396 ShulkerBullet = 107,
397 Silverfish = 108,
398 Skeleton = 109,
399 SkeletonHorse = 110,
400 Slime = 111,
401 SmallFireball = 112,
402 Sniffer = 113,
403 Snowball = 114,
404 SnowGolem = 115,
405 MinecartSpawner = 116,
406 SpectralArrow = 117,
407 Spider = 118,
408 SpruceBoat = 119,
409 SpruceChestBoat = 120,
410 Squid = 121,
411 Stray = 122,
412 Strider = 123,
413 Tadpole = 124,
414 DisplayTextDisplay = 125,
415 PrimedTnt = 126,
416 MinecartTNT = 127,
417 TraderLlama = 128,
418 ThrownTrident = 129,
419 TropicalFish = 130,
420 Turtle = 131,
421 Vex = 132,
422 Villager = 133,
423 Vindicator = 134,
424 WanderingTrader = 135,
425 Warden = 136,
426 WindCharge = 137,
427 Witch = 138,
428 WitherBoss = 139,
429 WitherSkeleton = 140,
430 WitherSkull = 141,
431 Wolf = 142,
432 Zoglin = 143,
433 Zombie = 144,
434 ZombieHorse = 145,
435 ZombieVillager = 146,
436 ZombifiedPiglin = 147,
437 Player = 148,
438 FishingHook = 149,
439#elif PROTOCOL_VERSION > 768 /* > 1.21.3 */
440 AcaciaBoat = 0,
441 AcaciaChestBoat = 1,
442 Allay = 2,
443 AreaEffectCloud = 3,
444 Armadillo = 4,
445 ArmorStand = 5,
446 Arrow = 6,
447 Axolotl = 7,
448 ChestRaft = 8,
449 Raft = 9,
450 Bat = 10,
451 Bee = 11,
452 BirchBoat = 12,
453 BirchChestBoat = 13,
454 Blaze = 14,
456 Bogged = 16,
457 Breeze = 17,
458 BreezeWindCharge = 18,
459 Camel = 19,
460 Cat = 20,
461 CaveSpider = 21,
462 CherryBoat = 22,
463 CherryChestBoat = 23,
464 MinecartChest = 24,
465 Chicken = 25,
466 Cod = 26,
468 Cow = 28,
469 Creaking = 29,
470 Creeper = 30,
471 DarkOakBoat = 31,
472 DarkOakChestBoat = 32,
473 Dolphin = 33,
474 Donkey = 34,
475 DragonFireball = 35,
476 Drowned = 36,
477 ThrownEgg = 37,
478 ElderGuardian = 38,
479 EnderMan = 39,
480 Endermite = 40,
481 EnderDragon = 41,
482 ThrownEnderpearl = 42,
483 EndCrystal = 43,
484 Evoker = 44,
485 EvokerFangs = 45,
487 ExperienceOrb = 47,
488 EyeOfEnder = 48,
490 LargeFireball = 50,
492 Fox = 52,
493 Frog = 53,
494 MinecartFurnace = 54,
495 Ghast = 55,
496 Giant = 56,
497 GlowItemFrame = 57,
498 GlowSquid = 58,
499 Goat = 59,
500 Guardian = 60,
501 Hoglin = 61,
502 MinecartHopper = 62,
503 Horse = 63,
504 Husk = 64,
505 Illusioner = 65,
506 Interaction = 66,
507 IronGolem = 67,
508 ItemEntity = 68,
510 ItemFrame = 70,
511 JungleBoat = 71,
512 JungleChestBoat = 72,
514 LightningBolt = 74,
515 Llama = 75,
516 LlamaSpit = 76,
517 MagmaCube = 77,
518 MangroveBoat = 78,
520 Marker = 80,
521 Minecart = 81,
522 MushroomCow = 82,
523 Mule = 83,
524 OakBoat = 84,
525 OakChestBoat = 85,
526 Ocelot = 86,
528 Painting = 88,
529 PaleOakBoat = 89,
530 PaleOakChestBoat = 90,
531 Panda = 91,
532 Parrot = 92,
533 Phantom = 93,
534 Pig = 94,
535 Piglin = 95,
536 PiglinBrute = 96,
537 Pillager = 97,
538 PolarBear = 98,
539 ThrownPotion = 99,
540 Pufferfish = 100,
541 Rabbit = 101,
542 Ravager = 102,
543 Salmon = 103,
544 Sheep = 104,
545 Shulker = 105,
546 ShulkerBullet = 106,
547 Silverfish = 107,
548 Skeleton = 108,
549 SkeletonHorse = 109,
550 Slime = 110,
551 SmallFireball = 111,
552 Sniffer = 112,
553 Snowball = 113,
554 SnowGolem = 114,
555 MinecartSpawner = 115,
556 SpectralArrow = 116,
557 Spider = 117,
558 SpruceBoat = 118,
559 SpruceChestBoat = 119,
560 Squid = 120,
561 Stray = 121,
562 Strider = 122,
563 Tadpole = 123,
564 DisplayTextDisplay = 124,
565 PrimedTnt = 125,
566 MinecartTNT = 126,
567 TraderLlama = 127,
568 ThrownTrident = 128,
569 TropicalFish = 129,
570 Turtle = 130,
571 Vex = 131,
572 Villager = 132,
573 Vindicator = 133,
574 WanderingTrader = 134,
575 Warden = 135,
576 WindCharge = 136,
577 Witch = 137,
578 WitherBoss = 138,
579 WitherSkeleton = 139,
580 WitherSkull = 140,
581 Wolf = 141,
582 Zoglin = 142,
583 Zombie = 143,
584 ZombieHorse = 144,
585 ZombieVillager = 145,
586 ZombifiedPiglin = 146,
587 Player = 147,
588 FishingHook = 148,
589#elif PROTOCOL_VERSION > 767 /* > 1.21.1 */
590 AcaciaBoat = 0,
591 AcaciaChestBoat = 1,
592 Allay = 2,
593 AreaEffectCloud = 3,
594 Armadillo = 4,
595 ArmorStand = 5,
596 Arrow = 6,
597 Axolotl = 7,
598 ChestRaft = 8,
599 Raft = 9,
600 Bat = 10,
601 Bee = 11,
602 BirchBoat = 12,
603 BirchChestBoat = 13,
604 Blaze = 14,
606 Bogged = 16,
607 Breeze = 17,
608 BreezeWindCharge = 18,
609 Camel = 19,
610 Cat = 20,
611 CaveSpider = 21,
612 CherryBoat = 22,
613 CherryChestBoat = 23,
614 MinecartChest = 24,
615 Chicken = 25,
616 Cod = 26,
618 Cow = 28,
619 Creaking = 29,
620 CreakingTransient = 30,
621 Creeper = 31,
622 DarkOakBoat = 32,
623 DarkOakChestBoat = 33,
624 Dolphin = 34,
625 Donkey = 35,
626 DragonFireball = 36,
627 Drowned = 37,
628 ThrownEgg = 38,
629 ElderGuardian = 39,
630 EnderMan = 40,
631 Endermite = 41,
632 EnderDragon = 42,
633 ThrownEnderpearl = 43,
634 EndCrystal = 44,
635 Evoker = 45,
636 EvokerFangs = 46,
638 ExperienceOrb = 48,
639 EyeOfEnder = 49,
641 LargeFireball = 51,
643 Fox = 53,
644 Frog = 54,
645 MinecartFurnace = 55,
646 Ghast = 56,
647 Giant = 57,
648 GlowItemFrame = 58,
649 GlowSquid = 59,
650 Goat = 60,
651 Guardian = 61,
652 Hoglin = 62,
653 MinecartHopper = 63,
654 Horse = 64,
655 Husk = 65,
656 Illusioner = 66,
657 Interaction = 67,
658 IronGolem = 68,
659 ItemEntity = 69,
661 ItemFrame = 71,
662 JungleBoat = 72,
663 JungleChestBoat = 73,
665 LightningBolt = 75,
666 Llama = 76,
667 LlamaSpit = 77,
668 MagmaCube = 78,
669 MangroveBoat = 79,
671 Marker = 81,
672 Minecart = 82,
673 MushroomCow = 83,
674 Mule = 84,
675 OakBoat = 85,
676 OakChestBoat = 86,
677 Ocelot = 87,
679 Painting = 89,
680 PaleOakBoat = 90,
681 PaleOakChestBoat = 91,
682 Panda = 92,
683 Parrot = 93,
684 Phantom = 94,
685 Pig = 95,
686 Piglin = 96,
687 PiglinBrute = 97,
688 Pillager = 98,
689 PolarBear = 99,
690 ThrownPotion = 100,
691 Pufferfish = 101,
692 Rabbit = 102,
693 Ravager = 103,
694 Salmon = 104,
695 Sheep = 105,
696 Shulker = 106,
697 ShulkerBullet = 107,
698 Silverfish = 108,
699 Skeleton = 109,
700 SkeletonHorse = 110,
701 Slime = 111,
702 SmallFireball = 112,
703 Sniffer = 113,
704 Snowball = 114,
705 SnowGolem = 115,
706 MinecartSpawner = 116,
707 SpectralArrow = 117,
708 Spider = 118,
709 SpruceBoat = 119,
710 SpruceChestBoat = 120,
711 Squid = 121,
712 Stray = 122,
713 Strider = 123,
714 Tadpole = 124,
715 DisplayTextDisplay = 125,
716 PrimedTnt = 126,
717 MinecartTNT = 127,
718 TraderLlama = 128,
719 ThrownTrident = 129,
720 TropicalFish = 130,
721 Turtle = 131,
722 Vex = 132,
723 Villager = 133,
724 Vindicator = 134,
725 WanderingTrader = 135,
726 Warden = 136,
727 WindCharge = 137,
728 Witch = 138,
729 WitherBoss = 139,
730 WitherSkeleton = 140,
731 WitherSkull = 141,
732 Wolf = 142,
733 Zoglin = 143,
734 Zombie = 144,
735 ZombieHorse = 145,
736 ZombieVillager = 146,
737 ZombifiedPiglin = 147,
738 Player = 148,
739 FishingHook = 149,
740#elif PROTOCOL_VERSION > 765 /* > 1.20.4 */
741 Allay = 0,
742 AreaEffectCloud = 1,
743 Armadillo = 2,
744 ArmorStand = 3,
745 Arrow = 4,
746 Axolotl = 5,
747 Bat = 6,
748 Bee = 7,
749 Blaze = 8,
751 Boat = 10,
752 Bogged = 11,
753 Breeze = 12,
754 BreezeWindCharge = 13,
755 Camel = 14,
756 Cat = 15,
757 CaveSpider = 16,
758 ChestBoat = 17,
759 MinecartChest = 18,
760 Chicken = 19,
761 Cod = 20,
763 Cow = 22,
764 Creeper = 23,
765 Dolphin = 24,
766 Donkey = 25,
767 DragonFireball = 26,
768 Drowned = 27,
769 ThrownEgg = 28,
770 ElderGuardian = 29,
771 EndCrystal = 30,
772 EnderDragon = 31,
773 ThrownEnderpearl = 32,
774 EnderMan = 33,
775 Endermite = 34,
776 Evoker = 35,
777 EvokerFangs = 36,
779 ExperienceOrb = 38,
780 EyeOfEnder = 39,
783 Fox = 42,
784 Frog = 43,
785 MinecartFurnace = 44,
786 Ghast = 45,
787 Giant = 46,
788 GlowItemFrame = 47,
789 GlowSquid = 48,
790 Goat = 49,
791 Guardian = 50,
792 Hoglin = 51,
793 MinecartHopper = 52,
794 Horse = 53,
795 Husk = 54,
796 Illusioner = 55,
797 Interaction = 56,
798 IronGolem = 57,
799 ItemEntity = 58,
801 ItemFrame = 60,
803 LargeFireball = 62,
805 LightningBolt = 64,
806 Llama = 65,
807 LlamaSpit = 66,
808 MagmaCube = 67,
809 Marker = 68,
810 Minecart = 69,
811 MushroomCow = 70,
812 Mule = 71,
813 Ocelot = 72,
814 Painting = 73,
815 Panda = 74,
816 Parrot = 75,
817 Phantom = 76,
818 Pig = 77,
819 Piglin = 78,
820 PiglinBrute = 79,
821 Pillager = 80,
822 PolarBear = 81,
823 ThrownPotion = 82,
824 Pufferfish = 83,
825 Rabbit = 84,
826 Ravager = 85,
827 Salmon = 86,
828 Sheep = 87,
829 Shulker = 88,
830 ShulkerBullet = 89,
831 Silverfish = 90,
832 Skeleton = 91,
833 SkeletonHorse = 92,
834 Slime = 93,
835 SmallFireball = 94,
836 Sniffer = 95,
837 SnowGolem = 96,
838 Snowball = 97,
839 MinecartSpawner = 98,
840 SpectralArrow = 99,
841 Spider = 100,
842 Squid = 101,
843 Stray = 102,
844 Strider = 103,
845 Tadpole = 104,
846 DisplayTextDisplay = 105,
847 PrimedTnt = 106,
848 MinecartTNT = 107,
849 TraderLlama = 108,
850 ThrownTrident = 109,
851 TropicalFish = 110,
852 Turtle = 111,
853 Vex = 112,
854 Villager = 113,
855 Vindicator = 114,
856 WanderingTrader = 115,
857 Warden = 116,
858 WindCharge = 117,
859 Witch = 118,
860 WitherBoss = 119,
861 WitherSkeleton = 120,
862 WitherSkull = 121,
863 Wolf = 122,
864 Zoglin = 123,
865 Zombie = 124,
866 ZombieHorse = 125,
867 ZombieVillager = 126,
868 ZombifiedPiglin = 127,
869 Player = 128,
870 FishingHook = 129,
871#elif PROTOCOL_VERSION > 764 /* > 1.20.2 */
872 Allay = 0,
873 AreaEffectCloud = 1,
874 ArmorStand = 2,
875 Arrow = 3,
876 Axolotl = 4,
877 Bat = 5,
878 Bee = 6,
879 Blaze = 7,
881 Boat = 9,
882 Breeze = 10,
883 Camel = 11,
884 Cat = 12,
885 CaveSpider = 13,
886 ChestBoat = 14,
887 MinecartChest = 15,
888 Chicken = 16,
889 Cod = 17,
891 Cow = 19,
892 Creeper = 20,
893 Dolphin = 21,
894 Donkey = 22,
895 DragonFireball = 23,
896 Drowned = 24,
897 ThrownEgg = 25,
898 ElderGuardian = 26,
899 EndCrystal = 27,
900 EnderDragon = 28,
901 ThrownEnderpearl = 29,
902 EnderMan = 30,
903 Endermite = 31,
904 Evoker = 32,
905 EvokerFangs = 33,
907 ExperienceOrb = 35,
908 EyeOfEnder = 36,
911 Fox = 39,
912 Frog = 40,
913 MinecartFurnace = 41,
914 Ghast = 42,
915 Giant = 43,
916 GlowItemFrame = 44,
917 GlowSquid = 45,
918 Goat = 46,
919 Guardian = 47,
920 Hoglin = 48,
921 MinecartHopper = 49,
922 Horse = 50,
923 Husk = 51,
924 Illusioner = 52,
925 Interaction = 53,
926 IronGolem = 54,
927 ItemEntity = 55,
929 ItemFrame = 57,
930 LargeFireball = 58,
932 LightningBolt = 60,
933 Llama = 61,
934 LlamaSpit = 62,
935 MagmaCube = 63,
936 Marker = 64,
937 Minecart = 65,
938 MushroomCow = 66,
939 Mule = 67,
940 Ocelot = 68,
941 Painting = 69,
942 Panda = 70,
943 Parrot = 71,
944 Phantom = 72,
945 Pig = 73,
946 Piglin = 74,
947 PiglinBrute = 75,
948 Pillager = 76,
949 PolarBear = 77,
950 ThrownPotion = 78,
951 Pufferfish = 79,
952 Rabbit = 80,
953 Ravager = 81,
954 Salmon = 82,
955 Sheep = 83,
956 Shulker = 84,
957 ShulkerBullet = 85,
958 Silverfish = 86,
959 Skeleton = 87,
960 SkeletonHorse = 88,
961 Slime = 89,
962 SmallFireball = 90,
963 Sniffer = 91,
964 SnowGolem = 92,
965 Snowball = 93,
966 MinecartSpawner = 94,
967 SpectralArrow = 95,
968 Spider = 96,
969 Squid = 97,
970 Stray = 98,
971 Strider = 99,
972 Tadpole = 100,
973 DisplayTextDisplay = 101,
974 PrimedTnt = 102,
975 MinecartTNT = 103,
976 TraderLlama = 104,
977 ThrownTrident = 105,
978 TropicalFish = 106,
979 Turtle = 107,
980 Vex = 108,
981 Villager = 109,
982 Vindicator = 110,
983 WanderingTrader = 111,
984 Warden = 112,
985 WindCharge = 113,
986 Witch = 114,
987 WitherBoss = 115,
988 WitherSkeleton = 116,
989 WitherSkull = 117,
990 Wolf = 118,
991 Zoglin = 119,
992 Zombie = 120,
993 ZombieHorse = 121,
994 ZombieVillager = 122,
995 ZombifiedPiglin = 123,
996 Player = 124,
997 FishingHook = 125,
998#elif PROTOCOL_VERSION > 761 /* > 1.19.3 */
999 Allay = 0,
1000 AreaEffectCloud = 1,
1001 ArmorStand = 2,
1002 Arrow = 3,
1003 Axolotl = 4,
1004 Bat = 5,
1005 Bee = 6,
1006 Blaze = 7,
1008 Boat = 9,
1009 Camel = 10,
1010 Cat = 11,
1011 CaveSpider = 12,
1012 ChestBoat = 13,
1013 MinecartChest = 14,
1014 Chicken = 15,
1015 Cod = 16,
1017 Cow = 18,
1018 Creeper = 19,
1019 Dolphin = 20,
1020 Donkey = 21,
1021 DragonFireball = 22,
1022 Drowned = 23,
1023 ThrownEgg = 24,
1024 ElderGuardian = 25,
1025 EndCrystal = 26,
1026 EnderDragon = 27,
1027 ThrownEnderpearl = 28,
1028 EnderMan = 29,
1029 Endermite = 30,
1030 Evoker = 31,
1031 EvokerFangs = 32,
1033 ExperienceOrb = 34,
1034 EyeOfEnder = 35,
1035 FallingBlockEntity = 36,
1037 Fox = 38,
1038 Frog = 39,
1039 MinecartFurnace = 40,
1040 Ghast = 41,
1041 Giant = 42,
1042 GlowItemFrame = 43,
1043 GlowSquid = 44,
1044 Goat = 45,
1045 Guardian = 46,
1046 Hoglin = 47,
1047 MinecartHopper = 48,
1048 Horse = 49,
1049 Husk = 50,
1050 Illusioner = 51,
1051 Interaction = 52,
1052 IronGolem = 53,
1053 ItemEntity = 54,
1054 DisplayItemDisplay = 55,
1055 ItemFrame = 56,
1056 LargeFireball = 57,
1058 LightningBolt = 59,
1059 Llama = 60,
1060 LlamaSpit = 61,
1061 MagmaCube = 62,
1062 Marker = 63,
1063 Minecart = 64,
1064 MushroomCow = 65,
1065 Mule = 66,
1066 Ocelot = 67,
1067 Painting = 68,
1068 Panda = 69,
1069 Parrot = 70,
1070 Phantom = 71,
1071 Pig = 72,
1072 Piglin = 73,
1073 PiglinBrute = 74,
1074 Pillager = 75,
1075 PolarBear = 76,
1076 ThrownPotion = 77,
1077 Pufferfish = 78,
1078 Rabbit = 79,
1079 Ravager = 80,
1080 Salmon = 81,
1081 Sheep = 82,
1082 Shulker = 83,
1083 ShulkerBullet = 84,
1084 Silverfish = 85,
1085 Skeleton = 86,
1086 SkeletonHorse = 87,
1087 Slime = 88,
1088 SmallFireball = 89,
1089 Sniffer = 90,
1090 SnowGolem = 91,
1091 Snowball = 92,
1092 MinecartSpawner = 93,
1093 SpectralArrow = 94,
1094 Spider = 95,
1095 Squid = 96,
1096 Stray = 97,
1097 Strider = 98,
1098 Tadpole = 99,
1099 DisplayTextDisplay = 100,
1100 PrimedTnt = 101,
1101 MinecartTNT = 102,
1102 TraderLlama = 103,
1103 ThrownTrident = 104,
1104 TropicalFish = 105,
1105 Turtle = 106,
1106 Vex = 107,
1107 Villager = 108,
1108 Vindicator = 109,
1109 WanderingTrader = 110,
1110 Warden = 111,
1111 Witch = 112,
1112 WitherBoss = 113,
1113 WitherSkeleton = 114,
1114 WitherSkull = 115,
1115 Wolf = 116,
1116 Zoglin = 117,
1117 Zombie = 118,
1118 ZombieHorse = 119,
1119 ZombieVillager = 120,
1120 ZombifiedPiglin = 121,
1121 Player = 122,
1122 FishingHook = 123,
1123#elif PROTOCOL_VERSION > 760 /* > 1.19.2 */
1124 Allay = 0,
1125 AreaEffectCloud = 1,
1126 ArmorStand = 2,
1127 Arrow = 3,
1128 Axolotl = 4,
1129 Bat = 5,
1130 Bee = 6,
1131 Blaze = 7,
1132 Boat = 8,
1133 ChestBoat = 9,
1134 Cat = 10,
1135 Camel = 11,
1136 CaveSpider = 12,
1137 Chicken = 13,
1138 Cod = 14,
1139 Cow = 15,
1140 Creeper = 16,
1141 Dolphin = 17,
1142 Donkey = 18,
1143 DragonFireball = 19,
1144 Drowned = 20,
1145 ElderGuardian = 21,
1146 EndCrystal = 22,
1147 EnderDragon = 23,
1148 EnderMan = 24,
1149 Endermite = 25,
1150 Evoker = 26,
1151 EvokerFangs = 27,
1152 ExperienceOrb = 28,
1153 EyeOfEnder = 29,
1154 FallingBlockEntity = 30,
1156 Fox = 32,
1157 Frog = 33,
1158 Ghast = 34,
1159 Giant = 35,
1160 GlowItemFrame = 36,
1161 GlowSquid = 37,
1162 Goat = 38,
1163 Guardian = 39,
1164 Hoglin = 40,
1165 Horse = 41,
1166 Husk = 42,
1167 Illusioner = 43,
1168 IronGolem = 44,
1169 ItemEntity = 45,
1170 ItemFrame = 46,
1171 LargeFireball = 47,
1173 LightningBolt = 49,
1174 Llama = 50,
1175 LlamaSpit = 51,
1176 MagmaCube = 52,
1177 Marker = 53,
1178 Minecart = 54,
1179 MinecartChest = 55,
1181 MinecartFurnace = 57,
1182 MinecartHopper = 58,
1183 MinecartSpawner = 59,
1184 MinecartTNT = 60,
1185 Mule = 61,
1186 MushroomCow = 62,
1187 Ocelot = 63,
1188 Painting = 64,
1189 Panda = 65,
1190 Parrot = 66,
1191 Phantom = 67,
1192 Pig = 68,
1193 Piglin = 69,
1194 PiglinBrute = 70,
1195 Pillager = 71,
1196 PolarBear = 72,
1197 PrimedTnt = 73,
1198 Pufferfish = 74,
1199 Rabbit = 75,
1200 Ravager = 76,
1201 Salmon = 77,
1202 Sheep = 78,
1203 Shulker = 79,
1204 ShulkerBullet = 80,
1205 Silverfish = 81,
1206 Skeleton = 82,
1207 SkeletonHorse = 83,
1208 Slime = 84,
1209 SmallFireball = 85,
1210 SnowGolem = 86,
1211 Snowball = 87,
1212 SpectralArrow = 88,
1213 Spider = 89,
1214 Squid = 90,
1215 Stray = 91,
1216 Strider = 92,
1217 Tadpole = 93,
1218 ThrownEgg = 94,
1219 ThrownEnderpearl = 95,
1221 ThrownPotion = 97,
1222 ThrownTrident = 98,
1223 TraderLlama = 99,
1224 TropicalFish = 100,
1225 Turtle = 101,
1226 Vex = 102,
1227 Villager = 103,
1228 Vindicator = 104,
1229 WanderingTrader = 105,
1230 Warden = 106,
1231 Witch = 107,
1232 WitherBoss = 108,
1233 WitherSkeleton = 109,
1234 WitherSkull = 110,
1235 Wolf = 111,
1236 Zoglin = 112,
1237 Zombie = 113,
1238 ZombieHorse = 114,
1239 ZombieVillager = 115,
1240 ZombifiedPiglin = 116,
1241 Player = 117,
1242 FishingHook = 118,
1243#elif PROTOCOL_VERSION > 758 /* > 1.18.2 */
1244 Allay = 0,
1245 AreaEffectCloud = 1,
1246 ArmorStand = 2,
1247 Arrow = 3,
1248 Axolotl = 4,
1249 Bat = 5,
1250 Bee = 6,
1251 Blaze = 7,
1252 Boat = 8,
1253 ChestBoat = 9,
1254 Cat = 10,
1255 CaveSpider = 11,
1256 Chicken = 12,
1257 Cod = 13,
1258 Cow = 14,
1259 Creeper = 15,
1260 Dolphin = 16,
1261 Donkey = 17,
1262 DragonFireball = 18,
1263 Drowned = 19,
1264 ElderGuardian = 20,
1265 EndCrystal = 21,
1266 EnderDragon = 22,
1267 EnderMan = 23,
1268 Endermite = 24,
1269 Evoker = 25,
1270 EvokerFangs = 26,
1271 ExperienceOrb = 27,
1272 EyeOfEnder = 28,
1273 FallingBlockEntity = 29,
1275 Fox = 31,
1276 Frog = 32,
1277 Ghast = 33,
1278 Giant = 34,
1279 GlowItemFrame = 35,
1280 GlowSquid = 36,
1281 Goat = 37,
1282 Guardian = 38,
1283 Hoglin = 39,
1284 Horse = 40,
1285 Husk = 41,
1286 Illusioner = 42,
1287 IronGolem = 43,
1288 ItemEntity = 44,
1289 ItemFrame = 45,
1290 LargeFireball = 46,
1292 LightningBolt = 48,
1293 Llama = 49,
1294 LlamaSpit = 50,
1295 MagmaCube = 51,
1296 Marker = 52,
1297 Minecart = 53,
1298 MinecartChest = 54,
1300 MinecartFurnace = 56,
1301 MinecartHopper = 57,
1302 MinecartSpawner = 58,
1303 MinecartTNT = 59,
1304 Mule = 60,
1305 MushroomCow = 61,
1306 Ocelot = 62,
1307 Painting = 63,
1308 Panda = 64,
1309 Parrot = 65,
1310 Phantom = 66,
1311 Pig = 67,
1312 Piglin = 68,
1313 PiglinBrute = 69,
1314 Pillager = 70,
1315 PolarBear = 71,
1316 PrimedTnt = 72,
1317 Pufferfish = 73,
1318 Rabbit = 74,
1319 Ravager = 75,
1320 Salmon = 76,
1321 Sheep = 77,
1322 Shulker = 78,
1323 ShulkerBullet = 79,
1324 Silverfish = 80,
1325 Skeleton = 81,
1326 SkeletonHorse = 82,
1327 Slime = 83,
1328 SmallFireball = 84,
1329 SnowGolem = 85,
1330 Snowball = 86,
1331 SpectralArrow = 87,
1332 Spider = 88,
1333 Squid = 89,
1334 Stray = 90,
1335 Strider = 91,
1336 Tadpole = 92,
1337 ThrownEgg = 93,
1338 ThrownEnderpearl = 94,
1340 ThrownPotion = 96,
1341 ThrownTrident = 97,
1342 TraderLlama = 98,
1343 TropicalFish = 99,
1344 Turtle = 100,
1345 Vex = 101,
1346 Villager = 102,
1347 Vindicator = 103,
1348 WanderingTrader = 104,
1349 Warden = 105,
1350 Witch = 106,
1351 WitherBoss = 107,
1352 WitherSkeleton = 108,
1353 WitherSkull = 109,
1354 Wolf = 110,
1355 Zoglin = 111,
1356 Zombie = 112,
1357 ZombieHorse = 113,
1358 ZombieVillager = 114,
1359 ZombifiedPiglin = 115,
1360 Player = 116,
1361 FishingHook = 117,
1362#elif PROTOCOL_VERSION > 754 /* > 1.16.5 */
1363 AreaEffectCloud = 0,
1364 ArmorStand = 1,
1365 Arrow = 2,
1366 Axolotl = 3,
1367 Bat = 4,
1368 Bee = 5,
1369 Blaze = 6,
1370 Boat = 7,
1371 Cat = 8,
1372 CaveSpider = 9,
1373 Chicken = 10,
1374 Cod = 11,
1375 Cow = 12,
1376 Creeper = 13,
1377 Dolphin = 14,
1378 Donkey = 15,
1379 DragonFireball = 16,
1380 Drowned = 17,
1381 ElderGuardian = 18,
1382 EndCrystal = 19,
1383 EnderDragon = 20,
1384 EnderMan = 21,
1385 Endermite = 22,
1386 Evoker = 23,
1387 EvokerFangs = 24,
1388 ExperienceOrb = 25,
1389 EyeOfEnder = 26,
1390 FallingBlockEntity = 27,
1392 Fox = 29,
1393 Ghast = 30,
1394 Giant = 31,
1395 GlowItemFrame = 32,
1396 GlowSquid = 33,
1397 Goat = 34,
1398 Guardian = 35,
1399 Hoglin = 36,
1400 Horse = 37,
1401 Husk = 38,
1402 Illusioner = 39,
1403 IronGolem = 40,
1404 ItemEntity = 41,
1405 ItemFrame = 42,
1406 LargeFireball = 43,
1408 LightningBolt = 45,
1409 Llama = 46,
1410 LlamaSpit = 47,
1411 MagmaCube = 48,
1412 Marker = 49,
1413 Minecart = 50,
1414 MinecartChest = 51,
1416 MinecartFurnace = 53,
1417 MinecartHopper = 54,
1418 MinecartSpawner = 55,
1419 MinecartTNT = 56,
1420 Mule = 57,
1421 MushroomCow = 58,
1422 Ocelot = 59,
1423 Painting = 60,
1424 Panda = 61,
1425 Parrot = 62,
1426 Phantom = 63,
1427 Pig = 64,
1428 Piglin = 65,
1429 PiglinBrute = 66,
1430 Pillager = 67,
1431 PolarBear = 68,
1432 PrimedTnt = 69,
1433 Pufferfish = 70,
1434 Rabbit = 71,
1435 Ravager = 72,
1436 Salmon = 73,
1437 Sheep = 74,
1438 Shulker = 75,
1439 ShulkerBullet = 76,
1440 Silverfish = 77,
1441 Skeleton = 78,
1442 SkeletonHorse = 79,
1443 Slime = 80,
1444 SmallFireball = 81,
1445 SnowGolem = 82,
1446 Snowball = 83,
1447 SpectralArrow = 84,
1448 Spider = 85,
1449 Squid = 86,
1450 Stray = 87,
1451 Strider = 88,
1452 ThrownEgg = 89,
1453 ThrownEnderpearl = 90,
1455 ThrownPotion = 92,
1456 ThrownTrident = 93,
1457 TraderLlama = 94,
1458 TropicalFish = 95,
1459 Turtle = 96,
1460 Vex = 97,
1461 Villager = 98,
1462 Vindicator = 99,
1463 WanderingTrader = 100,
1464 Witch = 101,
1465 WitherBoss = 102,
1466 WitherSkeleton = 103,
1467 WitherSkull = 104,
1468 Wolf = 105,
1469 Zoglin = 106,
1470 Zombie = 107,
1471 ZombieHorse = 108,
1472 ZombieVillager = 109,
1473 ZombifiedPiglin = 110,
1474 Player = 111,
1475 FishingHook = 112,
1476#elif PROTOCOL_VERSION > 736 /* > 1.16.1 */
1477 AreaEffectCloud = 0,
1478 ArmorStand = 1,
1479 Arrow = 2,
1480 Bat = 3,
1481 Bee = 4,
1482 Blaze = 5,
1483 Boat = 6,
1484 Cat = 7,
1485 CaveSpider = 8,
1486 Chicken = 9,
1487 Cod = 10,
1488 Cow = 11,
1489 Creeper = 12,
1490 Dolphin = 13,
1491 Donkey = 14,
1492 DragonFireball = 15,
1493 Drowned = 16,
1494 ElderGuardian = 17,
1495 EndCrystal = 18,
1496 EnderDragon = 19,
1497 EnderMan = 20,
1498 Endermite = 21,
1499 Evoker = 22,
1500 EvokerFangs = 23,
1501 ExperienceOrb = 24,
1502 EyeOfEnder = 25,
1503 FallingBlockEntity = 26,
1505 Fox = 28,
1506 Ghast = 29,
1507 Giant = 30,
1508 Guardian = 31,
1509 Hoglin = 32,
1510 Horse = 33,
1511 Husk = 34,
1512 Illusioner = 35,
1513 IronGolem = 36,
1514 ItemEntity = 37,
1515 ItemFrame = 38,
1516 LargeFireball = 39,
1518 LightningBolt = 41,
1519 Llama = 42,
1520 LlamaSpit = 43,
1521 MagmaCube = 44,
1522 Minecart = 45,
1523 MinecartChest = 46,
1525 MinecartFurnace = 48,
1526 MinecartHopper = 49,
1527 MinecartSpawner = 50,
1528 MinecartTNT = 51,
1529 Mule = 52,
1530 MushroomCow = 53,
1531 Ocelot = 54,
1532 Painting = 55,
1533 Panda = 56,
1534 Parrot = 57,
1535 Phantom = 58,
1536 Pig = 59,
1537 Piglin = 60,
1538 PiglinBrute = 61,
1539 Pillager = 62,
1540 PolarBear = 63,
1541 PrimedTnt = 64,
1542 Pufferfish = 65,
1543 Rabbit = 66,
1544 Ravager = 67,
1545 Salmon = 68,
1546 Sheep = 69,
1547 Shulker = 70,
1548 ShulkerBullet = 71,
1549 Silverfish = 72,
1550 Skeleton = 73,
1551 SkeletonHorse = 74,
1552 Slime = 75,
1553 SmallFireball = 76,
1554 SnowGolem = 77,
1555 Snowball = 78,
1556 SpectralArrow = 79,
1557 Spider = 80,
1558 Squid = 81,
1559 Stray = 82,
1560 Strider = 83,
1561 ThrownEgg = 84,
1562 ThrownEnderpearl = 85,
1564 ThrownPotion = 87,
1565 ThrownTrident = 88,
1566 TraderLlama = 89,
1567 TropicalFish = 90,
1568 Turtle = 91,
1569 Vex = 92,
1570 Villager = 93,
1571 Vindicator = 94,
1572 WanderingTrader = 95,
1573 Witch = 96,
1574 WitherBoss = 97,
1575 WitherSkeleton = 98,
1576 WitherSkull = 99,
1577 Wolf = 100,
1578 Zoglin = 101,
1579 Zombie = 102,
1580 ZombieHorse = 103,
1581 ZombieVillager = 104,
1582 ZombifiedPiglin = 105,
1583 Player = 106,
1584 FishingHook = 107,
1585#elif PROTOCOL_VERSION > 578 /* > 1.15.2 */
1586 AreaEffectCloud = 0,
1587 ArmorStand = 1,
1588 Arrow = 2,
1589 Bat = 3,
1590 Bee = 4,
1591 Blaze = 5,
1592 Boat = 6,
1593 Cat = 7,
1594 CaveSpider = 8,
1595 Chicken = 9,
1596 Cod = 10,
1597 Cow = 11,
1598 Creeper = 12,
1599 Dolphin = 13,
1600 Donkey = 14,
1601 DragonFireball = 15,
1602 Drowned = 16,
1603 ElderGuardian = 17,
1604 EndCrystal = 18,
1605 EnderDragon = 19,
1606 EnderMan = 20,
1607 Endermite = 21,
1608 Evoker = 22,
1609 EvokerFangs = 23,
1610 ExperienceOrb = 24,
1611 EyeOfEnder = 25,
1612 FallingBlockEntity = 26,
1614 Fox = 28,
1615 Ghast = 29,
1616 Giant = 30,
1617 Guardian = 31,
1618 Hoglin = 32,
1619 Horse = 33,
1620 Husk = 34,
1621 Illusioner = 35,
1622 IronGolem = 36,
1623 ItemEntity = 37,
1624 ItemFrame = 38,
1625 LargeFireball = 39,
1627 LightningBolt = 41,
1628 Llama = 42,
1629 LlamaSpit = 43,
1630 MagmaCube = 44,
1631 Minecart = 45,
1632 MinecartChest = 46,
1634 MinecartFurnace = 48,
1635 MinecartHopper = 49,
1636 MinecartSpawner = 50,
1637 MinecartTNT = 51,
1638 Mule = 52,
1639 MushroomCow = 53,
1640 Ocelot = 54,
1641 Painting = 55,
1642 Panda = 56,
1643 Parrot = 57,
1644 Phantom = 58,
1645 Pig = 59,
1646 Piglin = 60,
1647 Pillager = 61,
1648 PolarBear = 62,
1649 PrimedTnt = 63,
1650 Pufferfish = 64,
1651 Rabbit = 65,
1652 Ravager = 66,
1653 Salmon = 67,
1654 Sheep = 68,
1655 Shulker = 69,
1656 ShulkerBullet = 70,
1657 Silverfish = 71,
1658 Skeleton = 72,
1659 SkeletonHorse = 73,
1660 Slime = 74,
1661 SmallFireball = 75,
1662 SnowGolem = 76,
1663 Snowball = 77,
1664 SpectralArrow = 78,
1665 Spider = 79,
1666 Squid = 80,
1667 Stray = 81,
1668 Strider = 82,
1669 ThrownEgg = 83,
1670 ThrownEnderpearl = 84,
1672 ThrownPotion = 86,
1673 ThrownTrident = 87,
1674 TraderLlama = 88,
1675 TropicalFish = 89,
1676 Turtle = 90,
1677 Vex = 91,
1678 Villager = 92,
1679 Vindicator = 93,
1680 WanderingTrader = 94,
1681 Witch = 95,
1682 WitherBoss = 96,
1683 WitherSkeleton = 97,
1684 WitherSkull = 98,
1685 Wolf = 99,
1686 Zoglin = 100,
1687 Zombie = 101,
1688 ZombieHorse = 102,
1689 ZombieVillager = 103,
1690 ZombifiedPiglin = 104,
1691 Player = 105,
1692 FishingHook = 106,
1693#elif PROTOCOL_VERSION > 498 /* > 1.14.4 */
1694 AreaEffectCloud = 0,
1695 ArmorStand = 1,
1696 Arrow = 2,
1697 Bat = 3,
1698 Bee = 4,
1699 Blaze = 5,
1700 Boat = 6,
1701 Cat = 7,
1702 CaveSpider = 8,
1703 Chicken = 9,
1704 Cod = 10,
1705 Cow = 11,
1706 Creeper = 12,
1707 Donkey = 13,
1708 Dolphin = 14,
1709 DragonFireball = 15,
1710 Drowned = 16,
1711 ElderGuardian = 17,
1712 EndCrystal = 18,
1713 EnderDragon = 19,
1714 EnderMan = 20,
1715 Endermite = 21,
1716 EvokerFangs = 22,
1717 Evoker = 23,
1718 ExperienceOrb = 24,
1719 EyeOfEnder = 25,
1720 FallingBlockEntity = 26,
1722 Fox = 28,
1723 Ghast = 29,
1724 Giant = 30,
1725 Guardian = 31,
1726 Horse = 32,
1727 Husk = 33,
1728 Illusioner = 34,
1729 ItemEntity = 35,
1730 ItemFrame = 36,
1731 LargeFireball = 37,
1733 Llama = 39,
1734 LlamaSpit = 40,
1735 MagmaCube = 41,
1736 Minecart = 42,
1737 MinecartChest = 43,
1739 MinecartFurnace = 45,
1740 MinecartHopper = 46,
1741 MinecartSpawner = 47,
1742 MinecartTNT = 48,
1743 Mule = 49,
1744 MushroomCow = 50,
1745 Ocelot = 51,
1746 Painting = 52,
1747 Panda = 53,
1748 Parrot = 54,
1749 Pig = 55,
1750 Pufferfish = 56,
1751 PigZombie = 57,
1752 PolarBear = 58,
1753 PrimedTnt = 59,
1754 Rabbit = 60,
1755 Salmon = 61,
1756 Sheep = 62,
1757 Shulker = 63,
1758 ShulkerBullet = 64,
1759 Silverfish = 65,
1760 Skeleton = 66,
1761 SkeletonHorse = 67,
1762 Slime = 68,
1763 SmallFireball = 69,
1764 SnowGolem = 70,
1765 Snowball = 71,
1766 SpectralArrow = 72,
1767 Spider = 73,
1768 Squid = 74,
1769 Stray = 75,
1770 TraderLlama = 76,
1771 TropicalFish = 77,
1772 Turtle = 78,
1773 ThrownEgg = 79,
1774 ThrownEnderpearl = 80,
1776 ThrownPotion = 82,
1777 ThrownTrident = 83,
1778 Vex = 84,
1779 Villager = 85,
1780 IronGolem = 86,
1781 Vindicator = 87,
1782 Pillager = 88,
1783 WanderingTrader = 89,
1784 Witch = 90,
1785 WitherBoss = 91,
1786 WitherSkeleton = 92,
1787 WitherSkull = 93,
1788 Wolf = 94,
1789 Zombie = 95,
1790 ZombieHorse = 96,
1791 ZombieVillager = 97,
1792 Phantom = 98,
1793 Ravager = 99,
1794 LightningBolt = 100,
1795 Player = 101,
1796 FishingHook = 102,
1797#elif PROTOCOL_VERSION > 404 /* > 1.13.2 */
1798 AreaEffectCloud = 0,
1799 ArmorStand = 1,
1800 Arrow = 2,
1801 Bat = 3,
1802 Blaze = 4,
1803 Boat = 5,
1804 Cat = 6,
1805 CaveSpider = 7,
1806 Chicken = 8,
1807 Cod = 9,
1808 Cow = 10,
1809 Creeper = 11,
1810 Donkey = 12,
1811 Dolphin = 13,
1812 DragonFireball = 14,
1813 Drowned = 15,
1814 ElderGuardian = 16,
1815 EndCrystal = 17,
1816 EnderDragon = 18,
1817 EnderMan = 19,
1818 Endermite = 20,
1819 EvokerFangs = 21,
1820 Evoker = 22,
1821 ExperienceOrb = 23,
1822 EyeOfEnder = 24,
1823 FallingBlockEntity = 25,
1825 Fox = 27,
1826 Ghast = 28,
1827 Giant = 29,
1828 Guardian = 30,
1829 Horse = 31,
1830 Husk = 32,
1831 Illusioner = 33,
1832 ItemEntity = 34,
1833 ItemFrame = 35,
1834 LargeFireball = 36,
1836 Llama = 38,
1837 LlamaSpit = 39,
1838 MagmaCube = 40,
1839 Minecart = 41,
1840 MinecartChest = 42,
1842 MinecartFurnace = 44,
1843 MinecartHopper = 45,
1844 MinecartSpawner = 46,
1845 MinecartTNT = 47,
1846 Mule = 48,
1847 MushroomCow = 49,
1848 Ocelot = 50,
1849 Painting = 51,
1850 Panda = 52,
1851 Parrot = 53,
1852 Pig = 54,
1853 Pufferfish = 55,
1854 PigZombie = 56,
1855 PolarBear = 57,
1856 PrimedTnt = 58,
1857 Rabbit = 59,
1858 Salmon = 60,
1859 Sheep = 61,
1860 Shulker = 62,
1861 ShulkerBullet = 63,
1862 Silverfish = 64,
1863 Skeleton = 65,
1864 SkeletonHorse = 66,
1865 Slime = 67,
1866 SmallFireball = 68,
1867 SnowGolem = 69,
1868 Snowball = 70,
1869 SpectralArrow = 71,
1870 Spider = 72,
1871 Squid = 73,
1872 Stray = 74,
1873 TraderLlama = 75,
1874 TropicalFish = 76,
1875 Turtle = 77,
1876 ThrownEgg = 78,
1877 ThrownEnderpearl = 79,
1879 ThrownPotion = 81,
1880 ThrownTrident = 82,
1881 Vex = 83,
1882 Villager = 84,
1883 IronGolem = 85,
1884 Vindicator = 86,
1885 Pillager = 87,
1886 WanderingTrader = 88,
1887 Witch = 89,
1888 WitherBoss = 90,
1889 WitherSkeleton = 91,
1890 WitherSkull = 92,
1891 Wolf = 93,
1892 Zombie = 94,
1893 ZombieHorse = 95,
1894 ZombieVillager = 96,
1895 Phantom = 97,
1896 Ravager = 98,
1897 LightningBolt = 99,
1898 Player = 100,
1899 FishingHook = 101,
1900#elif PROTOCOL_VERSION > 340 /* > 1.12.2 */
1901 AreaEffectCloud = 0,
1902 ArmorStand = 1,
1903 Arrow = 2,
1904 Bat = 3,
1905 Blaze = 4,
1906 Boat = 5,
1907 CaveSpider = 6,
1908 Chicken = 7,
1909 Cod = 8,
1910 Cow = 9,
1911 Creeper = 10,
1912 Donkey = 11,
1913 Dolphin = 12,
1914 DragonFireball = 13,
1915 Drowned = 14,
1916 ElderGuardian = 15,
1917 EndCrystal = 16,
1918 EnderDragon = 17,
1919 EnderMan = 18,
1920 Endermite = 19,
1921 EvokerFangs = 20,
1922 Evoker = 21,
1923 ExperienceOrb = 22,
1924 EyeOfEnder = 23,
1925 FallingBlockEntity = 24,
1927 Ghast = 26,
1928 Giant = 27,
1929 Guardian = 28,
1930 Horse = 29,
1931 Husk = 30,
1932 Illusioner = 31,
1933 ItemEntity = 32,
1934 ItemFrame = 33,
1935 LargeFireball = 34,
1937 Llama = 36,
1938 LlamaSpit = 37,
1939 MagmaCube = 38,
1940 Minecart = 39,
1941 MinecartChest = 40,
1943 MinecartFurnace = 42,
1944 MinecartHopper = 43,
1945 MinecartSpawner = 44,
1946 MinecartTNT = 45,
1947 Mule = 46,
1948 MushroomCow = 47,
1949 Ocelot = 48,
1950 Painting = 49,
1951 Parrot = 50,
1952 Pig = 51,
1953 Pufferfish = 52,
1954 PigZombie = 53,
1955 PolarBear = 54,
1956 PrimedTnt = 55,
1957 Rabbit = 56,
1958 Salmon = 57,
1959 Sheep = 58,
1960 Shulker = 59,
1961 ShulkerBullet = 60,
1962 Silverfish = 61,
1963 Skeleton = 62,
1964 SkeletonHorse = 63,
1965 Slime = 64,
1966 SmallFireball = 65,
1967 SnowGolem = 66,
1968 Snowball = 67,
1969 SpectralArrow = 68,
1970 Spider = 69,
1971 Squid = 70,
1972 Stray = 71,
1973 TropicalFish = 72,
1974 Turtle = 73,
1975 ThrownEgg = 74,
1976 ThrownEnderpearl = 75,
1978 ThrownPotion = 77,
1979 Vex = 78,
1980 Villager = 79,
1981 IronGolem = 80,
1982 Vindicator = 81,
1983 Witch = 82,
1984 WitherBoss = 83,
1985 WitherSkeleton = 84,
1986 WitherSkull = 85,
1987 Wolf = 86,
1988 Zombie = 87,
1989 ZombieHorse = 88,
1990 ZombieVillager = 89,
1991 Phantom = 90,
1992 LightningBolt = 91,
1993 Player = 92,
1994 FishingHook = 93,
1995 ThrownTrident = 94,
1996#else // 1.12.2
1997 FishingHook = -3,
1998 Player = -2,
1999 ItemEntity = 1,
2000 ExperienceOrb = 2,
2001 AreaEffectCloud = 3,
2002 ElderGuardian = 4,
2003 WitherSkeleton = 5,
2004 Stray = 6,
2005 ThrownEgg = 7,
2007 Painting = 9,
2008 Arrow = 10,
2009 Snowball = 11,
2010 LargeFireball = 12,
2011 SmallFireball = 13,
2012 ThrownEnderpearl = 14,
2013 EyeOfEnder = 15,
2014 ThrownPotion = 16,
2016 ItemFrame = 18,
2017 WitherSkull = 19,
2018 PrimedTnt = 20,
2019 FallingBlockEntity = 21,
2021 Husk = 23,
2022 SpectralArrow = 24,
2023 ShulkerBullet = 25,
2024 DragonFireball = 26,
2025 ZombieVillager = 27,
2026 SkeletonHorse = 28,
2027 ZombieHorse = 29,
2028 ArmorStand = 30,
2029 Donkey = 31,
2030 Mule = 32,
2031 EvokerFangs = 33,
2032 Evoker = 34,
2033 Vex = 35,
2034 Vindicator = 36,
2035 Illusioner = 37,
2037 Boat = 41,
2038 Minecart = 42,
2039 MinecartChest = 43,
2040 MinecartFurnace = 44,
2041 MinecartTNT = 45,
2042 MinecartHopper = 46,
2043 MinecartSpawner = 47,
2044 Creeper = 50,
2045 Skeleton = 51,
2046 Spider = 52,
2047 Giant = 53,
2048 Zombie = 54,
2049 Slime = 55,
2050 Ghast = 56,
2051 PigZombie = 57,
2052 EnderMan = 58,
2053 CaveSpider = 59,
2054 Silverfish = 60,
2055 Blaze = 61,
2056 MagmaCube = 62,
2057 EnderDragon = 63,
2058 WitherBoss = 64,
2059 Bat = 65,
2060 Witch = 66,
2061 Endermite = 67,
2062 Guardian = 68,
2063 Shulker = 69,
2064 Pig = 90,
2065 Sheep = 91,
2066 Cow = 92,
2067 Chicken = 93,
2068 Squid = 94,
2069 Wolf = 95,
2070 MushroomCow = 96,
2071 SnowGolem = 97,
2072 Ocelot = 98,
2073 IronGolem = 99,
2074 Horse = 100,
2075 Rabbit = 101,
2076 PolarBear = 102,
2077 Llama = 103,
2078 LlamaSpit = 104,
2079 Parrot = 105,
2080 Villager = 120,
2081 EndCrystal = 200,
2082#endif
2084 };
2085
2086#if PROTOCOL_VERSION < 458 /* < 1.14 */
2087 enum class ObjectEntityType
2088 {
2089 None = -1,
2090 Boat = 1,
2091 ItemEntity = 2,
2092 AreaEffectCloud = 3,
2093 PrimedTnt = 50,
2094 EndCrystal = 51,
2095 Arrow = 60,
2096 Snowball = 61,
2097 ThrownEgg = 62,
2098 LargeFireball = 63,
2099 SmallFireball = 64,
2100 ThrownEnderpearl = 65,
2101 WitherSkull = 66,
2102 ShulkerBullet = 67,
2103 LlamaSpit = 68,
2104 FallingBlockEntity = 70,
2105 ItemFrame = 71,
2106 EyeOfEnder = 72,
2107 ThrownPotion = 73,
2109 FireworkRocketEntity = 76,
2110 LeashFenceKnotEntity = 77,
2111 ArmorStand = 78,
2112 EvokerFangs = 79,
2113 FishingHook = 90,
2114 SpectralArrow = 91,
2115 DragonFireball = 93,
2116#if PROTOCOL_VERSION > 340 /* > 1.12.2 */
2117 ThrownTrident = 94,
2118#endif
2120 };
2121#endif
2122}
int GetDataTicksFrozen() const
Definition Entity.cpp:752
void OnSizeUpdated()
Definition Entity.cpp:2013
virtual EntityType GetType() const =0
bool GetOnGround() const
Definition Entity.cpp:899
ProtocolCraft::UUID uuid
Definition Entity.hpp:262
virtual double GetHeightImpl() const
Definition Entity.cpp:2081
void SetDataSilent(const bool data_silent)
Definition Entity.cpp:798
virtual bool IsFlyingMob() const
Definition Entity.cpp:1283
virtual ProtocolCraft::Json::Value Serialize() const
Definition Entity.cpp:1151
void SetDataPose(const Pose data_pose)
Definition Entity.cpp:811
std::map< EquipmentSlot, ProtocolCraft::Slot > equipments
Items on this entity.
Definition Entity.hpp:271
virtual void SetY(const double y_)
Definition Entity.cpp:1000
double GetZ() const
Definition Entity.cpp:857
virtual bool IsAbstractChestedHorse() const
Definition Entity.cpp:1256
virtual bool IsWaterAnimal() const
Definition Entity.cpp:1251
void SetEffects(const std::vector< EntityEffect > &effects_)
Definition Entity.cpp:1100
void SetDataAirSupplyId(const int data_air_supply_id)
Definition Entity.cpp:772
void SetDataSharedFlagsIdImpl(const char data_shared_flags_id)
Definition Entity.cpp:2038
Vector3< double > GetSpeed() const
Definition Entity.cpp:875
void SetUUID(const ProtocolCraft::UUID &uuid_)
Definition Entity.cpp:959
std::map< EquipmentSlot, ProtocolCraft::Slot > GetEquipments() const
Definition Entity.cpp:905
Vector3< double > speed
Definition Entity.hpp:266
virtual bool IsAbstractArrow() const
Definition Entity.cpp:1207
virtual bool IsAbstractSkeleton() const
Definition Entity.cpp:1361
virtual bool IsAbstractPiglin() const
Definition Entity.cpp:1331
int GetEntityID() const
Definition Entity.cpp:827
virtual bool IsLocalPlayer() const
Definition Entity.cpp:1192
double GetHeight() const
Definition Entity.cpp:343
std::vector< EntityEffect > effects
Definition Entity.hpp:272
char GetDataSharedFlagsIdImpl() const
Definition Entity.cpp:2028
virtual bool IsRemotePlayer() const
Definition Entity.cpp:1197
bool GetDataSilent() const
Definition Entity.cpp:731
void SetDataPoseImpl(const Pose data_pose)
Definition Entity.cpp:2060
double GetSpeedX() const
Definition Entity.cpp:881
virtual bool IsAbstractBoat() const
Definition Entity.cpp:1415
virtual bool IsAbstractHurtingProjectile() const
Definition Entity.cpp:1261
ProtocolCraft::UUID GetUUID() const
Definition Entity.cpp:833
double GetY() const
Definition Entity.cpp:851
virtual bool IsAbstractSchoolingFish() const
Definition Entity.cpp:1246
void SetSpeed(const Vector3< double > &speed_)
Definition Entity.cpp:1064
virtual bool IsHangingEntity() const
Definition Entity.cpp:1298
bool GetAreRenderedFacesUpToDate() const
Definition Entity.cpp:945
virtual void SetMetadataValue(const int index, const std::any &value)
Definition Entity.cpp:678
virtual bool IsSpellcasterIllager() const
Definition Entity.cpp:1271
virtual bool IsBlockAttachedEntity() const
Definition Entity.cpp:1408
static std::shared_ptr< Entity > CreateEntity(const EntityType type)
Definition Entity.cpp:1452
static constexpr int hierarchy_metadata_count
Definition Entity.hpp:62
virtual bool IsAbstractThrownPotion() const
Definition Entity.cpp:1343
AABB GetCollider() const
Definition Entity.cpp:331
static const std::array< std::string, metadata_count > metadata_names
Definition Entity.hpp:61
bool are_rendered_faces_up_to_date
Definition Entity.hpp:281
virtual double GetWidthImpl() const
Definition Entity.cpp:2076
virtual void SetZ(const double z_)
Definition Entity.cpp:1016
void SetEquipment(const EquipmentSlot slot, const ProtocolCraft::Slot &item)
Definition Entity.cpp:1094
std::vector< Renderer::Face > faces
Definition Entity.hpp:279
virtual bool IsLivingEntity() const
Definition Entity.cpp:1202
virtual bool IsChestBoat() const
Definition Entity.cpp:1435
double GetWidth() const
Definition Entity.cpp:337
virtual ~Entity()
Definition Entity.cpp:325
virtual bool IsPatrollingMonster() const
Definition Entity.cpp:1389
virtual bool IsProjectile() const
Definition Entity.cpp:1277
int GetDataAirSupplyId() const
Definition Entity.cpp:705
std::vector< EntityEffect > GetEffects() const
Definition Entity.cpp:917
virtual bool IsAbstractMinecart() const
Definition Entity.cpp:1308
virtual bool IsDisplay() const
Definition Entity.cpp:1228
void SetSpeedY(const double speed_y_)
Definition Entity.cpp:1076
virtual bool IsAbstractMinecartContainer() const
Definition Entity.cpp:1320
void SetDataCustomName(const std::optional< ProtocolCraft::Chat > &data_custom_name)
Definition Entity.cpp:779
virtual bool IsAmbientCreature() const
Definition Entity.cpp:1217
virtual bool IsFireball() const
Definition Entity.cpp:1303
Pose GetDataPose() const
Definition Entity.cpp:744
std::shared_mutex entity_mutex
Definition Entity.hpp:259
void SetOnGround(const bool on_ground_)
Definition Entity.cpp:1088
virtual bool IsAnimal() const
Definition Entity.cpp:1212
std::vector< Renderer::Face > GetFaces(const bool reset_uptodate_status)
Definition Entity.cpp:924
void SetSpeedX(const double speed_x_)
Definition Entity.cpp:1070
virtual bool IsAbstractFish() const
Definition Entity.cpp:1349
virtual bool IsAgeableMob() const
Definition Entity.cpp:1378
virtual void SetX(const double x_)
Definition Entity.cpp:984
virtual bool IsAbstractVillager() const
Definition Entity.cpp:1372
virtual void InitializeFaces()
Definition Entity.cpp:1931
virtual bool IsThrowableProjectile() const
Definition Entity.cpp:1395
virtual bool IsAbstractWindCharge() const
Definition Entity.cpp:1401
AABB GetColliderImpl() const
Definition Entity.cpp:2069
void SetDataSharedFlagsId(const char data_shared_flags_id)
Definition Entity.cpp:760
char GetDataSharedFlagsId() const
Definition Entity.cpp:693
virtual bool IsMob() const
Definition Entity.cpp:1266
virtual void SetYaw(const float yaw_)
Definition Entity.cpp:1032
virtual bool IsPathfinderMob() const
Definition Entity.cpp:1383
ProtocolCraft::Slot GetEquipment(const EquipmentSlot slot) const
Definition Entity.cpp:911
void SetDataCustomNameVisible(const bool data_custom_name_visible)
Definition Entity.cpp:792
virtual bool IsVehicle() const
Definition Entity.cpp:1235
double GetSpeedY() const
Definition Entity.cpp:887
double GetSpeedZ() const
Definition Entity.cpp:893
virtual std::string GetName() const =0
Pose GetDataPoseImpl() const
Definition Entity.cpp:2055
virtual bool IsRaider() const
Definition Entity.cpp:1355
virtual void SetPitch(const float pitch_)
Definition Entity.cpp:1048
virtual bool IsThrowableItemProjectile() const
Definition Entity.cpp:1366
void SetEntityID(const int entity_id_)
Definition Entity.cpp:953
virtual bool IsMonster() const
Definition Entity.cpp:1222
virtual bool IsTamableAnimal() const
Definition Entity.cpp:1241
void SetDataNoGravity(const bool data_no_gravity)
Definition Entity.cpp:804
bool GetDataCustomNameVisible() const
Definition Entity.cpp:725
virtual bool IsAbstractIllager() const
Definition Entity.cpp:1337
virtual bool IsAbstractHorse() const
Definition Entity.cpp:1288
std::map< std::string, std::any > metadata
Definition Entity.hpp:274
Vector3< double > position
Definition Entity.hpp:263
virtual bool IsAbstractCow() const
Definition Entity.cpp:1314
virtual bool IsAbstractChestBoat() const
Definition Entity.cpp:1420
void AddEffect(const EntityEffect &effect)
Definition Entity.cpp:1122
virtual bool IsChestRaft() const
Definition Entity.cpp:1440
virtual bool IsAbstractGolem() const
Definition Entity.cpp:1293
float GetYaw() const
Definition Entity.cpp:863
virtual bool IsAgeableWaterCreature() const
Definition Entity.cpp:1425
double GetX() const
Definition Entity.cpp:845
bool GetDataNoGravity() const
Definition Entity.cpp:737
void SetAreRenderedFacesUpToDate(const bool are_rendered_faces_up_to_date_)
Definition Entity.cpp:1143
Vector3< double > GetPosition() const
Definition Entity.cpp:839
void SetSpeedZ(const double speed_z_)
Definition Entity.cpp:1082
static constexpr int metadata_count
Definition Entity.hpp:55
std::vector< FaceDescriptor > face_descriptors
Definition Entity.hpp:278
std::optional< ProtocolCraft::Chat > GetDataCustomName() const
Definition Entity.cpp:712
virtual bool IsBoat() const
Definition Entity.cpp:1430
void LoadMetadataFromRawArray(const std::vector< unsigned char > &data)
Definition Entity.cpp:350
virtual bool IsRaft() const
Definition Entity.cpp:1445
virtual bool IsShoulderRidingEntity() const
Definition Entity.cpp:1325
float GetPitch() const
Definition Entity.cpp:869
void RemoveEffect(const EntityEffectType type)
Definition Entity.cpp:1106
virtual void SetPosition(const Vector3< double > &position_)
Definition Entity.cpp:965
void SetDataTicksFrozen(const int data_ticks_frozen)
Definition Entity.cpp:819
Main class, basically a JsonVariant with extra utility functions it doesn't inherit JsonVariant direc...
Definition Json.hpp:45
EquipmentSlot
Definition Enums.hpp:276
EntityEffectType
Definition Enums.hpp:315
EntitySharedFlagsId
Definition Entity.hpp:40
std::array< unsigned char, 16 > UUID
std::chrono::steady_clock::time_point end
Definition Entity.hpp:36
unsigned char amplifier
Definition Entity.hpp:35
EntityEffectType type
Definition Entity.hpp:34