From c7c5c793651c300fe8b78ee9a431d55f3302022e Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Sat, 27 Apr 2019 18:36:01 +0200 Subject: [PATCH 1/3] Some minor optimization --- .../multiversion/PlayerSneakListener.java | 5 +-- .../protocol1_9to1_8/DeathListener.java | 6 ++-- .../protocol1_9to1_8/HandItemCache.java | 2 +- .../bukkit/platform/BukkitViaLoader.java | 6 ++-- .../api/entities/Entity1_10Types.java | 33 ++++++++++++------- .../api/entities/Entity1_11Types.java | 33 ++++++++++++------- .../api/entities/Entity1_12Types.java | 33 ++++++++++++------- .../api/entities/Entity1_13Types.java | 32 +++++++++++------- .../api/entities/Entity1_14Types.java | 20 +++++++---- .../ViaVersion/api/minecraft/item/Item.java | 1 + .../protocols/protocol1_9to1_8/ArmorType.java | 14 +++----- .../protocol1_9to1_8/ViaIdleThread.java | 3 +- .../protocol1_9to1_8/sounds/Effect.java | 8 ++--- .../protocol1_9to1_8/sounds/SoundEffect.java | 3 +- .../protocol1_9to1_8/HandItemCache.java | 2 +- 15 files changed, 123 insertions(+), 78 deletions(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java index f7e5a1018..993cd8f14 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/multiversion/PlayerSneakListener.java @@ -67,9 +67,10 @@ public class PlayerSneakListener extends ViaBukkitListener { Player player = event.getPlayer(); UserConnection userConnection = getUserConnection(player); if (userConnection == null) return; - if (!userConnection.has(ProtocolInfo.class)) return; + ProtocolInfo info = userConnection.get(ProtocolInfo.class); + if (info == null) return; - int protocolVersion = userConnection.get(ProtocolInfo.class).getProtocolVersion(); + int protocolVersion = info.getProtocolVersion(); if (is1_14Fix && protocolVersion >= ProtocolVersion.v1_14.getId()) { setHeight(player, event.isSneaking() ? HEIGHT_1_14 : STANDING_HEIGHT); if (!useCache) return; diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java index 49d641d47..076fed5df 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/DeathListener.java @@ -9,6 +9,7 @@ import us.myles.ViaVersion.ViaVersionPlugin; import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.ViaVersion; +import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener; import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8; @@ -38,8 +39,9 @@ public class DeathListener extends ViaBukkitListener { @Override public void run() { // If online - if (getUserConnection(p) != null) { - PacketWrapper wrapper = new PacketWrapper(0x2C, null, getUserConnection(p)); + UserConnection userConnection = getUserConnection(p); + if (userConnection != null) { + PacketWrapper wrapper = new PacketWrapper(0x2C, null, userConnection); try { wrapper.write(Type.VAR_INT, 2); // Event - Entity dead wrapper.write(Type.VAR_INT, p.getEntityId()); // Player ID diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java index 4cf432898..a59a5e34e 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java @@ -35,7 +35,7 @@ public class HandItemCache extends BukkitRunnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); + if (itemInHand == null) return Item.EMPTY; return new Item((short) itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null); } } diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java index 197b2be80..14324fd02 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/platform/BukkitViaLoader.java @@ -1,6 +1,7 @@ package us.myles.ViaVersion.bukkit.platform; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; @@ -116,8 +117,9 @@ public class BukkitViaLoader implements ViaPlatformLoader { @Override public Item call() throws Exception { UUID playerUUID = info.get(ProtocolInfo.class).getUuid(); - if (Bukkit.getPlayer(playerUUID) != null) { - return HandItemCache.convert(Bukkit.getPlayer(playerUUID).getItemInHand()); + Player player = Bukkit.getPlayer(playerUUID); + if (player != null) { + return HandItemCache.convert(player.getItemInHand()); } return null; } diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java index 322024119..4010cc358 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_10Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // 1.10 Entity / Object ids public class Entity1_10Types { @@ -113,6 +116,8 @@ public class Entity1_10Types { PLAYER(-1, ENTITY_HUMAN), COMPLEX_PART(-1, ENTITY); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -121,15 +126,16 @@ public class Entity1_10Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } } @@ -162,18 +168,21 @@ public class Entity1_10Types { SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW), DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java index 1e5cb937c..ca8d91b22 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_11Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // 1.11 Entity / Object ids TODO maybe in the future instead of copying it, some api. public class Entity1_11Types { public static EntityType getTypeFromId(int typeID, boolean isObject) { @@ -140,6 +143,8 @@ public class Entity1_11Types { COMPLEX_PART(-1, ENTITY), LIAMA_SPIT(-1, ENTITY); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -148,15 +153,16 @@ public class Entity1_11Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { @@ -215,18 +221,21 @@ public class Entity1_11Types { SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW), DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java index 8c6f73070..4b7cffb18 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_12Types.java @@ -15,6 +15,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // 1.12 Entity / Object taken from https://github.com/Matsv/ViaBackwards/blob/master/core/src/main/java/nl/matsv/viabackwards/api/entities/types/EntityType1_12.java public class Entity1_12Types { public static EntityType getTypeFromId(int typeID, boolean isObject) { @@ -153,6 +156,8 @@ public class Entity1_12Types { COMPLEX_PART(-1, ENTITY), LIAMA_SPIT(-1, ENTITY); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -161,15 +166,16 @@ public class Entity1_12Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { @@ -228,18 +234,21 @@ public class Entity1_12Types { SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW), DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java index 1dbcb34f9..6389f0f09 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_13Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + // TODO auto generate 18w11a with PAaaS public class Entity1_13Types { @@ -196,6 +199,7 @@ public class Entity1_13Types { SPAWNER_MINECART(44, MINECART_ABSTRACT), // amb BOAT(5, ENTITY); // alv + private static final Map TYPES = new HashMap<>(); private final int id; private final EntityType parent; @@ -205,15 +209,16 @@ public class Entity1_13Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) // Check if this is called return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { @@ -273,18 +278,21 @@ public class Entity1_13Types { DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL), TRIDENT(94, EntityType.TRIDENT); + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType type; + static { + for (ObjectTypes type : ObjectTypes.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { if (id == -1) return Optional.absent(); - - for (ObjectTypes ent : ObjectTypes.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public static Optional getPCEntity(int id) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java index bc6518864..6a77337a1 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java +++ b/common/src/main/java/us/myles/ViaVersion/api/entities/Entity1_14Types.java @@ -5,6 +5,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; import us.myles.ViaVersion.api.Via; +import java.util.HashMap; +import java.util.Map; + public class Entity1_14Types { public static EntityType getTypeFromId(int typeID) { @@ -196,6 +199,8 @@ public class Entity1_14Types { BOAT(5, ENTITY), ; + private static final Map TYPES = new HashMap<>(); + private final int id; private final EntityType parent; @@ -204,15 +209,16 @@ public class Entity1_14Types { this.parent = null; } + static { + for (EntityType type : EntityType.values()) { + TYPES.put(type.id, type); + } + } + public static Optional findById(int id) { - if (id == -1) // Check if this is called + if (id == -1) return Optional.absent(); - - for (EntityType ent : EntityType.values()) - if (ent.getId() == id) - return Optional.of(ent); - - return Optional.absent(); + return Optional.fromNullable(TYPES.get(id)); } public boolean is(EntityType... types) { diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java index 8a47bcaa5..c99a663ac 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java @@ -11,6 +11,7 @@ import lombok.*; @ToString @EqualsAndHashCode public class Item { + public static final Item EMPTY = new Item((short) 0, (byte) 0, (short) 0, null); @SerializedName(value = "identifier", alternate = "id") private int identifier; private byte amount; diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java index b4f830521..1dd083af0 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ArmorType.java @@ -4,6 +4,7 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import java.util.HashMap; +import java.util.Map; @RequiredArgsConstructor @Getter @@ -31,7 +32,7 @@ public enum ArmorType { GOLD_BOOTS(1, 317, "minecraft:gold_boots"), NONE(0, 0, "none"); - private static HashMap armor; + private static Map armor; static { armor = new HashMap<>(); @@ -51,10 +52,8 @@ public enum ArmorType { * @return Return the ArmourType, ArmourType.NONE if not found */ public static ArmorType findById(int id) { - for (ArmorType a : ArmorType.values()) - if (a.getId() == id) - return a; - return ArmorType.NONE; + ArmorType type = armor.get(id); + return type == null ? ArmorType.NONE : type; } /** @@ -77,10 +76,7 @@ public enum ArmorType { * @return True if the item is a piece of armour */ public static boolean isArmor(int id) { - for (ArmorType a : ArmorType.values()) - if (a.getId() == id) - return true; - return false; + return armor.containsKey(id); } /** diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java index a0b25474c..6dc8edf14 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/ViaIdleThread.java @@ -10,7 +10,8 @@ public class ViaIdleThread implements Runnable { @Override public void run() { for (UserConnection info : Via.getManager().getPortedPlayers().values()) { - if (info.has(ProtocolInfo.class) && info.get(ProtocolInfo.class).getPipeline().contains(Protocol1_9To1_8.class)) { + ProtocolInfo protocolInfo = info.get(ProtocolInfo.class); + if (protocolInfo != null && protocolInfo.getPipeline().contains(Protocol1_9To1_8.class)) { long nextIdleUpdate = info.get(MovementTracker.class).getNextIdlePacket(); if (nextIdleUpdate <= System.currentTimeMillis()) { if (info.getChannel().isOpen()) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java index 964ef9611..632e7e298 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/Effect.java @@ -1,10 +1,11 @@ package us.myles.ViaVersion.protocols.protocol1_9to1_8.sounds; import java.util.HashMap; +import java.util.Map; public class Effect { - private final static HashMap effects; + private static final Map effects; static { effects = new HashMap<>(); @@ -29,9 +30,8 @@ public class Effect { } public static int getNewId(int id) { - if (!contains(id)) - return id; - return effects.get(id); + Integer newId = effects.get(id); + return newId != null ? newId : id; } public static boolean contains(int oldId) { diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java index 985d83386..e5688fcde 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/sounds/SoundEffect.java @@ -3,6 +3,7 @@ package us.myles.ViaVersion.protocols.protocol1_9to1_8.sounds; import lombok.Getter; import java.util.HashMap; +import java.util.Map; @Getter public enum SoundEffect { @@ -259,7 +260,7 @@ public enum SoundEffect { private final SoundCategory category; private final boolean breaksound; - private static HashMap effects; + private static Map effects; static { effects = new HashMap<>(); diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java index fa9833ed7..0df3ae4ce 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java @@ -51,7 +51,7 @@ public class HandItemCache implements Runnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); + if (itemInHand == null) return Item.EMPTY; if (GET_DAMAGE == null) { try { GET_DAMAGE = itemInHand.getClass().getDeclaredField("field_77991_e"); From d76e70b1f73231701be4e9d6dadfa2abf84d5326 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Sat, 27 Apr 2019 18:59:18 +0200 Subject: [PATCH 2/3] Don't cache Item --- .../bukkit/listeners/protocol1_9to1_8/HandItemCache.java | 2 +- .../main/java/us/myles/ViaVersion/api/minecraft/item/Item.java | 1 - .../sponge/listeners/protocol1_9to1_8/HandItemCache.java | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java index a59a5e34e..0cc55c169 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java @@ -35,7 +35,7 @@ public class HandItemCache extends BukkitRunnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return Item.EMPTY; + if (itemInHand == null) new Item((short) 0, (byte) 0, (short) 0, null); return new Item((short) itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null); } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java index c99a663ac..8a47bcaa5 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java +++ b/common/src/main/java/us/myles/ViaVersion/api/minecraft/item/Item.java @@ -11,7 +11,6 @@ import lombok.*; @ToString @EqualsAndHashCode public class Item { - public static final Item EMPTY = new Item((short) 0, (byte) 0, (short) 0, null); @SerializedName(value = "identifier", alternate = "id") private int identifier; private byte amount; diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java index 0df3ae4ce..fa9833ed7 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/listeners/protocol1_9to1_8/HandItemCache.java @@ -51,7 +51,7 @@ public class HandItemCache implements Runnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) return Item.EMPTY; + if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); if (GET_DAMAGE == null) { try { GET_DAMAGE = itemInHand.getClass().getDeclaredField("field_77991_e"); From 41b22e89512f06aced0fa1f68103711802032ecd Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Sat, 27 Apr 2019 19:01:45 +0200 Subject: [PATCH 3/3] Forgot return --- .../bukkit/listeners/protocol1_9to1_8/HandItemCache.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java index 0cc55c169..4cf432898 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/listeners/protocol1_9to1_8/HandItemCache.java @@ -35,7 +35,7 @@ public class HandItemCache extends BukkitRunnable { } public static Item convert(ItemStack itemInHand) { - if (itemInHand == null) new Item((short) 0, (byte) 0, (short) 0, null); + if (itemInHand == null) return new Item((short) 0, (byte) 0, (short) 0, null); return new Item((short) itemInHand.getTypeId(), (byte) itemInHand.getAmount(), itemInHand.getDurability(), null); } }