More more work

This commit is contained in:
FlorianMichael 2024-04-01 20:30:21 +02:00
parent c88e974732
commit 8f851fa672
No known key found for this signature in database
GPG Key ID: C2FB87E71C425126
8 changed files with 196 additions and 169 deletions

View File

@ -226,7 +226,8 @@ public class EntityTypes1_10 {
MINECART_HOPPER(10, 5, EntityType.MINECART_HOPPER),
MINECART_COMMAND_BLOCK(10, 6, EntityType.MINECART_COMMAND_BLOCK),
FISHING_HOOK(90, EntityType.FISH_HOOK), // TODO, use entity tracker for this one
ARROW(60, EntityType.ARROW),
TIPPED_ARROW(60, EntityType.TIPPED_ARROW),
SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW),
SNOWBALL(61, EntityType.SNOWBALL),
ITEM_FRAME(71, EntityType.ITEM_FRAME),
LEASH_KNOT(77, EntityType.LEASH_KNOT),
@ -234,8 +235,10 @@ public class EntityTypes1_10 {
ENDER_EYE(72, EntityType.ENDER_EYE),
FIREWORK_ROCKET(76, EntityType.FIREWORK_ROCKET),
LARGE_FIREBALL(63, EntityType.LARGE_FIREBALL),
DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL),
SMALL_FIREBALL(64, EntityType.SMALL_FIREBALL),
WITHER_SKULL(66, EntityType.WITHER_SKULL),
SHULKER_BULLET(67, EntityType.SHULKER_BULLET),
EGG(62, EntityType.EGG),
POTION(73, EntityType.POTION),
EXP_BOTTLE(75, EntityType.EXP_BOTTLE),
@ -244,7 +247,8 @@ public class EntityTypes1_10 {
ARMOR_STAND(78, EntityType.ARMOR_STAND),
ENDER_CRYSTAL(51, EntityType.ENDER_CRYSTAL),
ITEM(2, EntityType.ITEM),
FALLING_BLOCK(70, EntityType.FALLING_BLOCK);
FALLING_BLOCK(70, EntityType.FALLING_BLOCK),
AREA_EFFECT_CLOUD(3, EntityType.AREA_EFFECT_CLOUD);
private static final Map<Pair<Integer, Integer>, ObjectType> TYPES = new HashMap<>();

View File

@ -22,145 +22,158 @@
*/
package com.viaversion.viaversion.api.minecraft.entities;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.util.Pair;
import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
// TODO Check object types and fix
public class EntityTypes1_11 {
public static EntityType getTypeFromId(int typeID, boolean isObject) {
Optional<EntityType> type;
if (isObject)
type = ObjectType.getPCEntity(typeID);
else
type = EntityType.findById(typeID);
if (!type.isPresent()) {
Via.getPlatform().getLogger().severe("Could not find 1.11 type id " + typeID + " isObject=" + isObject);
return EntityType.ENTITY; // Fall back to the basic ENTITY
public static EntityType getEntityType(final int id, @Nullable Integer data, boolean object) {
if (object) {
return ObjectType.getObjectEntity(id, data).map(ObjectType::getType).orElse(null);
} else {
return EntityType.getEntity(id).orElse(null);
}
return type.get();
}
public enum EntityType implements com.viaversion.viaversion.api.minecraft.entities.EntityType {
ENTITY(-1),
DROPPED_ITEM(1, ENTITY),
EXPERIENCE_ORB(2, ENTITY),
LEASH_HITCH(8, ENTITY), // Actually entity hanging but it doesn't make a lot of difference for metadata
PAINTING(9, ENTITY), // Actually entity hanging but it doesn't make a lot of difference for metadata
ARROW(10, ENTITY),
SNOWBALL(11, ENTITY), // Actually EntityProjectile
FIREBALL(12, ENTITY),
SMALL_FIREBALL(13, ENTITY),
ENDER_PEARL(14, ENTITY), // Actually EntityProjectile
ENDER_SIGNAL(15, ENTITY),
THROWN_EXP_BOTTLE(17, ENTITY),
ITEM_FRAME(18, ENTITY), // Actually EntityHanging
WITHER_SKULL(19, ENTITY),
PRIMED_TNT(20, ENTITY),
FALLING_BLOCK(21, ENTITY),
FIREWORK(22, ENTITY),
SPECTRAL_ARROW(24, ARROW),
SHULKER_BULLET(25, ENTITY),
DRAGON_FIREBALL(26, FIREBALL),
EVOCATION_FANGS(33, ENTITY),
// Objects
FISH_HOOK(-1, ENTITY),
ENTITY_LIVING(-1, ENTITY),
ENTITY_INSENTIENT(-1, ENTITY_LIVING),
ENTITY_AGEABLE(-1, ENTITY_INSENTIENT),
ENTITY_TAMEABLE_ANIMAL(-1, ENTITY_AGEABLE),
ENTITY_HUMAN(-1, ENTITY_LIVING),
ENDER_EYE(15, ENTITY),
ITEM(1, ENTITY),
EVOKER_FANGS(33, ENTITY),
ARMOR_STAND(30, ENTITY_LIVING),
EVOCATION_ILLAGER(34, ENTITY_INSENTIENT),
VEX(35, ENTITY_INSENTIENT),
VINDICATION_ILLAGER(36, ENTITY_INSENTIENT),
// Vehicles
// Minecarts
MINECART_ABSTRACT(-1, ENTITY),
MINECART_COMMAND(40, MINECART_ABSTRACT),
BOAT(41, ENTITY),
MINECART_RIDEABLE(42, MINECART_ABSTRACT),
MINECART_CHEST(43, MINECART_ABSTRACT),
MINECART_FURNACE(44, MINECART_ABSTRACT),
MINECART_CONTAINER(-1, MINECART_ABSTRACT),
MINECART_CHEST(43, MINECART_CONTAINER),
MINECART_HOPPER(46, MINECART_CONTAINER),
MINECART_COMMAND_BLOCK(40, MINECART_ABSTRACT),
MINECART_TNT(45, MINECART_ABSTRACT),
MINECART_HOPPER(46, MINECART_ABSTRACT),
MINECART_MOB_SPAWNER(47, MINECART_ABSTRACT),
MINECART_EMPTY(42, MINECART_ABSTRACT),
MINECART_FURNACE(44, MINECART_ABSTRACT),
CREEPER(50, ENTITY_INSENTIENT),
// Hanging
ENTITY_HANGING(-1, ENTITY),
ABSTRACT_SKELETON(-1, ENTITY_INSENTIENT),
SKELETON(51, ABSTRACT_SKELETON),
WITHER_SKELETON(5, ABSTRACT_SKELETON),
STRAY(6, ABSTRACT_SKELETON),
ITEM_FRAME(18, ENTITY_HANGING),
LEASH_KNOT(8, ENTITY_HANGING),
PAINTING(9, ENTITY_HANGING),
SPIDER(52, ENTITY_INSENTIENT),
GIANT(53, ENTITY_INSENTIENT),
ENTITY_LIVING_BASE(-1, ENTITY),
ENTITY_LIVING(-1, ENTITY_LIVING_BASE),
ENTITY_CREATURE(-1, ENTITY_LIVING),
ENTITY_AGEABLE(-1, ENTITY_CREATURE),
ZOMBIE(54, ENTITY_INSENTIENT),
HUSK(23, ZOMBIE),
ZOMBIE_VILLAGER(27, ZOMBIE),
ENTITY_ANIMAL(-1, ENTITY_AGEABLE),
SLIME(55, ENTITY_INSENTIENT),
GHAST(56, ENTITY_INSENTIENT),
PIG_ZOMBIE(57, ZOMBIE),
ENDERMAN(58, ENTITY_INSENTIENT),
CAVE_SPIDER(59, SPIDER),
SILVERFISH(60, ENTITY_INSENTIENT),
BLAZE(61, ENTITY_INSENTIENT),
MAGMA_CUBE(62, SLIME),
ENDER_DRAGON(63, ENTITY_INSENTIENT),
WITHER(64, ENTITY_INSENTIENT),
BAT(65, ENTITY_INSENTIENT),
WITCH(66, ENTITY_INSENTIENT),
ENDERMITE(67, ENTITY_INSENTIENT),
GUARDIAN(68, ENTITY_INSENTIENT),
ELDER_GUARDIAN(4, GUARDIAN), // Moved down to avoid illegal forward reference
IRON_GOLEM(99, ENTITY_INSENTIENT), // moved up to avoid illegal forward references
SHULKER(69, IRON_GOLEM),
PIG(90, ENTITY_AGEABLE),
SHEEP(91, ENTITY_AGEABLE),
COW(92, ENTITY_AGEABLE),
CHICKEN(93, ENTITY_AGEABLE),
SQUID(94, ENTITY_INSENTIENT),
WOLF(95, ENTITY_TAMEABLE_ANIMAL),
MUSHROOM_COW(96, COW),
SNOWMAN(97, IRON_GOLEM),
OCELOT(98, ENTITY_TAMEABLE_ANIMAL),
ABSTRACT_HORSE(-1, ENTITY_AGEABLE),
HORSE(100, ABSTRACT_HORSE),
ABSTRACT_HORSE(-1, ENTITY_ANIMAL),
SKELETON_HORSE(28, ABSTRACT_HORSE),
ZOMBIE_HORSE(29, ABSTRACT_HORSE),
HORSE(100, ABSTRACT_HORSE),
CHESTED_HORSE(-1, ABSTRACT_HORSE),
DONKEY(31, CHESTED_HORSE),
MULE(32, CHESTED_HORSE),
LIAMA(103, CHESTED_HORSE),
ABSTRACT_CHEST_HORSE(-1, ABSTRACT_HORSE),
DONKEY(31, ABSTRACT_CHEST_HORSE),
MULE(32, ABSTRACT_CHEST_HORSE),
LLAMA(103, ABSTRACT_CHEST_HORSE),
COW(92, ENTITY_ANIMAL),
MOOSHROOM(96, COW),
CHICKEN(93, ENTITY_ANIMAL),
RABBIT(101, ENTITY_ANIMAL),
ENTITY_TAMEABLE(-1, ENTITY_ANIMAL),
WOLF(95, ENTITY_TAMEABLE),
OCELOT(98, ENTITY_TAMEABLE),
POLAR_BEAR(102, ENTITY_ANIMAL),
PIG(90, ENTITY_ANIMAL),
SHEEP(91, ENTITY_ANIMAL),
RABBIT(101, ENTITY_AGEABLE),
POLAR_BEAR(102, ENTITY_AGEABLE),
VILLAGER(120, ENTITY_AGEABLE),
ENDER_CRYSTAL(200, ENTITY),
SPLASH_POTION(-1, ENTITY),
LINGERING_POTION(-1, SPLASH_POTION),
AREA_EFFECT_CLOUD(-1, ENTITY),
EGG(-1, ENTITY),
FISHING_HOOK(-1, ENTITY),
LIGHTNING(-1, ENTITY),
WEATHER(-1, ENTITY),
PLAYER(-1, ENTITY_HUMAN),
COMPLEX_PART(-1, ENTITY),
LIAMA_SPIT(-1, ENTITY);
ENTITY_MOB(49, ENTITY_CREATURE),
GUARDIAN(68, ENTITY_MOB),
ZOMBIE(54, ENTITY_MOB),
PIG_ZOMBIE(57, ZOMBIE),
ENDERMAN(58, ENTITY_MOB),
SPIDER(52, ENTITY_MOB),
CAVE_SPIDER(59, SPIDER),
GIANT_ZOMBIE(53, ENTITY_MOB),
ENDERMITE(67, ENTITY_MOB),
CREEPER(50, ENTITY_MOB),
SILVERFISH(60, ENTITY_MOB),
SKELETON(51, ENTITY_MOB),
WITCH(66, ENTITY_MOB),
BLAZE(61, ENTITY_MOB),
WITHER(64, ENTITY_MOB),
GOLEM(-1, ENTITY_CREATURE),
SNOWMAN(97, GOLEM),
IRON_GOLEM(99, GOLEM),
SHULKER(69, GOLEM),
ENDER_DRAGON(63, ENTITY_LIVING),
SLIIME(55, ENTITY_LIVING),
MAGMA_CUBE(62, SLIIME),
ENTITY_WATER_MOB(-1, ENTITY_LIVING),
SQUID(94, ENTITY_WATER_MOB),
ENTITY_AMBIENT_CREATURE(-1, ENTITY_LIVING),
BAT(65, ENTITY_AMBIENT_CREATURE),
ENTITY_FLYING(-1, ENTITY_LIVING),
GHAST(56, ENTITY_FLYING),
ARMOR_STAND(30, ENTITY_LIVING_BASE),
ENTITY_HUMAN(-1, ENTITY_LIVING_BASE),
PLAYER(-1, ENTITY_HUMAN),
FIREBALL(-1, ENTITY),
LARGE_FIREBALL(12, FIREBALL),
DRAGON_FIREBALL(26, FIREBALL),
SMALL_FIREBALL(13, FIREBALL),
WITHER_SKULL(19, FIREBALL),
ENTITY_THROWABLE(-1, ENTITY),
POTION(16, ENTITY_THROWABLE),
SNOWBALL(11, ENTITY_THROWABLE),
EXP_BOTTLE(17, ENTITY_THROWABLE),
ENDER_PEARL(14, ENTITY_THROWABLE),
EGG(7, ENTITY_THROWABLE),
ARROW(-1, ENTITY),
SPECTRAL_ARROW(24, ARROW),
TIPPED_ARROW(10, ARROW),
ENDER_CRYSTAL(200, ENTITY),
XP_ORB(2, ENTITY),
FIREWORK_ROCKET(22, ENTITY),
FALLING_BLOCK(21, ENTITY),
TNT_PRIMED(20, ENTITY),
SHULKER_BULLET(25, ENTITY),
AREA_EFFECT_CLOUD(3, ENTITY),
BOAT(41, ENTITY);
private static final Map<Integer, EntityType> TYPES = new HashMap<>();
private final int id;
@ -176,6 +189,20 @@ public class EntityTypes1_11 {
this.parent = parent;
}
static {
for (EntityType type : EntityType.values()) {
TYPES.put(type.id, type);
}
}
public static Optional<EntityType> getEntity(final int id) {
if (id == -1) {
return Optional.empty();
} else {
return Optional.ofNullable(TYPES.get(id));
}
}
@Override
public int getId() {
return id;
@ -195,57 +222,52 @@ public class EntityTypes1_11 {
public boolean isAbstractType() {
return id != -1;
}
static {
for (EntityType type : EntityType.values()) {
TYPES.put(type.id, type);
}
}
public static Optional<EntityType> findById(int id) {
if (id == -1) // Check if this is called
return Optional.empty();
return Optional.ofNullable(TYPES.get(id));
}
}
public enum ObjectType implements com.viaversion.viaversion.api.minecraft.entities.ObjectType {
BOAT(1, EntityType.BOAT),
ITEM(2, EntityType.DROPPED_ITEM),
AREA_EFFECT_CLOUD(3, EntityType.AREA_EFFECT_CLOUD),
MINECART(10, EntityType.MINECART_RIDEABLE),
TNT_PRIMED(50, EntityType.PRIMED_TNT),
ENDER_CRYSTAL(51, EntityType.ENDER_CRYSTAL),
TIPPED_ARROW(60, EntityType.ARROW),
MINECART_RIDEABLE(10, 0, EntityType.MINECART_EMPTY),
MINECART_CHEST(10, 1, EntityType.MINECART_CHEST),
MINECRAFT_FURNACE(10, 2, EntityType.MINECART_FURNACE),
MINECART_TNT(10, 3, EntityType.MINECART_TNT),
MINECART_SPAWNER(10, 4, EntityType.MINECART_MOB_SPAWNER),
MINECART_HOPPER(10, 5, EntityType.MINECART_HOPPER),
MINECART_COMMAND_BLOCK(10, 6, EntityType.MINECART_COMMAND_BLOCK),
FISHING_HOOK(90, EntityType.FISH_HOOK), // TODO, use entity tracker for this one
TIPPED_ARROW(60, EntityType.TIPPED_ARROW),
SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW),
SNOWBALL(61, EntityType.SNOWBALL),
EGG(62, EntityType.EGG),
FIREBALL(63, EntityType.FIREBALL),
SMALL_FIREBALL(64, EntityType.SMALL_FIREBALL),
LLAMA_SPIT(68, EntityType.LLAMA_SPIT),
ITEM_FRAME(71, EntityType.ITEM_FRAME),
LEASH_KNOT(77, EntityType.LEASH_KNOT),
ENDER_PEARL(65, EntityType.ENDER_PEARL),
ENDER_EYE(72, EntityType.ENDER_EYE),
FIREWORK_ROCKET(76, EntityType.FIREWORK_ROCKET),
LARGE_FIREBALL(63, EntityType.LARGE_FIREBALL),
DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL),
SMALL_FIREBALL(64, EntityType.SMALL_FIREBALL),
WITHER_SKULL(66, EntityType.WITHER_SKULL),
SHULKER_BULLET(67, EntityType.SHULKER_BULLET),
LIAMA_SPIT(68, EntityType.LIAMA_SPIT),
FALLING_BLOCK(70, EntityType.FALLING_BLOCK),
ITEM_FRAME(71, EntityType.ITEM_FRAME),
ENDER_SIGNAL(72, EntityType.ENDER_SIGNAL),
POTION(73, EntityType.SPLASH_POTION),
THROWN_EXP_BOTTLE(75, EntityType.THROWN_EXP_BOTTLE),
FIREWORK(76, EntityType.FIREWORK),
LEASH(77, EntityType.LEASH_HITCH),
EGG(62, EntityType.EGG),
POTION(73, EntityType.POTION),
EXP_BOTTLE(75, EntityType.EXP_BOTTLE),
BOAT(1, EntityType.BOAT),
TNT_PRIMED(50, EntityType.TNT_PRIMED),
ARMOR_STAND(78, EntityType.ARMOR_STAND),
EVOCATION_FANGS(79, EntityType.EVOCATION_FANGS),
FISHIHNG_HOOK(90, EntityType.FISHING_HOOK),
SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW),
DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL);
ENDER_CRYSTAL(51, EntityType.ENDER_CRYSTAL),
ITEM(2, EntityType.ITEM),
FALLING_BLOCK(70, EntityType.FALLING_BLOCK),
AREA_EFFECT_CLOUD(3, EntityType.AREA_EFFECT_CLOUD);
private static final Map<Integer, ObjectType> TYPES = new HashMap<>();
private static final Map<Pair<Integer, Integer>, ObjectType> TYPES = new HashMap<>();
private final int id;
private int data;
private final EntityType type;
static {
for (ObjectType type : ObjectType.values()) {
TYPES.put(type.id, type);
TYPES.put(new Pair<>(type.id, type.data), type);
}
}
@ -254,6 +276,12 @@ public class EntityTypes1_11 {
this.type = type;
}
ObjectType(int id, int data, EntityType type) {
this.id = id;
this.data = data;
this.type = type;
}
@Override
public int getId() {
return id;
@ -264,18 +292,15 @@ public class EntityTypes1_11 {
return type;
}
public static Optional<ObjectType> findById(int id) {
if (id == -1)
public static Optional<ObjectType> getObjectEntity(final int id, @Nullable Integer data) {
if (id == -1) {
return Optional.empty();
return Optional.ofNullable(TYPES.get(id));
}
public static Optional<EntityType> getPCEntity(int id) {
Optional<ObjectType> output = findById(id);
if (!output.isPresent())
return Optional.empty();
return Optional.of(output.get().type);
} else {
if (data == null) {
data = 0;
}
return Optional.ofNullable(TYPES.get(new Pair<>(id, data)));
}
}
}
}

View File

@ -28,9 +28,9 @@ import java.util.Map;
import java.util.Optional;
import org.checkerframework.checker.nullness.qual.Nullable;
// TODO Check object types
public class EntityTypes1_9 {
// TODO abstract this code somehow? No idea how
public static EntityType getEntityType(final int id, @Nullable Integer data, boolean object) {
if (object) {
return ObjectType.getObjectEntity(id, data).map(ObjectType::getType).orElse(null);
@ -217,6 +217,7 @@ public class EntityTypes1_9 {
}
public enum ObjectType implements com.viaversion.viaversion.api.minecraft.entities.ObjectType {
// TODO Check minecart entities
MINECART_RIDEABLE(10, 0, EntityType.MINECART_EMPTY),
MINECART_CHEST(10, 1, EntityType.MINECART_CHEST),
MINECRAFT_FURNACE(10, 2, EntityType.MINECART_FURNACE),
@ -225,7 +226,8 @@ public class EntityTypes1_9 {
MINECART_HOPPER(10, 5, EntityType.MINECART_HOPPER),
MINECART_COMMAND_BLOCK(10, 6, EntityType.MINECART_COMMAND_BLOCK),
FISHING_HOOK(90, EntityType.FISH_HOOK), // TODO, use entity tracker for this one
ARROW(60, EntityType.ARROW),
TIPPED_ARROW(60, EntityType.TIPPED_ARROW),
SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW),
SNOWBALL(61, EntityType.SNOWBALL),
ITEM_FRAME(71, EntityType.ITEM_FRAME),
LEASH_KNOT(77, EntityType.LEASH_KNOT),
@ -233,8 +235,10 @@ public class EntityTypes1_9 {
ENDER_EYE(72, EntityType.ENDER_EYE),
FIREWORK_ROCKET(76, EntityType.FIREWORK_ROCKET),
LARGE_FIREBALL(63, EntityType.LARGE_FIREBALL),
DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL),
SMALL_FIREBALL(64, EntityType.SMALL_FIREBALL),
WITHER_SKULL(66, EntityType.WITHER_SKULL),
SHULKER_BULLET(67, EntityType.SHULKER_BULLET),
EGG(62, EntityType.EGG),
POTION(73, EntityType.POTION),
EXP_BOTTLE(75, EntityType.EXP_BOTTLE),
@ -243,7 +247,8 @@ public class EntityTypes1_9 {
ARMOR_STAND(78, EntityType.ARMOR_STAND),
ENDER_CRYSTAL(51, EntityType.ENDER_CRYSTAL),
ITEM(2, EntityType.ITEM),
FALLING_BLOCK(70, EntityType.FALLING_BLOCK);
FALLING_BLOCK(70, EntityType.FALLING_BLOCK),
AREA_EFFECT_CLOUD(3, EntityType.AREA_EFFECT_CLOUD);
private static final Map<Pair<Integer, Integer>, ObjectType> TYPES = new HashMap<>();

View File

@ -18,7 +18,6 @@
package com.viaversion.viaversion.protocols.protocol1_9to1_8.metadata;
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.types.MetaType1_8;
import com.viaversion.viaversion.api.minecraft.metadata.types.MetaType1_9;
import com.viaversion.viaversion.util.Pair;

View File

@ -20,7 +20,6 @@ package com.viaversion.viaversion.protocols.protocol1_9to1_8.metadata;
import com.viaversion.viaversion.api.minecraft.EulerAngle;
import com.viaversion.viaversion.api.minecraft.Vector;
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;

View File

@ -20,7 +20,6 @@ package com.viaversion.viaversion.protocols.protocol1_9to1_8.packets;
import com.google.gson.JsonObject;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
import com.viaversion.viaversion.api.type.Type;

View File

@ -19,7 +19,6 @@ package com.viaversion.viaversion.protocols.protocol1_9to1_8.packets;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.data.entity.EntityTracker;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;

View File

@ -24,19 +24,16 @@ import com.viaversion.viaversion.api.legacy.bossbar.BossBar;
import com.viaversion.viaversion.api.legacy.bossbar.BossColor;
import com.viaversion.viaversion.api.legacy.bossbar.BossStyle;
import com.viaversion.viaversion.api.minecraft.Position;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10.EntityType;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.minecraft.metadata.types.MetaType1_9;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.version.Types1_9;
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.ClientboundPackets1_9;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.Protocol1_9To1_8;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.chat.GameMode;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.metadata.MetadataRewriter1_9To1_8;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.BossBarProvider;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.providers.EntityIdProvider;
import it.unimi.dsi.fastutil.ints.Int2IntMap;