kokumaji / warrior-plugin

1 stars 0 forks source link

(Critical) Packet#setDataWatcherItems returns IllegalArgumentException #14

Closed kokumaji closed 3 years ago

kokumaji commented 3 years ago

Describe the Bug When trying to create a packet that requires a DataWatcher to be added (i.e. metadata packets), the method Packet#setDataWatcherItems() returns an error due to the datawatcher list being an ArrayList and the packet's field requiring a List object. This bug is critical since it prevents metadata packets from being sent, rendering classes such as the HologramBuilder entirely useless.

To Reproduce Steps:

  1. Compile and Run latest commit of this Plugin
  2. Execute /debug in-game
  3. See Error

Expected Behavior Packet#setDataWatcherItems should simply set the List<DataWatcher.Items<?>> field within packets, all done via reflection (or optionally a DataWatcher wrapper)

Console Logs

[13:42:08 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'debug' in plugin Warrior v1.4.0-alpha
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.4.jar:git-Paper-416]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.4.jar:git-Paper-416]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:807) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2021) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1832) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1785) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:47) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.16.4.jar:git-Paper-416]        at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:23) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1132) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1125) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1261) ~[patched_1.16.4.jar:git-Paper-416]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:996) ~[patched_1.16.4.jar:git-Paper-416]        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:173) ~[patched_1.16.4.jar:git-Paper-416]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.IllegalArgumentException: argument type mismatch
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
        at com.dumbdogdiner.warrior.api.WarriorUser._sendPacket(WarriorUser.java:473) ~[?:?]
        at com.dumbdogdiner.warrior.api.WarriorUser.sendPacket(WarriorUser.java:460) ~[?:?]
        at com.dumbdogdiner.warrior.api.builders.HologramBuilder.sendTo(HologramBuilder.java:87) ~[?:?]
        at com.dumbdogdiner.warrior.commands.DebugCommand.onCommand(DebugCommand.java:28) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.4.jar:git-Paper-416]
        ... 19 more