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