libraryaddict/LibsDisguises

Setting entity health and then being disguised causes NullPointerException.

bigdaddyky opened this issue · 1 comments

MC Jar: Petal 1.19.2
LibsDisguises Version: latest (Build #1182 + tested on premium recommended version)
ProtocolLib Version: latest (Latest Build Version + tested on recommended version)
Maven Version: latest (10.0.32)

Issue: Setting a entity's health using the Damagable#setHealth causes a java.lang.NullPointerException. Read below for more information.

My code:

    public boolean entityDebug(Location location) {
        try {
            // Summon the zombie
            Zombie zombie = (Zombie) location.getWorld().spawnEntity(location, EntityType.ZOMBIE, false);

            // setting zombie health
            zombie.setHealth(5);

            // Creating disguise
            MobDisguise mobDisguise = new MobDisguise(DisguiseType.PIG);

            // Setting disguise onto zombie
            mobDisguise.setEntity(zombie);

            // Starting the disguise
            mobDisguise.startDisguise();
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
        return true;
    }

Error:

[16:40:18 WARN]: java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because the return value of "com.comphenix.protocol.reflect.StructureModifier.read(int)" is null
[16:40:18 WARN]:        at LibsDisguises.jar//me.libraryaddict.disguise.utilities.reflection.WatcherValue.getValues(WatcherValue.java:82)
[16:40:18 WARN]:        at LibsDisguises.jar//me.libraryaddict.disguise.utilities.packets.packethandlers.PacketHandlerMetadata.handle(PacketHandlerMetadata.java:33)
[16:40:18 WARN]:        at LibsDisguises.jar//me.libraryaddict.disguise.utilities.packets.PacketsHandler.transformPacket(PacketsHandler.java:79)
[16:40:18 WARN]:        at LibsDisguises.jar//me.libraryaddict.disguise.utilities.packets.packetlisteners.PacketListenerMain.onPacketSending(PacketListenerMain.java:54)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:219)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.SortedPacketListenerList.invokeUnpackedPacketSending(SortedPacketListenerList.java:204)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:139)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.PacketFilterManager.postPacketToListeners(PacketFilterManager.java:555)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:528)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.netty.manager.NetworkManagerInjector.onPacketSending(NetworkManagerInjector.java:100)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.netty.channel.NettyChannelInjector.processOutbound(NettyChannelInjector.java:566)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.netty.channel.NettyChannelInjector$2.doProxyRunnable(NettyChannelInjector.java:467)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.netty.channel.NettyEventLoopProxy.proxyRunnable(NettyEventLoopProxy.java:43)
[16:40:18 WARN]:        at ProtocolLib.jar//com.comphenix.protocol.injector.netty.channel.NettyEventLoopProxy.execute(NettyEventLoopProxy.java:252)
[16:40:18 WARN]:        at net.minecraft.network.NetworkManager.sendPacket(NetworkManager.java:431)
[16:40:18 WARN]:        at net.minecraft.network.NetworkManager.a(NetworkManager.java:380)
[16:40:18 WARN]:        at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2257)
[16:40:18 WARN]:        at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2243)
[16:40:18 WARN]:        at net.minecraft.server.level.PlayerChunkMap$EntityTracker.a(PlayerChunkMap.java:1556)
[16:40:18 WARN]:        at net.minecraft.server.level.EntityTrackerEntry.a(EntityTrackerEntry.java:409)
[16:40:18 WARN]:        at net.minecraft.server.level.EntityTrackerEntry.lambda$sendDirtyEntityData$2(EntityTrackerEntry.java:372)
[16:40:18 WARN]:        at host.bloom.tracker.MultithreadedTracker.runMainThreadTasks(MultithreadedTracker.java:94)
[16:40:18 WARN]:        at host.bloom.tracker.MultithreadedTracker.tick(MultithreadedTracker.java:57)
[16:40:18 WARN]:        at net.minecraft.server.level.PlayerChunkMap.processTrackQueue(PlayerChunkMap.java:1261)
[16:40:18 WARN]:        at net.minecraft.server.level.PlayerChunkMap.k(PlayerChunkMap.java:1295)
[16:40:18 WARN]:        at net.minecraft.server.level.ChunkProviderServer.s(ChunkProviderServer.java:828)
[16:40:18 WARN]:        at net.minecraft.server.level.ChunkProviderServer.a(ChunkProviderServer.java:651)
[16:40:18 WARN]:        at net.minecraft.server.level.WorldServer.a(WorldServer.java:707)
[16:40:18 WARN]:        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1564)
[16:40:18 WARN]:        at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:486)
[16:40:18 WARN]:        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1424)
[16:40:18 WARN]:        at net.minecraft.server.MinecraftServer.v(MinecraftServer.java:1194)
[16:40:18 WARN]:        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:310)
[16:40:18 WARN]:        at java.base/java.lang.Thread.run(Thread.java:833)

I don't think this is reproducible outside of that jar, it might be an incompatibility issue between Petal and ProtocolLib.
Petal doesn't seem to be maintained either.