Fixes #488 equip packet
This commit is contained in:
		| @@ -9,6 +9,7 @@ import com.comphenix.protocol.wrappers.WrappedChatComponent; | |||||||
| import com.comphenix.protocol.wrappers.WrappedDataWatcher; | import com.comphenix.protocol.wrappers.WrappedDataWatcher; | ||||||
| import com.comphenix.protocol.wrappers.WrappedWatchableObject; | import com.comphenix.protocol.wrappers.WrappedWatchableObject; | ||||||
| import com.google.common.base.Strings; | import com.google.common.base.Strings; | ||||||
|  | import com.mojang.datafixers.util.Pair; | ||||||
| import lombok.AccessLevel; | import lombok.AccessLevel; | ||||||
| import lombok.Getter; | import lombok.Getter; | ||||||
| import me.libraryaddict.disguise.DisguiseAPI; | import me.libraryaddict.disguise.DisguiseAPI; | ||||||
| @@ -756,8 +757,16 @@ public class FlagWatcher { | |||||||
|         StructureModifier<Object> mods = packet.getModifier(); |         StructureModifier<Object> mods = packet.getModifier(); | ||||||
|  |  | ||||||
|         mods.write(0, getDisguise().getEntity().getEntityId()); |         mods.write(0, getDisguise().getEntity().getEntityId()); | ||||||
|         mods.write(1, ReflectionManager.createEnumItemSlot(slot)); |  | ||||||
|         mods.write(2, itemToSend); |         if (NmsVersion.v1_16.isSupported()) { | ||||||
|  |             List<Pair<Object, Object>> list = new ArrayList<>(); | ||||||
|  |             list.add(Pair.of(ReflectionManager.createEnumItemSlot(slot), itemToSend)); | ||||||
|  |  | ||||||
|  |             mods.write(1, list); | ||||||
|  |         } else { | ||||||
|  |             mods.write(1, ReflectionManager.createEnumItemSlot(slot)); | ||||||
|  |             mods.write(2, itemToSend); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         for (Player player : DisguiseUtilities.getPerverts(getDisguise())) { |         for (Player player : DisguiseUtilities.getPerverts(getDisguise())) { | ||||||
|             try { |             try { | ||||||
|   | |||||||
| @@ -4,8 +4,10 @@ import com.comphenix.protocol.PacketType; | |||||||
| import com.comphenix.protocol.ProtocolLibrary; | import com.comphenix.protocol.ProtocolLibrary; | ||||||
| import com.comphenix.protocol.events.PacketContainer; | import com.comphenix.protocol.events.PacketContainer; | ||||||
| import com.comphenix.protocol.reflect.StructureModifier; | import com.comphenix.protocol.reflect.StructureModifier; | ||||||
|  | import com.mojang.datafixers.util.Pair; | ||||||
| import me.libraryaddict.disguise.LibsDisguises; | import me.libraryaddict.disguise.LibsDisguises; | ||||||
| import me.libraryaddict.disguise.disguisetypes.Disguise; | import me.libraryaddict.disguise.disguisetypes.Disguise; | ||||||
|  | import me.libraryaddict.disguise.utilities.reflection.NmsVersion; | ||||||
| import me.libraryaddict.disguise.utilities.reflection.ReflectionManager; | import me.libraryaddict.disguise.utilities.reflection.ReflectionManager; | ||||||
| import org.bukkit.Bukkit; | import org.bukkit.Bukkit; | ||||||
| import org.bukkit.Material; | import org.bukkit.Material; | ||||||
| @@ -14,10 +16,7 @@ import org.bukkit.inventory.EquipmentSlot; | |||||||
| import org.bukkit.inventory.ItemStack; | import org.bukkit.inventory.ItemStack; | ||||||
|  |  | ||||||
| import java.lang.reflect.InvocationTargetException; | import java.lang.reflect.InvocationTargetException; | ||||||
| import java.util.ArrayList; | import java.util.*; | ||||||
| import java.util.Collection; |  | ||||||
| import java.util.HashMap; |  | ||||||
| import java.util.Map; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Created by libraryaddict on 3/01/2019. |  * Created by libraryaddict on 3/01/2019. | ||||||
| @@ -117,8 +116,16 @@ public class LibsPackets { | |||||||
|         StructureModifier<Object> mods = packet.getModifier(); |         StructureModifier<Object> mods = packet.getModifier(); | ||||||
|  |  | ||||||
|         mods.write(0, disguise.getEntity().getEntityId()); |         mods.write(0, disguise.getEntity().getEntityId()); | ||||||
|         mods.write(1, ReflectionManager.createEnumItemSlot(slot)); |  | ||||||
|         mods.write(2, ReflectionManager.getNmsItem(itemToSend)); |         if (NmsVersion.v1_16.isSupported()) { | ||||||
|  |             List<Pair<Object, Object>> list = new ArrayList<>(); | ||||||
|  |             list.add(Pair.of(ReflectionManager.createEnumItemSlot(slot), ReflectionManager.getNmsItem(itemToSend))); | ||||||
|  |  | ||||||
|  |             mods.write(1, list); | ||||||
|  |         } else { | ||||||
|  |             mods.write(1, ReflectionManager.createEnumItemSlot(slot)); | ||||||
|  |             mods.write(2, ReflectionManager.getNmsItem(itemToSend)); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         return packet; |         return packet; | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ import com.comphenix.protocol.reflect.StructureModifier; | |||||||
| import com.comphenix.protocol.wrappers.WrappedAttribute; | import com.comphenix.protocol.wrappers.WrappedAttribute; | ||||||
| import com.comphenix.protocol.wrappers.WrappedDataWatcher; | import com.comphenix.protocol.wrappers.WrappedDataWatcher; | ||||||
| import com.comphenix.protocol.wrappers.WrappedGameProfile; | import com.comphenix.protocol.wrappers.WrappedGameProfile; | ||||||
|  | import com.mojang.datafixers.util.Pair; | ||||||
| import me.libraryaddict.disguise.DisguiseConfig; | import me.libraryaddict.disguise.DisguiseConfig; | ||||||
| import me.libraryaddict.disguise.LibsDisguises; | import me.libraryaddict.disguise.LibsDisguises; | ||||||
| import me.libraryaddict.disguise.disguisetypes.*; | import me.libraryaddict.disguise.disguisetypes.*; | ||||||
| @@ -436,8 +437,17 @@ public class PacketHandlerSpawn implements IPacketHandler { | |||||||
|                 StructureModifier<Object> mods = packet.getModifier(); |                 StructureModifier<Object> mods = packet.getModifier(); | ||||||
|  |  | ||||||
|                 mods.write(0, disguisedEntity.getEntityId()); |                 mods.write(0, disguisedEntity.getEntityId()); | ||||||
|                 mods.write(1, ReflectionManager.createEnumItemSlot(slot)); |  | ||||||
|                 mods.write(2, ReflectionManager.getNmsItem(itemToSend)); |                 if (NmsVersion.v1_16.isSupported()) { | ||||||
|  |                     List<Pair<Object, Object>> list = new ArrayList<>(); | ||||||
|  |                     list.add(Pair.of(ReflectionManager.createEnumItemSlot(slot), | ||||||
|  |                             ReflectionManager.getNmsItem(itemToSend))); | ||||||
|  |  | ||||||
|  |                     mods.write(1, list); | ||||||
|  |                 } else { | ||||||
|  |                     mods.write(1, ReflectionManager.createEnumItemSlot(slot)); | ||||||
|  |                     mods.write(2, ReflectionManager.getNmsItem(itemToSend)); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|                 packets.addDelayedPacket(packet); |                 packets.addDelayedPacket(packet); | ||||||
|             } |             } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user