[SPIGOT-1724] Player Inventory Content Length and Inventory size mismatch. Created: 04/Mar/16  Updated: 11/Dec/17  Resolved: 04/Mar/16

Status: Resolved
Project: Spigot
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: zack6849 Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: 1.9, Craftbukkit, Inventory, PlayerInventory, bug, bukkit


 Description   

Cloning an inventory of a player will throw an Illegal Argument exception, as the latest builds of spigot seem to expect a player inventory to be 39 slots, where it is currently 41.

Example Code:
{{Inventory original = player.getInventory();
Inventory cloned = Bukkit.createInventory(null, original.getType());
System.out.println("Current inventory size: " + original.getSize() + " Type: " + original.getType() + " Default size: " + original.getType().getDefaultSize());
System.out.println("Original Inventory Type: " + original.getType());
System.out.println("Cloned Inventory Type: " + cloned.getType());
System.out.println("Original Inventory Size: " + original.getSize());
System.out.println("Cloned Inventory Size: " + cloned.getSize());
System.out.println("Original Content Size: " + original.getContents().length);
cloned.setContents(original.getContents()); //This line will throw an exception, because original's contents is larger than original's type max size}}

Output of the above code: {{[21:18:15 INFO]: Current inventory size: 41 Type: PLAYER Default size: 36
[21:18:15 INFO]: Original Inventory Type: PLAYER
[21:18:15 INFO]: Cloned Inventory Type: PLAYER
[21:18:15 INFO]: Original Inventory Size: 41
[21:18:15 INFO]: Cloned Inventory Size: 36
[21:18:15 INFO]: Original Content Size: 41
[21:18:15 ERROR]: Could not pass event InventoryClickEvent to VillagerShop v0.5
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-dd155ed-3e3516e]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-dd155ed-3e3516e]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:1815) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.PacketPlayInWindowClick.a(SourceFile:33) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.PacketPlayInWindowClick.a(SourceFile:10) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_73]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_73]
at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:721) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559) [spigot.jar:git-Spigot-dd155ed-3e3516e]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_73]
Caused by: java.lang.IllegalArgumentException: Invalid inventory size; expected 36 or less
at org.bukkit.craftbukkit.v1_9_R1.inventory.CraftInventory.setContents(CraftInventory.java:65) ~[spigot.jar:git-Spigot-dd155ed-3e3516e]
at net.bplaced.pririor.villagershop.eventHandler.canBuy(eventHandler.java:193) ~[?:?]
at net.bplaced.pririor.villagershop.eventHandler.onInventoryClick(eventHandler.java:88) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_73]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_73]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_73]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_73]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-dd155ed-3e3516e]
... 15 more}}



 Comments   
Comment by zack6849 [ 05/Mar/16 ]

@md_5, you yourself mentioned in irc this isn't a duplicate, can this issue be re-opened please?

Comment by zack6849 [ 04/Mar/16 ]

I updated using build tools with --Rev 1.9 just before filing this issue, has it been patched since then or something?

Comment by md_5 [ 04/Mar/16 ]

Update.

Generated at Sun Mar 30 18:01:20 UTC 2025 using Jira 10.3.3#10030003-sha1:d220e3fefc8dfc6d47f522d3b9a20c1455e12b7b.