TECHNOVE / Airplane

A stable, optimized, well supported 1.17.1 Paper fork.
https://airplane.gg
GNU General Public License v3.0
344 stars 99 forks source link

Wildstacker plugin incompatibility #57

Closed Skizzles closed 3 years ago

Skizzles commented 3 years ago

Happens when sending items through hoppers.

Error Received

[08:49:58 ERROR]: Could not pass event InventoryPickupItemEvent to WildStacker v3.6.0-DEVb205
java.lang.IllegalArgumentException: size is too large
        at org.apache.commons.lang.Validate.isTrue(Validate.java:136) ~[patched_1.17.1.jar:git-Purpur-1375]
        at gg.airplane.structs.ItemListWithBitset.<init>(ItemListWithBitset.java:40) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.block.entity.TileEntityChest.load(TileEntityChest.java:137) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftBlockEntityState.copyData(CraftBlockEntityState.java:93) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftBlockEntityState.applyTo(CraftBlockEntityState.java:131) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftContainer.applyTo(CraftContainer.java:61) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftLootable.applyTo(CraftLootable.java:25) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftLootable.applyTo(CraftLootable.java:13) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftBlockEntityState.update(CraftBlockEntityState.java:147) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftBlockState.update(CraftBlockState.java:193) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.craftbukkit.v1_17_R1.block.CraftBlockState.update(CraftBlockState.java:188) ~[patched_1.17.1.jar:git-Purpur-1375]
        at com.bgsoftware.wildstacker.listeners.ItemsListener.onInventoryPickup(ItemsListener.java:246) ~[WildStacker-b205.jar:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1467.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.17.1.jar:git-Purpur-1375]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.17.1.jar:git-Purpur-1375]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.block.entity.TileEntityHopper.a(TileEntityHopper.java:561) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.block.entity.TileEntityHopper.a(TileEntityHopper.java:503) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.block.entity.TileEntityHopper.lambda$pushItemsTick$0(TileEntityHopper.java:159) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.block.entity.TileEntityHopper.a(TileEntityHopper.java:181) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.block.entity.TileEntityHopper.a(TileEntityHopper.java:158) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.chunk.Chunk$a.a(Chunk.java:1478) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.chunk.Chunk$c.a(Chunk.java:1430) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.world.level.World.tickBlockEntities(World.java:1106) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.server.level.WorldServer.doTick(WorldServer.java:821) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1635) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:493) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1490) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1283) ~[patched_1.17.1.jar:git-Purpur-1375]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:321) ~[patched_1.17.1.jar:git-Purpur-1375]
        at java.lang.Thread.run(Thread.java:831) [?:?]

Github Issue related: https://github.com/BG-Software-LLC/WildStacker/issues/309

Stated by the plugin developer:

The following code causes it:

StackedItem stackedItem = WStackedItem.of(e.getItem());
if (stackedItem.getStackAmount() > 1) {
    e.setCancelled(true);
    stackedItem.giveItemStack(e.getInventory());
    Block hopper = e.getItem().getLocation().subtract(0, 1, 0).getBlock();
    hopper.getState().update();
}
WildStacker adds items to the inventory of hopper, then it updates the hopper.
I don't know why Airplane things it's a chest or why this error occurs, however it's not related to WildStacker.
I recommend checking if it happens on Paper, and if it doesn't contact the developers of Airplane regarding this.
Skizzles commented 3 years ago

Fixed in a newer version of purpur