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