From ab4a203ed7188bb448a4943b2b4caf2f10ddd287 Mon Sep 17 00:00:00 2001 From: Alex 'mcmonkey' Goodwin Date: Wed, 15 Jan 2020 17:00:03 -0800 Subject: [PATCH] remove legacy item script logic, fixes villager inconsistency Item scripts have not used lore to identify themselves for a while, so this prevention is safe to remove. This caused villager trades to not render properly for clients. --- .../packets/DenizenPacketHandler.java | 56 ------------------- .../handlers/DenizenNetworkManagerImpl.java | 23 +------- .../handlers/DenizenNetworkManagerImpl.java | 23 +------- .../handlers/DenizenNetworkManagerImpl.java | 9 --- .../handlers/DenizenNetworkManagerImpl.java | 9 --- 5 files changed, 2 insertions(+), 118 deletions(-) diff --git a/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java b/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java index a6df2c7aef..d9be09c6a0 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java +++ b/plugin/src/main/java/com/denizenscript/denizen/utilities/packets/DenizenPacketHandler.java @@ -7,25 +7,17 @@ import com.denizenscript.denizen.events.player.PlayerReceivesMessageScriptEvent; import com.denizenscript.denizen.events.player.PlayerSteersEntityScriptEvent; import com.denizenscript.denizen.events.player.ResourcePackStatusScriptEvent; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.util.TradeOffer; -import com.denizenscript.denizen.nms.util.jnbt.StringTag; import com.denizenscript.denizen.objects.EntityTag; import com.denizenscript.denizen.objects.PlayerTag; import com.denizenscript.denizen.scripts.commands.player.GlowCommand; import com.denizenscript.denizen.scripts.commands.server.ExecuteCommand; -import com.denizenscript.denizen.scripts.containers.core.ItemScriptHelper; import com.denizenscript.denizen.utilities.DenizenAPI; import com.denizenscript.denizencore.objects.core.ElementTag; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; import java.util.HashSet; -import java.util.Iterator; -import java.util.List; import java.util.UUID; import java.util.concurrent.Callable; import java.util.concurrent.Future; @@ -149,52 +141,4 @@ public boolean sendPacket(Player player, PacketOutEntityMetadata entityMetadata) HashSet players = GlowCommand.glowViewers.get(entityMetadata.getEntityId()); return players != null && entityMetadata.checkForGlow() && !players.contains(player.getUniqueId()); } - - public boolean sendPacket(Player player, PacketOutSetSlot setSlot) { - setSlot.setItemStack(removeItemScriptLore(setSlot.getItemStack())); - return false; - } - - public boolean sendPacket(Player player, PacketOutWindowItems windowItems) { - ItemStack[] contents = windowItems.getContents(); - for (int i = 0; i < contents.length; i++) { - contents[i] = removeItemScriptLore(contents[i]); - } - windowItems.setContents(contents); - return false; - } - - public boolean sendPacket(Player player, PacketOutTradeList tradeList) { - List tradeOffers = tradeList.getTradeOffers(); - for (TradeOffer tradeOffer : tradeOffers) { - tradeOffer.setFirstCost(removeItemScriptLore(tradeOffer.getFirstCost())); - tradeOffer.setSecondCost(removeItemScriptLore(tradeOffer.getSecondCost())); - tradeOffer.setProduct(removeItemScriptLore(tradeOffer.getProduct())); - } - tradeList.setTradeOffers(tradeOffers); - return false; - } - - private static ItemStack removeItemScriptLore(ItemStack itemStack) { - if (itemStack != null && itemStack.hasItemMeta() && itemStack.getItemMeta().hasLore()) { - ItemMeta meta = itemStack.getItemMeta(); - List lore = meta.getLore(); - Iterator iter = lore.iterator(); - String hash = null; - while (iter.hasNext()) { - String line = iter.next(); - if (line.startsWith(ItemScriptHelper.ItemScriptHashID)) { - hash = line; - iter.remove(); - break; - } - } - if (hash != null) { - meta.setLore(lore); - itemStack.setItemMeta(meta); - return NMSHandler.getItemHelper().addNbtData(itemStack, "Denizen Item Script", new StringTag(hash)); - } - } - return itemStack; - } } diff --git a/v1_12/src/main/java/com/denizenscript/denizen/nms/v1_12/impl/packets/handlers/DenizenNetworkManagerImpl.java b/v1_12/src/main/java/com/denizenscript/denizen/nms/v1_12/impl/packets/handlers/DenizenNetworkManagerImpl.java index 4c4a3ef341..4ad1eddbee 100644 --- a/v1_12/src/main/java/com/denizenscript/denizen/nms/v1_12/impl/packets/handlers/DenizenNetworkManagerImpl.java +++ b/v1_12/src/main/java/com/denizenscript/denizen/nms/v1_12/impl/packets/handlers/DenizenNetworkManagerImpl.java @@ -1,6 +1,5 @@ package com.denizenscript.denizen.nms.v1_12.impl.packets.handlers; -import com.denizenscript.denizen.nms.v1_12.impl.packets.PacketOutSetSlotImpl; import com.denizenscript.denizen.nms.v1_12.impl.entities.EntityFakePlayerImpl; import com.denizenscript.denizen.utilities.packets.DenizenPacketHandler; import io.netty.buffer.Unpooled; @@ -12,8 +11,6 @@ import com.denizenscript.denizen.nms.v1_12.impl.packets.PacketOutChatImpl; import com.denizenscript.denizen.nms.v1_12.impl.packets.PacketOutEntityMetadataImpl; import com.denizenscript.denizen.nms.v1_12.impl.packets.PacketOutSpawnEntityImpl; -import com.denizenscript.denizen.nms.v1_12.impl.packets.PacketOutTradeListImpl; -import com.denizenscript.denizen.nms.v1_12.impl.packets.PacketOutWindowItemsImpl; import com.denizenscript.denizen.nms.interfaces.packets.PacketOutSpawnEntity; import com.denizenscript.denizen.nms.util.ReflectionHelper; import com.denizenscript.denizencore.utilities.debugging.Debug; @@ -292,16 +289,6 @@ else if (packet instanceof PacketPlayOutEntityMetadata) { oldManager.sendPacket(packet); } } - else if (packet instanceof PacketPlayOutSetSlot) { - if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutSetSlotImpl((PacketPlayOutSetSlot) packet))) { - oldManager.sendPacket(packet); - } - } - else if (packet instanceof PacketPlayOutWindowItems) { - if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutWindowItemsImpl((PacketPlayOutWindowItems) packet))) { - oldManager.sendPacket(packet); - } - } else if (packet instanceof PacketPlayOutCustomPayload) { PacketPlayOutCustomPayload payload = (PacketPlayOutCustomPayload) packet; PacketDataSerializer original = new PacketDataSerializer(Unpooled.buffer()); @@ -312,15 +299,7 @@ else if (packet instanceof PacketPlayOutCustomPayload) { new byte[original.readableBytes()])); // Write the original back to avoid odd errors payload.a(original); - String name = serializer.e(20); - if (name != null && name.equals("MC|TrList")) { - if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutTradeListImpl(payload, serializer))) { - oldManager.sendPacket(packet); - } - } - else { - oldManager.sendPacket(packet); - } + oldManager.sendPacket(packet); } catch (Exception e) { oldManager.sendPacket(packet); diff --git a/v1_13/src/main/java/com/denizenscript/denizen/nms/v1_13/impl/packets/handlers/DenizenNetworkManagerImpl.java b/v1_13/src/main/java/com/denizenscript/denizen/nms/v1_13/impl/packets/handlers/DenizenNetworkManagerImpl.java index c154cf62ef..772615c563 100644 --- a/v1_13/src/main/java/com/denizenscript/denizen/nms/v1_13/impl/packets/handlers/DenizenNetworkManagerImpl.java +++ b/v1_13/src/main/java/com/denizenscript/denizen/nms/v1_13/impl/packets/handlers/DenizenNetworkManagerImpl.java @@ -5,7 +5,6 @@ import com.denizenscript.denizen.nms.v1_13.impl.entities.EntityFakePlayerImpl; import com.denizenscript.denizen.nms.v1_13.impl.packets.PacketOutChatImpl; import com.denizenscript.denizen.nms.v1_13.impl.packets.PacketOutSpawnEntityImpl; -import com.denizenscript.denizen.nms.v1_13.impl.packets.PacketOutTradeListImpl; import com.denizenscript.denizen.nms.interfaces.packets.PacketOutSpawnEntity; import com.denizenscript.denizen.nms.util.ReflectionHelper; import com.denizenscript.denizen.utilities.packets.DenizenPacketHandler; @@ -14,8 +13,6 @@ import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; import com.denizenscript.denizen.nms.v1_13.impl.packets.PacketOutEntityMetadataImpl; -import com.denizenscript.denizen.nms.v1_13.impl.packets.PacketOutSetSlotImpl; -import com.denizenscript.denizen.nms.v1_13.impl.packets.PacketOutWindowItemsImpl; import com.denizenscript.denizencore.utilities.debugging.Debug; import net.minecraft.server.v1_13_R2.*; import net.minecraft.server.v1_13_R2.PacketPlayOutPlayerInfo.EnumPlayerInfoAction; @@ -306,16 +303,6 @@ else if (packet instanceof PacketPlayOutEntityMetadata) { oldManager.sendPacket(packet, genericfuturelistener); } } - else if (packet instanceof PacketPlayOutSetSlot) { - if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutSetSlotImpl((PacketPlayOutSetSlot) packet))) { - oldManager.sendPacket(packet, genericfuturelistener); - } - } - else if (packet instanceof PacketPlayOutWindowItems) { - if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutWindowItemsImpl((PacketPlayOutWindowItems) packet))) { - oldManager.sendPacket(packet, genericfuturelistener); - } - } else if (packet instanceof PacketPlayOutCustomPayload) { PacketPlayOutCustomPayload payload = (PacketPlayOutCustomPayload) packet; PacketDataSerializer original = new PacketDataSerializer(Unpooled.buffer()); @@ -326,15 +313,7 @@ else if (packet instanceof PacketPlayOutCustomPayload) { new byte[original.readableBytes()])); // Write the original back to avoid odd errors payload.a(original); - MinecraftKey key = serializer.l(); - if (key != null && key.equals(PacketPlayOutCustomPayload.a)) { // MC|TrList -> minecraft:trader_list - if (!packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutTradeListImpl(payload, serializer))) { - oldManager.sendPacket(packet, genericfuturelistener); - } - } - else { - oldManager.sendPacket(packet, genericfuturelistener); - } + oldManager.sendPacket(packet, genericfuturelistener); } catch (Exception e) { oldManager.sendPacket(packet, genericfuturelistener); diff --git a/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java b/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java index 0d2dd9aa86..b43bd29155 100644 --- a/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java +++ b/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java @@ -345,15 +345,6 @@ public boolean processPacketHandlerForPacket(Packet packet) { else if (packet instanceof PacketPlayOutEntityMetadata) { return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutEntityMetadataImpl((PacketPlayOutEntityMetadata) packet)); } - else if (packet instanceof PacketPlayOutSetSlot) { - return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutSetSlotImpl((PacketPlayOutSetSlot) packet)); - } - else if (packet instanceof PacketPlayOutWindowItems) { - return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutWindowItemsImpl((PacketPlayOutWindowItems) packet)); - } - else if (packet instanceof PacketPlayOutOpenWindowMerchant) { - return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutTradeListImpl((PacketPlayOutOpenWindowMerchant) packet)); - } return false; } diff --git a/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java b/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java index b82d1d658e..b6f3c4b65c 100644 --- a/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java +++ b/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java @@ -345,15 +345,6 @@ public boolean processPacketHandlerForPacket(Packet packet) { else if (packet instanceof PacketPlayOutEntityMetadata) { return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutEntityMetadataImpl((PacketPlayOutEntityMetadata) packet)); } - else if (packet instanceof PacketPlayOutSetSlot) { - return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutSetSlotImpl((PacketPlayOutSetSlot) packet)); - } - else if (packet instanceof PacketPlayOutWindowItems) { - return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutWindowItemsImpl((PacketPlayOutWindowItems) packet)); - } - else if (packet instanceof PacketPlayOutOpenWindowMerchant) { - return packetHandler.sendPacket(player.getBukkitEntity(), new PacketOutTradeListImpl((PacketPlayOutOpenWindowMerchant) packet)); - } return false; }