getInventory ().setContents () completely wipes inventory clean.

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

      https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/commits/f0c37a16714f54355e9a6a1e61025b435faf6ef6

      Inventory restoring is completely broken. Tested two plugins (MobArena & PVPArena) that use 'getInventory ().setContents ()' for restoring former inventory when joining an arena and leaving. Leaving the arena to restore former inventory using setContents completely wipes the inventory clean.

      Before the above fix, it outputted an error similar to this.

      [16:23:18] [Server thread/WARN]: java.lang.IllegalArgumentException: Invalid inventory size; expected 36 or less
      [16:23:18] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory.setContents(CraftInventory.java:65)
      [16:23:18] [Server thread/WARN]: 	at com.garbagemule.MobArena.util.inventory.InventoryManager.restoreInv(InventoryManager.java:79)
      [16:23:18] [Server thread/WARN]: 	at com.garbagemule.MobArena.ArenaImpl.restoreInvAndExp(ArenaImpl.java:1012)
      [16:23:18] [Server thread/WARN]: 	at com.garbagemule.MobArena.ArenaImpl.playerLeave(ArenaImpl.java:662)
      [16:23:18] [Server thread/WARN]: 	at com.garbagemule.MobArena.commands.user.LeaveCommand.execute(LeaveCommand.java:39)
      [16:23:18] [Server thread/WARN]: 	at com.garbagemule.MobArena.commands.CommandHandler.onCommand(CommandHandler.java:91)
      [16:23:18] [Server thread/WARN]: 	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
      [16:23:18] [Server thread/WARN]: 	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141)
      [16:23:18] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_9_R1.CraftServer.dispatchCommand(CraftServer.java:645)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.PlayerConnection.handleCommand(PlayerConnection.java:1302)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:1137)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.PacketPlayInChat.a(PacketPlayInChat.java:45)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.PacketPlayInChat.a(PacketPlayInChat.java:1)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13)
      [16:23:18] [Server thread/WARN]: 	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      [16:23:18] [Server thread/WARN]: 	at java.util.concurrent.FutureTask.run(Unknown Source)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:716)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:655)
      [16:23:18] [Server thread/WARN]: 	at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:554)
      [16:23:18] [Server thread/WARN]: 	at java.lang.Thread.run(Unknown Source)
      

      Now it just wipes the inventory when setting, no error. Tested with a full inventory of various items, of various stack sizes.

            Assignee:
            Unassigned
            Reporter:
            mibby mibster
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: