/* * This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion * Copyright (C) 2016-2023 ViaVersion and contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package com.viaversion.viaversion.api.minecraft.entities; import com.viaversion.viaversion.util.EntityTypeUtil; public enum Entity1_17Types implements EntityType { ENTITY(-1), AREA_EFFECT_CLOUD(0, ENTITY), END_CRYSTAL(19, ENTITY), EVOKER_FANGS(24, ENTITY), EXPERIENCE_ORB(25, ENTITY), EYE_OF_ENDER(26, ENTITY), FALLING_BLOCK(27, ENTITY), FIREWORK_ROCKET(28, ENTITY), ITEM(41, ENTITY), LLAMA_SPIT(47, ENTITY), TNT(69, ENTITY), SHULKER_BULLET(76, ENTITY), FISHING_BOBBER(112, ENTITY), LIVINGENTITY(-1, ENTITY), ARMOR_STAND(1, LIVINGENTITY), MARKER(49, ENTITY), PLAYER(111, LIVINGENTITY), ABSTRACT_INSENTIENT(-1, LIVINGENTITY), ENDER_DRAGON(20, ABSTRACT_INSENTIENT), BEE(5, ABSTRACT_INSENTIENT), ABSTRACT_CREATURE(-1, ABSTRACT_INSENTIENT), ABSTRACT_AGEABLE(-1, ABSTRACT_CREATURE), VILLAGER(98, ABSTRACT_AGEABLE), WANDERING_TRADER(100, ABSTRACT_AGEABLE), // Animals ABSTRACT_ANIMAL(-1, ABSTRACT_AGEABLE), AXOLOTL(3, ABSTRACT_ANIMAL), DOLPHIN(14, ABSTRACT_INSENTIENT), CHICKEN(10, ABSTRACT_ANIMAL), COW(12, ABSTRACT_ANIMAL), MOOSHROOM(58, COW), PANDA(61, ABSTRACT_INSENTIENT), PIG(64, ABSTRACT_ANIMAL), POLAR_BEAR(68, ABSTRACT_ANIMAL), RABBIT(71, ABSTRACT_ANIMAL), SHEEP(74, ABSTRACT_ANIMAL), TURTLE(96, ABSTRACT_ANIMAL), FOX(29, ABSTRACT_ANIMAL), GOAT(34, ABSTRACT_ANIMAL), ABSTRACT_TAMEABLE_ANIMAL(-1, ABSTRACT_ANIMAL), CAT(8, ABSTRACT_TAMEABLE_ANIMAL), OCELOT(59, ABSTRACT_TAMEABLE_ANIMAL), WOLF(105, ABSTRACT_TAMEABLE_ANIMAL), ABSTRACT_PARROT(-1, ABSTRACT_TAMEABLE_ANIMAL), PARROT(62, ABSTRACT_PARROT), // Horses ABSTRACT_HORSE(-1, ABSTRACT_ANIMAL), CHESTED_HORSE(-1, ABSTRACT_HORSE), DONKEY(15, CHESTED_HORSE), MULE(57, CHESTED_HORSE), LLAMA(46, CHESTED_HORSE), TRADER_LLAMA(94, CHESTED_HORSE), HORSE(37, ABSTRACT_HORSE), SKELETON_HORSE(79, ABSTRACT_HORSE), ZOMBIE_HORSE(108, ABSTRACT_HORSE), // Golem ABSTRACT_GOLEM(-1, ABSTRACT_CREATURE), SNOW_GOLEM(82, ABSTRACT_GOLEM), IRON_GOLEM(40, ABSTRACT_GOLEM), SHULKER(75, ABSTRACT_GOLEM), // Fish ABSTRACT_FISHES(-1, ABSTRACT_CREATURE), COD(11, ABSTRACT_FISHES), PUFFERFISH(70, ABSTRACT_FISHES), SALMON(73, ABSTRACT_FISHES), TROPICAL_FISH(95, ABSTRACT_FISHES), // Monsters ABSTRACT_MONSTER(-1, ABSTRACT_CREATURE), BLAZE(6, ABSTRACT_MONSTER), CREEPER(13, ABSTRACT_MONSTER), ENDERMITE(22, ABSTRACT_MONSTER), ENDERMAN(21, ABSTRACT_MONSTER), GIANT(31, ABSTRACT_MONSTER), SILVERFISH(77, ABSTRACT_MONSTER), VEX(97, ABSTRACT_MONSTER), WITCH(101, ABSTRACT_MONSTER), WITHER(102, ABSTRACT_MONSTER), RAVAGER(72, ABSTRACT_MONSTER), ABSTRACT_PIGLIN(-1, ABSTRACT_MONSTER), PIGLIN(65, ABSTRACT_PIGLIN), PIGLIN_BRUTE(66, ABSTRACT_PIGLIN), HOGLIN(36, ABSTRACT_ANIMAL), STRIDER(88, ABSTRACT_ANIMAL), ZOGLIN(106, ABSTRACT_MONSTER), // Illagers ABSTRACT_ILLAGER_BASE(-1, ABSTRACT_MONSTER), ABSTRACT_EVO_ILLU_ILLAGER(-1, ABSTRACT_ILLAGER_BASE), EVOKER(23, ABSTRACT_EVO_ILLU_ILLAGER), ILLUSIONER(39, ABSTRACT_EVO_ILLU_ILLAGER), VINDICATOR(99, ABSTRACT_ILLAGER_BASE), PILLAGER(67, ABSTRACT_ILLAGER_BASE), // Skeletons ABSTRACT_SKELETON(-1, ABSTRACT_MONSTER), SKELETON(78, ABSTRACT_SKELETON), STRAY(87, ABSTRACT_SKELETON), WITHER_SKELETON(103, ABSTRACT_SKELETON), // Guardians GUARDIAN(35, ABSTRACT_MONSTER), ELDER_GUARDIAN(18, GUARDIAN), // Spiders SPIDER(85, ABSTRACT_MONSTER), CAVE_SPIDER(9, SPIDER), // Zombies ZOMBIE(107, ABSTRACT_MONSTER), DROWNED(17, ZOMBIE), HUSK(38, ZOMBIE), ZOMBIFIED_PIGLIN(110, ZOMBIE), ZOMBIE_VILLAGER(109, ZOMBIE), // Flying entities ABSTRACT_FLYING(-1, ABSTRACT_INSENTIENT), GHAST(30, ABSTRACT_FLYING), PHANTOM(63, ABSTRACT_FLYING), ABSTRACT_AMBIENT(-1, ABSTRACT_INSENTIENT), BAT(4, ABSTRACT_AMBIENT), ABSTRACT_WATERMOB(-1, ABSTRACT_INSENTIENT), SQUID(86, ABSTRACT_WATERMOB), GLOW_SQUID(33, SQUID), // Slimes SLIME(80, ABSTRACT_INSENTIENT), MAGMA_CUBE(48, SLIME), // Hangable objects ABSTRACT_HANGING(-1, ENTITY), LEASH_KNOT(44, ABSTRACT_HANGING), ITEM_FRAME(42, ABSTRACT_HANGING), GLOW_ITEM_FRAME(32, ITEM_FRAME), PAINTING(60, ABSTRACT_HANGING), ABSTRACT_LIGHTNING(-1, ENTITY), LIGHTNING_BOLT(45, ABSTRACT_LIGHTNING), // Arrows ABSTRACT_ARROW(-1, ENTITY), ARROW(2, ABSTRACT_ARROW), SPECTRAL_ARROW(84, ABSTRACT_ARROW), TRIDENT(93, ABSTRACT_ARROW), // Fireballs ABSTRACT_FIREBALL(-1, ENTITY), DRAGON_FIREBALL(16, ABSTRACT_FIREBALL), FIREBALL(43, ABSTRACT_FIREBALL), SMALL_FIREBALL(81, ABSTRACT_FIREBALL), WITHER_SKULL(104, ABSTRACT_FIREBALL), // Projectiles PROJECTILE_ABSTRACT(-1, ENTITY), SNOWBALL(83, PROJECTILE_ABSTRACT), ENDER_PEARL(90, PROJECTILE_ABSTRACT), EGG(89, PROJECTILE_ABSTRACT), POTION(92, PROJECTILE_ABSTRACT), EXPERIENCE_BOTTLE(91, PROJECTILE_ABSTRACT), // Vehicles MINECART_ABSTRACT(-1, ENTITY), CHESTED_MINECART_ABSTRACT(-1, MINECART_ABSTRACT), CHEST_MINECART(51, CHESTED_MINECART_ABSTRACT), HOPPER_MINECART(54, CHESTED_MINECART_ABSTRACT), MINECART(50, MINECART_ABSTRACT), FURNACE_MINECART(53, MINECART_ABSTRACT), COMMAND_BLOCK_MINECART(52, MINECART_ABSTRACT), TNT_MINECART(56, MINECART_ABSTRACT), SPAWNER_MINECART(55, MINECART_ABSTRACT), BOAT(7, ENTITY); private static final EntityType[] TYPES; private final int id; private final EntityType parent; Entity1_17Types(int id) { this.id = id; this.parent = null; } Entity1_17Types(int id, EntityType parent) { this.id = id; this.parent = parent; } @Override public int getId() { return id; } @Override public EntityType getParent() { return parent; } @Override public String identifier() { throw new UnsupportedOperationException(); } @Override public boolean isAbstractType() { return id != -1; } static { TYPES = EntityTypeUtil.toOrderedArray(values()); } public static EntityType getTypeFromId(int typeId) { return EntityTypeUtil.getTypeFromId(TYPES, typeId, ENTITY); } }