Reenable attribute packets, fix modded entities
This commit is contained in:
		| @@ -50,8 +50,7 @@ public class PacketHandlerAttributes implements IPacketHandler { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // Skip if its 1.16, PL can't handle it atm |         if (disguise.isMiscDisguise()) { | ||||||
|         if (disguise.isMiscDisguise() || NmsVersion.v1_16.isSupported()) { |  | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -75,7 +75,7 @@ public class PacketHandlerSpawn implements IPacketHandler { | |||||||
|         Disguise disguise = packets.getDisguise(); |         Disguise disguise = packets.getDisguise(); | ||||||
|  |  | ||||||
|         if (DisguiseConfig.isMiscDisguisesForLivingEnabled()) { |         if (DisguiseConfig.isMiscDisguisesForLivingEnabled()) { | ||||||
|             if (disguise.getWatcher() instanceof LivingWatcher && !NmsVersion.v1_16.isSupported()) { |             if (disguise.getWatcher() instanceof LivingWatcher) { | ||||||
|                 ArrayList<WrappedAttribute> attributes = new ArrayList<>(); |                 ArrayList<WrappedAttribute> attributes = new ArrayList<>(); | ||||||
|  |  | ||||||
|                 WrappedAttribute.Builder builder = WrappedAttribute.newBuilder().attributeKey("generic.maxHealth"); |                 WrappedAttribute.Builder builder = WrappedAttribute.newBuilder().attributeKey("generic.maxHealth"); | ||||||
|   | |||||||
| @@ -14,6 +14,8 @@ import io.netty.buffer.Unpooled; | |||||||
| import io.netty.handler.codec.DecoderException; | import io.netty.handler.codec.DecoderException; | ||||||
| import me.libraryaddict.disguise.LibsDisguises; | import me.libraryaddict.disguise.LibsDisguises; | ||||||
| import me.libraryaddict.disguise.utilities.modded.ModdedManager; | import me.libraryaddict.disguise.utilities.modded.ModdedManager; | ||||||
|  | import me.libraryaddict.disguise.utilities.reflection.ReflectionManager; | ||||||
|  | import net.minecraft.server.v1_16_R1.PacketDataSerializer; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
|  |  | ||||||
| import java.lang.reflect.InvocationTargetException; | import java.lang.reflect.InvocationTargetException; | ||||||
| @@ -140,21 +142,25 @@ public class PacketListenerModdedClient extends PacketAdapter { | |||||||
|         PacketContainer packet1 = new PacketContainer(PacketType.Login.Server.CUSTOM_PAYLOAD); |         PacketContainer packet1 = new PacketContainer(PacketType.Login.Server.CUSTOM_PAYLOAD); | ||||||
|         packet1.getIntegers().write(0, packetId1); |         packet1.getIntegers().write(0, packetId1); | ||||||
|         packet1.getMinecraftKeys().write(0, new com.comphenix.protocol.wrappers.MinecraftKey("fml", "handshake")); |         packet1.getMinecraftKeys().write(0, new com.comphenix.protocol.wrappers.MinecraftKey("fml", "handshake")); | ||||||
|         // packet1.getModifier() |  | ||||||
|         //        .write(2, new PacketDataSerializer(Unpooled.wrappedBuffer(ModdedManager.getFmlHandshake()))); |  | ||||||
|  |  | ||||||
|         PacketContainer packet2 = new PacketContainer(PacketType.Login.Server.CUSTOM_PAYLOAD); |  | ||||||
|         packet2.getIntegers().write(0, packetId2); |  | ||||||
|         packet2.getMinecraftKeys().write(0, new MinecraftKey("fml", "handshake")); |  | ||||||
|         // packet2.getModifier() |  | ||||||
|         //        .write(2, new PacketDataSerializer(Unpooled.wrappedBuffer(ModdedManager.getFmlRegistries()))); |  | ||||||
|  |  | ||||||
|         //TODO |  | ||||||
|         try { |         try { | ||||||
|  |             Object obj1 = ReflectionManager.getNmsConstructor("PacketDataSerializer", ByteBuf.class) | ||||||
|  |                     .newInstance(Unpooled.wrappedBuffer(ModdedManager.getFmlHandshake())); | ||||||
|  |  | ||||||
|  |             packet1.getModifier().write(2, obj1); | ||||||
|  |  | ||||||
|  |             PacketContainer packet2 = new PacketContainer(PacketType.Login.Server.CUSTOM_PAYLOAD); | ||||||
|  |             packet2.getIntegers().write(0, packetId2); | ||||||
|  |             packet2.getMinecraftKeys().write(0, new MinecraftKey("fml", "handshake")); | ||||||
|  |             Object obj2 = ReflectionManager.getNmsConstructor("PacketDataSerializer", ByteBuf.class) | ||||||
|  |                     .newInstance(Unpooled.wrappedBuffer(ModdedManager.getFmlRegistries())); | ||||||
|  |  | ||||||
|  |             packet2.getModifier().write(2, obj2); | ||||||
|  |  | ||||||
|             ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet1); |             ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet1); | ||||||
|             ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet2); |             ProtocolLibrary.getProtocolManager().sendServerPacket(event.getPlayer(), packet2); | ||||||
|         } |         } | ||||||
|         catch (InvocationTargetException e) { |         catch (Exception e) { | ||||||
|             e.printStackTrace(); |             e.printStackTrace(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user