BlockState.setData fails when using legacy plugins

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Minor
    • None
    • Affects Version/s: None
    • Environment:

      Linux

    • git-Spigot-f2c1cd1-ab13a11 (MC: 1.15.2) (Implementing API version 1.15.2-R0.1-SNAPSHOT)
    • n/a
    • Yes

      This error just started happening in the last few spigot updates. This did not error previously.

      player.getInventory().getItemInMainHand().getData(); produces a NullPointerException if the hand is empty. ( meaning the .getType() == Material.AIR )

      If you use .getData() on an air block ( block.getBlockData(); ) you do not get an error.

      Is it intentional that .getData() no longer works if the hand is empty? How do you protect against this since you can't check for NULL before getting data due to the hand inventory coming back as Material.AIR?

      ----------------------------------------------------------

      org.bukkit.event.EventException: null
              at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:545) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:530) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.PlayerInteractManager.breakBlock(PlayerInteractManager.java:306) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.PlayerInteractManager.a(PlayerInteractManager.java:265) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.PlayerInteractManager.a(PlayerInteractManager.java:152) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.PlayerConnection.a(PlayerConnection.java:1197) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.PacketPlayInBlockDig.a(SourceFile:40) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.PacketPlayInBlockDig.a(SourceFile:10) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.TickTask.run(SourceFile:18) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeTask(SourceFile:144) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.executeNext(SourceFile:118) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.MinecraftServer.ba(MinecraftServer.java:918) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.MinecraftServer.executeNext(MinecraftServer.java:911) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.MinecraftServer.sleepForTick(MinecraftServer.java:895) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:828) [spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]

      Caused by: java.lang.NullPointerException
              at org.bukkit.craftbukkit.v1_15_R1.legacy.CraftLegacy.fromLegacyData(CraftLegacy.java:111) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at org.bukkit.craftbukkit.v1_15_R1.util.CraftMagicNumbers.getBlock(CraftMagicNumbers.java:59) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at org.bukkit.craftbukkit.v1_15_R1.util.CraftMagicNumbers.getBlock(CraftMagicNumbers.java:55) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at org.bukkit.craftbukkit.v1_15_R1.block.CraftBlockState.setData(CraftBlockState.java:117) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              at minecraftvillage.villagemod.Events_Block.onBlockBreakEvent(Events_Block.java:296) ~[?:?]
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_212]
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_212]
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_212]
              at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_212]
              at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot.jar:git-Spigot-f2c1cd1-ab13a11]
              ... 20 more

      ----------------------------------------------------------

            Assignee:
            Unassigned
            Reporter:
            village_admin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: