Reenable attribute packets, fix modded entities
This commit is contained in:
		| @@ -50,8 +50,7 @@ public class PacketHandlerAttributes implements IPacketHandler { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // Skip if its 1.16, PL can't handle it atm | ||||
|         if (disguise.isMiscDisguise() || NmsVersion.v1_16.isSupported()) { | ||||
|         if (disguise.isMiscDisguise()) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -75,7 +75,7 @@ public class PacketHandlerSpawn implements IPacketHandler { | ||||
|         Disguise disguise = packets.getDisguise(); | ||||
|  | ||||
|         if (DisguiseConfig.isMiscDisguisesForLivingEnabled()) { | ||||
|             if (disguise.getWatcher() instanceof LivingWatcher && !NmsVersion.v1_16.isSupported()) { | ||||
|             if (disguise.getWatcher() instanceof LivingWatcher) { | ||||
|                 ArrayList<WrappedAttribute> attributes = new ArrayList<>(); | ||||
|  | ||||
|                 WrappedAttribute.Builder builder = WrappedAttribute.newBuilder().attributeKey("generic.maxHealth"); | ||||
|   | ||||
| @@ -14,6 +14,8 @@ import io.netty.buffer.Unpooled; | ||||
| import io.netty.handler.codec.DecoderException; | ||||
| import me.libraryaddict.disguise.LibsDisguises; | ||||
| 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 java.lang.reflect.InvocationTargetException; | ||||
| @@ -140,21 +142,25 @@ public class PacketListenerModdedClient extends PacketAdapter { | ||||
|         PacketContainer packet1 = new PacketContainer(PacketType.Login.Server.CUSTOM_PAYLOAD); | ||||
|         packet1.getIntegers().write(0, packetId1); | ||||
|         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 { | ||||
|             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(), packet2); | ||||
|         } | ||||
|         catch (InvocationTargetException e) { | ||||
|         catch (Exception e) { | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user