diff --git a/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java b/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java index 76c75eb..e4ae929 100644 --- a/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java +++ b/src/main/java/io/github/queerbric/inspecio/tooltip/SpawnEntityTooltipComponent.java @@ -30,9 +30,9 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; import java.util.Optional; -import java.util.UUID; public class SpawnEntityTooltipComponent extends EntityTooltipComponent { private final Entity entity; @@ -59,6 +59,19 @@ public static Optional of(EntityType entityType, NbtCompound ite villagerData.putString("type", "minecraft:plains"); itemEntityNbt.put("VillagerData", villagerData); } + if (itemEntityNbt.contains("id", NbtElement.STRING_TYPE)) { + var id = itemEntityNbt.getString("id"); + id = id.replaceAll("[^a-z0-9/._-]", ""); + itemEntityNbt.putString("id", id); + Optional> entityTypeOptional = EntityType.fromNbt(itemEntityNbt); + if (entityTypeOptional.isPresent()) { + var entity2 = entityTypeOptional.get().create(client.world); + if (entity2 != null) { + entity = entity2; + adjustEntity(entity, itemNbt, entitiesConfig); + } + } + } var entityTag = entity.writeNbt(new NbtCompound()); var uuid = entity.getUuid(); entityTag.copyFrom(itemEntityNbt);