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