-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major
-
None
-
Affects Version/s: None
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.