diff --git a/paper-api/src/main/java/com/destroystokyo/paper/SkinParts.java b/paper-api/src/main/java/com/destroystokyo/paper/SkinParts.java
index 4a0c39405d..c4cc74b95b 100644
--- a/paper-api/src/main/java/com/destroystokyo/paper/SkinParts.java
+++ b/paper-api/src/main/java/com/destroystokyo/paper/SkinParts.java
@@ -17,4 +17,15 @@ public interface SkinParts {
boolean hasHatsEnabled();
int getRaw();
+
+ interface Builder {
+ @org.jetbrains.annotations.NotNull Builder withCape(boolean cape);
+ @org.jetbrains.annotations.NotNull Builder withJacket(boolean jacket);
+ @org.jetbrains.annotations.NotNull Builder withLeftSleeve(boolean leftSleeve);
+ @org.jetbrains.annotations.NotNull Builder withRightSleeve(boolean rightSleeve);
+ @org.jetbrains.annotations.NotNull Builder withLeftPants(boolean leftPants);
+ @org.jetbrains.annotations.NotNull Builder withRightPants(boolean rightPants);
+ @org.jetbrains.annotations.NotNull Builder withHat(boolean hat);
+ @org.jetbrains.annotations.NotNull SkinParts build();
+ }
}
diff --git a/paper-api/src/main/java/io/papermc/paper/disguise/DisguiseData.java b/paper-api/src/main/java/io/papermc/paper/disguise/DisguiseData.java
new file mode 100644
index 0000000000..d83666c349
--- /dev/null
+++ b/paper-api/src/main/java/io/papermc/paper/disguise/DisguiseData.java
@@ -0,0 +1,66 @@
+package io.papermc.paper.disguise;
+
+import com.destroystokyo.paper.profile.PlayerProfile;
+import org.bukkit.entity.EntityType;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+/**
+ * Represents the data used to disguise an entity as another.
+ * Also supports disguising an entity as a player commonly known as `FakePlayer`.
+ */
+@NullMarked
+public sealed interface DisguiseData permits DisguiseData.OriginalDisguise, EntityTypeDisguise, PlayerDisguise {
+
+ /**
+ * Creates an original disguise data that can be used to reset disguising.
+ *
+ * The original instance is set by default when a new entity is spawned
+ * and represents the state of no disguise should be made.
+ *
+ * Same as {@link #reset()}
+ *
+ * @return an original disguise data
+ */
+ static DisguiseData original() {
+ return reset();
+ }
+
+ /**
+ * Creates a {@link PlayerDisguise.Builder} where you can configure certain properties of the fake player appearance.
+ *
+ *
+ * @param playerProfile a already completed player profile that will be the fake players skin
+ * @return a builder to configure certain attributes
+ */
+ static PlayerDisguise.Builder player(PlayerProfile playerProfile) {
+ return new PlayerDisguise.Builder(playerProfile);
+ }
+
+ /**
+ * Creates a {@link EntityTypeDisguise.Builder} to allow disguising your entity as the given {@link EntityType}.
+ *
+ *
+ * @param entityType the entity type as which the entity should appear as.
+ * @return an entity disguise
+ */
+ static EntityTypeDisguise.Builder entity(EntityType entityType) {
+ return new EntityTypeDisguise.Builder(entityType);
+ }
+
+ /**
+ * An alias for {@link #original()} to cover certain views on it.
+ *
+ * @see #original()
+ *
+ * @return an original disguise data
+ */
+ static OriginalDisguise reset() {
+ return new OriginalDisguise();
+ }
+
+ record OriginalDisguise() implements DisguiseData{
+ @ApiStatus.Internal
+ public OriginalDisguise() {}
+ }
+}
diff --git a/paper-api/src/main/java/io/papermc/paper/disguise/EntityTypeDisguise.java b/paper-api/src/main/java/io/papermc/paper/disguise/EntityTypeDisguise.java
new file mode 100644
index 0000000000..1482b831df
--- /dev/null
+++ b/paper-api/src/main/java/io/papermc/paper/disguise/EntityTypeDisguise.java
@@ -0,0 +1,35 @@
+package io.papermc.paper.disguise;
+
+import java.util.Objects;
+import org.bukkit.entity.EntityType;
+import org.jetbrains.annotations.ApiStatus;
+import org.jspecify.annotations.NullMarked;
+
+@NullMarked
+public record EntityTypeDisguise(EntityType entityType) implements DisguiseData {
+ @ApiStatus.Internal
+ public EntityTypeDisguise {
+ Objects.requireNonNull(entityType, "type cannot be null");
+ }
+
+ /**
+ * Represents the builder to configure certain appearance settings.
+ */
+ public static class Builder {
+ private final EntityType entityType;
+
+ @ApiStatus.Internal
+ public Builder(EntityType entityType) {
+ this.entityType = entityType;
+ }
+
+ /**
+ * Builds the disguise
+ *
+ * @return the built disguise
+ */
+ public EntityTypeDisguise build() {
+ return new EntityTypeDisguise(entityType);
+ }
+ }
+}
diff --git a/paper-api/src/main/java/io/papermc/paper/disguise/PlayerDisguise.java b/paper-api/src/main/java/io/papermc/paper/disguise/PlayerDisguise.java
new file mode 100644
index 0000000000..a207fb0d59
--- /dev/null
+++ b/paper-api/src/main/java/io/papermc/paper/disguise/PlayerDisguise.java
@@ -0,0 +1,83 @@
+package io.papermc.paper.disguise;
+
+import com.destroystokyo.paper.SkinParts;
+import com.destroystokyo.paper.profile.PlayerProfile;
+import java.util.Objects;
+import org.bukkit.Server;
+import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable;
+import org.jspecify.annotations.NullMarked;
+
+@NullMarked
+public record PlayerDisguise(PlayerProfile playerProfile, boolean listed, boolean showHead,
+ @Nullable SkinParts skinParts) implements DisguiseData {
+
+ @ApiStatus.Internal
+ public PlayerDisguise {
+ Objects.requireNonNull(playerProfile, "profile cannot be null");
+ }
+ public static Builder builder(PlayerProfile playerProfile) {
+ return new Builder(playerProfile);
+ }
+
+ /**
+ * Represents the builder to configure certain appearance settings.
+ */
+ public static class Builder {
+ private final PlayerProfile playerProfile;
+ private boolean listed;
+ private boolean showHead;
+ @Nullable
+ private SkinParts skinParts;
+
+ @ApiStatus.Internal
+ public Builder(PlayerProfile playerProfile) {
+ this.playerProfile = playerProfile;
+ }
+
+ /**
+ * Defines if the fake player will be shown in player list.
+ *
+ * @param listed true, if the player should be listed else false
+ * @return the builder instance
+ */
+ public Builder listed(boolean listed) {
+ this.listed = listed;
+ return this;
+ }
+
+ /**
+ * Defines which skin parts should be enabled for the fake player.
+ *
+ *
+ * @param showHead defines if the fake players head should be shown in the player list.
+ * @return the builder instance
+ */
+ public Builder showHead(boolean showHead) {
+ this.showHead = showHead;
+ return this;
+ }
+
+ /**
+ * Defines which skin parts should be enabled for the fake player.
+ *
+ * Use {@link Server#newSkinPartsBuilder()} to get a fresh builder instance for configuration.
+ *
+ * @param skinParts the skin parts that should be shown.
+ * @return the builder instance
+ */
+ public Builder skinParts(SkinParts skinParts) {
+ this.skinParts = skinParts;
+ return this;
+ }
+
+ /**
+ * Builds the disguise
+ *
+ * @return the built disguise
+ */
+ public PlayerDisguise build() {
+ return new PlayerDisguise(playerProfile, listed, showHead, skinParts);
+ }
+ }
+}
diff --git a/paper-api/src/main/java/org/bukkit/Server.java b/paper-api/src/main/java/org/bukkit/Server.java
index ad816538b3..bdfca724c6 100644
--- a/paper-api/src/main/java/org/bukkit/Server.java
+++ b/paper-api/src/main/java/org/bukkit/Server.java
@@ -2607,4 +2607,11 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value);
// Paper end - API to check if the server is sleeping
+ // Paper start - add disguise api
+ /**
+ * Creates a new skinparts builder used for overriding skin settings
+ * @return a new builder for skin parts
+ */
+ com.destroystokyo.paper.SkinParts.@NotNull Builder newSkinPartsBuilder();
+ // Paper end - add disguise api
}
diff --git a/paper-api/src/main/java/org/bukkit/entity/Entity.java b/paper-api/src/main/java/org/bukkit/entity/Entity.java
index 19272cff8d..3d76045598 100644
--- a/paper-api/src/main/java/org/bukkit/entity/Entity.java
+++ b/paper-api/src/main/java/org/bukkit/entity/Entity.java
@@ -1172,4 +1172,34 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
void broadcastHurtAnimation(@NotNull java.util.Collection players);
// Paper end - broadcast hurt animation
+ // Paper start - disguise api
+
+ /**
+ * Gets the current {@link io.papermc.paper.disguise.DisguiseData} of the entity.
+ *
+ * @return {@link io.papermc.paper.disguise.DisguiseData.OriginalDisguise} if entity is not disguised.
+ * Otherwise, one of {@link io.papermc.paper.disguise.EntityTypeDisguise} or {@link io.papermc.paper.disguise.PlayerDisguise}
+ */
+ @NotNull io.papermc.paper.disguise.DisguiseData getDisguiseData();
+
+ /**
+ * Sets the current {@link io.papermc.paper.disguise.DisguiseData} of the entity.
+ *
+ * Following {@link io.papermc.paper.disguise.DisguiseData} can be set:
+ *
+ * - {@link io.papermc.paper.disguise.PlayerDisguise} use {@link io.papermc.paper.disguise.DisguiseData#player(com.destroystokyo.paper.profile.PlayerProfile)}.
+ * It returns a builder where you are able to configure additional settings
+ * - {@link io.papermc.paper.disguise.EntityTypeDisguise} use {@link io.papermc.paper.disguise.DisguiseData#entity(EntityType)}
+ * - {@link io.papermc.paper.disguise.DisguiseData.OriginalDisguise} use {@link io.papermc.paper.disguise.DisguiseData#original()} or {@link io.papermc.paper.disguise.DisguiseData#reset()} to reset it again to the original state
+ *
+ *
+ * The following entities are not supported:
+ *
+ * - {@link ExperienceOrb}
+ *
+ *
+ * @param disguiseData the {@link io.papermc.paper.disguise.DisguiseData} that will be set.
+ */
+ void setDisguiseData(@NotNull io.papermc.paper.disguise.DisguiseData disguiseData);
+ // Paper end - disguise api
}
diff --git a/paper-server-generator.settings.gradle.kts b/paper-server-generator.settings.gradle.kts
new file mode 100644
index 0000000000..70dc24f530
--- /dev/null
+++ b/paper-server-generator.settings.gradle.kts
@@ -0,0 +1,2 @@
+// Uncomment to enable the 'paper-server-generator' project
+// include(":paper-server-generator")
diff --git a/paper-server-generator/build.gradle.kts b/paper-server-generator/build.gradle.kts
new file mode 100644
index 0000000000..67d1ae285a
--- /dev/null
+++ b/paper-server-generator/build.gradle.kts
@@ -0,0 +1,37 @@
+import io.papermc.paperweight.util.defaultJavaLauncher
+
+plugins {
+ java
+ id("io.papermc.paperweight.source-generator")
+}
+
+paperweight {
+ atFile.set(layout.projectDirectory.file("wideners.at"))
+}
+
+dependencies {
+ minecraftJar(project(":paper-server", "mappedJarOutgoing"))
+ implementation(project(":paper-server", "macheMinecraftLibraries"))
+
+ implementation("com.squareup:javapoet:1.13.0")
+ implementation(project(":paper-api"))
+ implementation("io.github.classgraph:classgraph:4.8.47")
+ implementation("org.jetbrains:annotations:24.1.0")
+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
+ testRuntimeOnly("org.junit.platform:junit-platform-launcher")
+}
+
+tasks.register("generate") {
+ dependsOn(tasks.check)
+ mainClass.set("io.papermc.generator.Main")
+ classpath(sourceSets.main.map { it.runtimeClasspath })
+ args(projectDir.toPath().resolve("generated").toString())
+ javaLauncher = javaToolchains.defaultJavaLauncher(project)
+}
+
+tasks.test {
+ useJUnitPlatform()
+}
+
+group = "io.papermc.paper"
+version = "1.0-SNAPSHOT"
diff --git a/paper-server-generator/generated/io/papermc/paper/entity/meta/EntityMetaWatcher.java b/paper-server-generator/generated/io/papermc/paper/entity/meta/EntityMetaWatcher.java
new file mode 100644
index 0000000000..4ccf933de8
--- /dev/null
+++ b/paper-server-generator/generated/io/papermc/paper/entity/meta/EntityMetaWatcher.java
@@ -0,0 +1,3095 @@
+package io.papermc.paper.entity.meta;
+
+import io.papermc.paper.generated.GeneratedFrom;
+import java.util.HashMap;
+import java.util.Map;
+import net.minecraft.network.syncher.EntityDataSerializer;
+import net.minecraft.network.syncher.EntityDataSerializers;
+import net.minecraft.server.level.ServerPlayer;
+import net.minecraft.world.entity.AreaEffectCloud;
+import net.minecraft.world.entity.Display;
+import net.minecraft.world.entity.Entity;
+import net.minecraft.world.entity.ExperienceOrb;
+import net.minecraft.world.entity.GlowSquid;
+import net.minecraft.world.entity.Interaction;
+import net.minecraft.world.entity.LightningBolt;
+import net.minecraft.world.entity.Marker;
+import net.minecraft.world.entity.OminousItemSpawner;
+import net.minecraft.world.entity.ambient.Bat;
+import net.minecraft.world.entity.animal.Bee;
+import net.minecraft.world.entity.animal.Cat;
+import net.minecraft.world.entity.animal.Chicken;
+import net.minecraft.world.entity.animal.Cod;
+import net.minecraft.world.entity.animal.Cow;
+import net.minecraft.world.entity.animal.Dolphin;
+import net.minecraft.world.entity.animal.Fox;
+import net.minecraft.world.entity.animal.IronGolem;
+import net.minecraft.world.entity.animal.MushroomCow;
+import net.minecraft.world.entity.animal.Ocelot;
+import net.minecraft.world.entity.animal.Panda;
+import net.minecraft.world.entity.animal.Parrot;
+import net.minecraft.world.entity.animal.Pig;
+import net.minecraft.world.entity.animal.PolarBear;
+import net.minecraft.world.entity.animal.Pufferfish;
+import net.minecraft.world.entity.animal.Rabbit;
+import net.minecraft.world.entity.animal.Salmon;
+import net.minecraft.world.entity.animal.Sheep;
+import net.minecraft.world.entity.animal.SnowGolem;
+import net.minecraft.world.entity.animal.Squid;
+import net.minecraft.world.entity.animal.TropicalFish;
+import net.minecraft.world.entity.animal.Turtle;
+import net.minecraft.world.entity.animal.Wolf;
+import net.minecraft.world.entity.animal.allay.Allay;
+import net.minecraft.world.entity.animal.armadillo.Armadillo;
+import net.minecraft.world.entity.animal.axolotl.Axolotl;
+import net.minecraft.world.entity.animal.camel.Camel;
+import net.minecraft.world.entity.animal.frog.Frog;
+import net.minecraft.world.entity.animal.frog.Tadpole;
+import net.minecraft.world.entity.animal.goat.Goat;
+import net.minecraft.world.entity.animal.horse.Donkey;
+import net.minecraft.world.entity.animal.horse.Horse;
+import net.minecraft.world.entity.animal.horse.Llama;
+import net.minecraft.world.entity.animal.horse.Mule;
+import net.minecraft.world.entity.animal.horse.SkeletonHorse;
+import net.minecraft.world.entity.animal.horse.TraderLlama;
+import net.minecraft.world.entity.animal.horse.ZombieHorse;
+import net.minecraft.world.entity.animal.sniffer.Sniffer;
+import net.minecraft.world.entity.boss.EnderDragonPart;
+import net.minecraft.world.entity.boss.enderdragon.EndCrystal;
+import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
+import net.minecraft.world.entity.boss.wither.WitherBoss;
+import net.minecraft.world.entity.decoration.ArmorStand;
+import net.minecraft.world.entity.decoration.GlowItemFrame;
+import net.minecraft.world.entity.decoration.ItemFrame;
+import net.minecraft.world.entity.decoration.LeashFenceKnotEntity;
+import net.minecraft.world.entity.decoration.Painting;
+import net.minecraft.world.entity.item.FallingBlockEntity;
+import net.minecraft.world.entity.item.ItemEntity;
+import net.minecraft.world.entity.item.PrimedTnt;
+import net.minecraft.world.entity.monster.Blaze;
+import net.minecraft.world.entity.monster.Bogged;
+import net.minecraft.world.entity.monster.CaveSpider;
+import net.minecraft.world.entity.monster.Creeper;
+import net.minecraft.world.entity.monster.Drowned;
+import net.minecraft.world.entity.monster.ElderGuardian;
+import net.minecraft.world.entity.monster.EnderMan;
+import net.minecraft.world.entity.monster.Endermite;
+import net.minecraft.world.entity.monster.Evoker;
+import net.minecraft.world.entity.monster.Ghast;
+import net.minecraft.world.entity.monster.Giant;
+import net.minecraft.world.entity.monster.Guardian;
+import net.minecraft.world.entity.monster.Husk;
+import net.minecraft.world.entity.monster.Illusioner;
+import net.minecraft.world.entity.monster.MagmaCube;
+import net.minecraft.world.entity.monster.Phantom;
+import net.minecraft.world.entity.monster.Pillager;
+import net.minecraft.world.entity.monster.Ravager;
+import net.minecraft.world.entity.monster.Shulker;
+import net.minecraft.world.entity.monster.Silverfish;
+import net.minecraft.world.entity.monster.Skeleton;
+import net.minecraft.world.entity.monster.Slime;
+import net.minecraft.world.entity.monster.Spider;
+import net.minecraft.world.entity.monster.Stray;
+import net.minecraft.world.entity.monster.Strider;
+import net.minecraft.world.entity.monster.Vex;
+import net.minecraft.world.entity.monster.Vindicator;
+import net.minecraft.world.entity.monster.Witch;
+import net.minecraft.world.entity.monster.WitherSkeleton;
+import net.minecraft.world.entity.monster.Zoglin;
+import net.minecraft.world.entity.monster.Zombie;
+import net.minecraft.world.entity.monster.ZombieVillager;
+import net.minecraft.world.entity.monster.ZombifiedPiglin;
+import net.minecraft.world.entity.monster.breeze.Breeze;
+import net.minecraft.world.entity.monster.creaking.Creaking;
+import net.minecraft.world.entity.monster.hoglin.Hoglin;
+import net.minecraft.world.entity.monster.piglin.Piglin;
+import net.minecraft.world.entity.monster.piglin.PiglinBrute;
+import net.minecraft.world.entity.monster.warden.Warden;
+import net.minecraft.world.entity.npc.Villager;
+import net.minecraft.world.entity.npc.WanderingTrader;
+import net.minecraft.world.entity.projectile.Arrow;
+import net.minecraft.world.entity.projectile.DragonFireball;
+import net.minecraft.world.entity.projectile.EvokerFangs;
+import net.minecraft.world.entity.projectile.EyeOfEnder;
+import net.minecraft.world.entity.projectile.FireworkRocketEntity;
+import net.minecraft.world.entity.projectile.FishingHook;
+import net.minecraft.world.entity.projectile.LargeFireball;
+import net.minecraft.world.entity.projectile.LlamaSpit;
+import net.minecraft.world.entity.projectile.ShulkerBullet;
+import net.minecraft.world.entity.projectile.SmallFireball;
+import net.minecraft.world.entity.projectile.Snowball;
+import net.minecraft.world.entity.projectile.SpectralArrow;
+import net.minecraft.world.entity.projectile.ThrownEgg;
+import net.minecraft.world.entity.projectile.ThrownEnderpearl;
+import net.minecraft.world.entity.projectile.ThrownExperienceBottle;
+import net.minecraft.world.entity.projectile.ThrownPotion;
+import net.minecraft.world.entity.projectile.ThrownTrident;
+import net.minecraft.world.entity.projectile.WitherSkull;
+import net.minecraft.world.entity.projectile.windcharge.BreezeWindCharge;
+import net.minecraft.world.entity.projectile.windcharge.WindCharge;
+import net.minecraft.world.entity.vehicle.Boat;
+import net.minecraft.world.entity.vehicle.ChestBoat;
+import net.minecraft.world.entity.vehicle.ChestRaft;
+import net.minecraft.world.entity.vehicle.Minecart;
+import net.minecraft.world.entity.vehicle.MinecartChest;
+import net.minecraft.world.entity.vehicle.MinecartCommandBlock;
+import net.minecraft.world.entity.vehicle.MinecartFurnace;
+import net.minecraft.world.entity.vehicle.MinecartHopper;
+import net.minecraft.world.entity.vehicle.MinecartSpawner;
+import net.minecraft.world.entity.vehicle.MinecartTNT;
+import net.minecraft.world.entity.vehicle.Raft;
+import org.jspecify.annotations.NullMarked;
+
+@SuppressWarnings({
+ "unused",
+ "SpellCheckingInspection"
+})
+@GeneratedFrom("1.21.4")
+@NullMarked
+public final class EntityMetaWatcher {
+ private static final Map, Map>> VALID_ENTITY_META_MAP = initialize();
+
+ private static final Map> allay() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> areaEffectCloud() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.FLOAT);
+ result.put(9L, EntityDataSerializers.BOOLEAN);
+ result.put(10L, EntityDataSerializers.PARTICLE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> armadillo() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.ARMADILLO_STATE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> armorStand() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.ROTATIONS);
+ result.put(17L, EntityDataSerializers.ROTATIONS);
+ result.put(18L, EntityDataSerializers.ROTATIONS);
+ result.put(19L, EntityDataSerializers.ROTATIONS);
+ result.put(20L, EntityDataSerializers.ROTATIONS);
+ result.put(21L, EntityDataSerializers.ROTATIONS);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> arrow() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.BYTE);
+ result.put(10L, EntityDataSerializers.BOOLEAN);
+ result.put(11L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> axolotl() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> bat() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> bee() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> blaze() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> blockDisplay() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.INT);
+ result.put(11L, EntityDataSerializers.VECTOR3);
+ result.put(12L, EntityDataSerializers.VECTOR3);
+ result.put(13L, EntityDataSerializers.QUATERNION);
+ result.put(14L, EntityDataSerializers.QUATERNION);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ result.put(17L, EntityDataSerializers.FLOAT);
+ result.put(18L, EntityDataSerializers.FLOAT);
+ result.put(19L, EntityDataSerializers.FLOAT);
+ result.put(20L, EntityDataSerializers.FLOAT);
+ result.put(21L, EntityDataSerializers.FLOAT);
+ result.put(22L, EntityDataSerializers.INT);
+ result.put(23L, EntityDataSerializers.BLOCK_STATE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> boat() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.BOOLEAN);
+ result.put(13L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> bogged() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> breeze() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> breezeWindCharge() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> camel() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.LONG);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> cat() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.OPTIONAL_UUID);
+ result.put(19L, EntityDataSerializers.CAT_VARIANT);
+ result.put(20L, EntityDataSerializers.BOOLEAN);
+ result.put(21L, EntityDataSerializers.BOOLEAN);
+ result.put(22L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> caveSpider() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> chestBoat() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.BOOLEAN);
+ result.put(13L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> chestRaft() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.BOOLEAN);
+ result.put(13L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> chicken() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> cod() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> cow() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> creaking() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> creeper() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> dolphin() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BLOCK_POS);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> donkey() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> dragonFireball() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> drowned() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> elderGuardian() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> endCrystal() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(9L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> enderDragon() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> enderDragonPart() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> enderMan() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.OPTIONAL_BLOCK_STATE);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> endermite() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> evoker() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> evokerFangs() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> experienceOrb() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> eyeOfEnder() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> fallingBlockEntity() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BLOCK_POS);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> fireworkRocketEntity() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ result.put(9L, EntityDataSerializers.OPTIONAL_UNSIGNED_INT);
+ result.put(10L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> fishingHook() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> fox() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ result.put(18L, EntityDataSerializers.BYTE);
+ result.put(19L, EntityDataSerializers.OPTIONAL_UUID);
+ result.put(20L, EntityDataSerializers.OPTIONAL_UUID);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> frog() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.FROG_VARIANT);
+ result.put(18L, EntityDataSerializers.OPTIONAL_UNSIGNED_INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> ghast() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> giant() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> glowItemFrame() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ result.put(9L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> glowSquid() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> goat() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> guardian() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> hoglin() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> horse() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> husk() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> illusioner() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> interaction() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.FLOAT);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> ironGolem() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> itemDisplay() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.INT);
+ result.put(11L, EntityDataSerializers.VECTOR3);
+ result.put(12L, EntityDataSerializers.VECTOR3);
+ result.put(13L, EntityDataSerializers.QUATERNION);
+ result.put(14L, EntityDataSerializers.QUATERNION);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ result.put(17L, EntityDataSerializers.FLOAT);
+ result.put(18L, EntityDataSerializers.FLOAT);
+ result.put(19L, EntityDataSerializers.FLOAT);
+ result.put(20L, EntityDataSerializers.FLOAT);
+ result.put(21L, EntityDataSerializers.FLOAT);
+ result.put(22L, EntityDataSerializers.INT);
+ result.put(23L, EntityDataSerializers.ITEM_STACK);
+ result.put(24L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> itemEntity() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> itemFrame() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ result.put(9L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> largeFireball() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> leashFenceKnotEntity() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> lightningBolt() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> llama() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.INT);
+ result.put(20L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> llamaSpit() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> magmaCube() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> marker() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> minecart() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.INT);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> minecartChest() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.INT);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> minecartCommandBlock() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.INT);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.BOOLEAN);
+ result.put(14L, EntityDataSerializers.STRING);
+ result.put(15L, EntityDataSerializers.COMPONENT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> minecartFurnace() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.INT);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.BOOLEAN);
+ result.put(14L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> minecartHopper() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.INT);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> minecartSpawner() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.INT);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> minecartTNT() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.INT);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> mule() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> mushroomCow() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.STRING);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> ocelot() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> ominousItemSpawner() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> painting() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.PAINTING_VARIANT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> panda() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ result.put(18L, EntityDataSerializers.INT);
+ result.put(19L, EntityDataSerializers.INT);
+ result.put(20L, EntityDataSerializers.BYTE);
+ result.put(21L, EntityDataSerializers.BYTE);
+ result.put(22L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> parrot() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.OPTIONAL_UUID);
+ result.put(19L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> phantom() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> pig() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ result.put(18L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> piglin() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> piglinBrute() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> pillager() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> polarBear() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> primedTnt() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.BLOCK_STATE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> pufferfish() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> rabbit() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> raft() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.FLOAT);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.BOOLEAN);
+ result.put(13L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> ravager() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> salmon() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> serverPlayer() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.FLOAT);
+ result.put(16L, EntityDataSerializers.INT);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.BYTE);
+ result.put(19L, EntityDataSerializers.COMPOUND_TAG);
+ result.put(20L, EntityDataSerializers.COMPOUND_TAG);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> sheep() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> shulker() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.DIRECTION);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> shulkerBullet() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> silverfish() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> skeleton() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> skeletonHorse() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> slime() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> smallFireball() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> sniffer() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.SNIFFER_STATE);
+ result.put(18L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> snowGolem() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> snowball() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> spectralArrow() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.BYTE);
+ result.put(10L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> spider() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> squid() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> stray() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> strider() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> tadpole() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> textDisplay() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.INT);
+ result.put(9L, EntityDataSerializers.INT);
+ result.put(10L, EntityDataSerializers.INT);
+ result.put(11L, EntityDataSerializers.VECTOR3);
+ result.put(12L, EntityDataSerializers.VECTOR3);
+ result.put(13L, EntityDataSerializers.QUATERNION);
+ result.put(14L, EntityDataSerializers.QUATERNION);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ result.put(17L, EntityDataSerializers.FLOAT);
+ result.put(18L, EntityDataSerializers.FLOAT);
+ result.put(19L, EntityDataSerializers.FLOAT);
+ result.put(20L, EntityDataSerializers.FLOAT);
+ result.put(21L, EntityDataSerializers.FLOAT);
+ result.put(22L, EntityDataSerializers.INT);
+ result.put(23L, EntityDataSerializers.COMPONENT);
+ result.put(24L, EntityDataSerializers.INT);
+ result.put(25L, EntityDataSerializers.INT);
+ result.put(26L, EntityDataSerializers.BYTE);
+ result.put(27L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> thrownEgg() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> thrownEnderpearl() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> thrownExperienceBottle() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> thrownPotion() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.ITEM_STACK);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> thrownTrident() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.BYTE);
+ result.put(10L, EntityDataSerializers.BOOLEAN);
+ result.put(11L, EntityDataSerializers.BYTE);
+ result.put(12L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> traderLlama() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BYTE);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.INT);
+ result.put(20L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> tropicalFish() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> turtle() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.BLOCK_POS);
+ result.put(18L, EntityDataSerializers.BOOLEAN);
+ result.put(19L, EntityDataSerializers.BOOLEAN);
+ result.put(20L, EntityDataSerializers.BLOCK_POS);
+ result.put(21L, EntityDataSerializers.BOOLEAN);
+ result.put(22L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> vex() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BYTE);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> villager() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ result.put(18L, EntityDataSerializers.VILLAGER_DATA);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> vindicator() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> wanderingTrader() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.BOOLEAN);
+ result.put(17L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> warden() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ result.put(8L, EntityDataSerializers.BYTE);
+ result.put(9L, EntityDataSerializers.FLOAT);
+ result.put(10L, EntityDataSerializers.PARTICLES);
+ result.put(11L, EntityDataSerializers.BOOLEAN);
+ result.put(12L, EntityDataSerializers.INT);
+ result.put(13L, EntityDataSerializers.INT);
+ result.put(14L, EntityDataSerializers.OPTIONAL_BLOCK_POS);
+ result.put(15L, EntityDataSerializers.BYTE);
+ result.put(16L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map> windCharge() {
+ Map> result = new HashMap<>();
+ result.put(0L, EntityDataSerializers.BYTE);
+ result.put(1L, EntityDataSerializers.INT);
+ result.put(2L, EntityDataSerializers.OPTIONAL_COMPONENT);
+ result.put(3L, EntityDataSerializers.BOOLEAN);
+ result.put(4L, EntityDataSerializers.BOOLEAN);
+ result.put(5L, EntityDataSerializers.BOOLEAN);
+ result.put(6L, EntityDataSerializers.POSE);
+ result.put(7L, EntityDataSerializers.INT);
+ return Map.copyOf(result);
+ }
+
+ private static final Map