java.lang.IllegalArgumentException: Cannot drop air
Opened this issue ยท 13 comments
Hello !
When I start SCS with Paper, items don't show above selling blocks, and there's this error :
[Server thread/ERROR]: Could not pass event ShowCaseItemSpawnEvent to ShowCaseStandalone v789
java.lang.IllegalArgumentException: Cannot drop air
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.EntityItem.setItemStack(EntityItem.java:409) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.EntityItem.<init>(EntityItem.java:42) ~[patched_1.13.2.jar:git-Paper-561]
at org.bukkit.craftbukkit.v1_13_R2.CraftWorld.dropItem(CraftWorld.java:348) ~[patched_1.13.2.jar:git-Paper-561]
at com.kellerkindt.scs.internals.SimpleShopHandler.onShowCaseItemSpawnEvent(SimpleShopHandler.java:757) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor323.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:67) ~[patched_1.13.2.jar:git-Paper-561]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.13.2.jar:git-Paper-561]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.13.2.jar:git-Paper-561]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:514) ~[patched_1.13.2.jar:git-Paper-561]
at com.kellerkindt.scs.ShowCaseStandalone.callShowCaseEvent(ShowCaseStandalone.java:522) ~[?:?]
at com.kellerkindt.scs.internals.SimpleShopHandler.show(SimpleShopHandler.java:724) ~[?:?]
at com.kellerkindt.scs.internals.SimpleShopHandler.showShopsFor(SimpleShopHandler.java:420) ~[?:?]
at com.kellerkindt.scs.listeners.WorldListener.onChunkLoad(WorldListener.java:48) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor335.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:67) ~[patched_1.13.2.jar:git-Paper-561]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.13.2.jar:git-Paper-561]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.13.2.jar:git-Paper-561]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:514) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.Chunk.addEntities(Chunk.java:981) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider$PendingChunk.postChunk(PaperAsyncChunkProvider.java:535) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider$PendingChunk.postChunkToMain(PaperAsyncChunkProvider.java:487) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider$PendingChunk.loadFinished(PaperAsyncChunkProvider.java:436) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider$PendingChunk.run(PaperAsyncChunkProvider.java:579) ~[patched_1.13.2.jar:git-Paper-561]
at com.destroystokyo.paper.util.PriorityQueuedExecutor.lambda$createPendingTask$1(PriorityQueuedExecutor.java:133) ~[patched_1.13.2.jar:git-Paper-561]
at com.destroystokyo.paper.util.PriorityQueuedExecutor$PendingTask.run(PriorityQueuedExecutor.java:273) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider.requestChunk(PaperAsyncChunkProvider.java:197) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider.loadOrGenerateChunk(PaperAsyncChunkProvider.java:154) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider.getChunkAt(PaperAsyncChunkProvider.java:150) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:111) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.PaperAsyncChunkProvider.getChunkAt(PaperAsyncChunkProvider.java:136) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.World.getChunkAt(World.java:385) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.World.getChunkAtWorldCoords(World.java:381) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.World.getType(World.java:819) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockDiodeAbstract.a(BlockDiodeAbstract.java:132) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockDiodeAbstract.b(BlockDiodeAbstract.java:128) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockRepeater.a(SourceFile:62) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockDiodeAbstract.c(BlockDiodeAbstract.java:82) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockDiodeAbstract.doPhysics(BlockDiodeAbstract.java:65) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.IBlockData.doPhysics(IBlockData.java:208) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.World.a(World.java:680) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.World.a(World.java:658) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockDiodeAbstract.d(BlockDiodeAbstract.java:172) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockDiodeAbstract.onPlace(BlockDiodeAbstract.java:154) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.IBlockData.onPlace(IBlockData.java:220) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.Chunk.setType(Chunk.java:589) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.World.setTypeAndData(World.java:431) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.BlockDiodeAbstract.a(BlockDiodeAbstract.java:46) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.IBlockData.a(IBlockData.java:228) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.WorldServer.b(WorldServer.java:674) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.TickListServer.a(TickListServer.java:85) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.WorldServer.q(WorldServer.java:656) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.WorldServer.doTick(WorldServer.java:296) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1084) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:938) ~[patched_1.13.2.jar:git-Paper-561]
at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:836) ~[patched_1.13.2.jar:git-Paper-561]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
On a newer version, the same problem happens, but with this message :
[ShowCaseStandalone] Unable to drop air for shop
I love SCS and I don't want to abandon it. Because floating items is nice. So please, can you fix it ?
Thanks a lot, really, this is an awesome plugin. This is why I use it for soooo long !
Have a nice day !
Hi, you might want to try b803. It'll probably take a few hours until it's downloadable from Bukkit, Bit it's already available on Jenkins
Hi, do you want to test the latest version? https://dev.bukkit.org/projects/scs/files/2684543
Hello, thank you for your answer. I tested on builds 789 and 793 from your Jenkins : https://jenkins.tallbyte.com/job/ShowCaseStandalone/
Hello, I just tested, and the same problem occurs :
Items above showcases don't show up, and there's the same message in the console :
[ShowCaseStandalone] Unable to drop air for shop id=...
(But, I repeat : Only with Paper, it doesn't happen with Spigot.)
@kellerkindt Do you plan on supporting PaperMC? I know your ticket guidelines over on BukkitDev state you don't support anything other than Bukkit. However Bukkit has essentially died and been replaced by Spigot, which is now being slowly supplanted by Paper. Any update would be greatly appreciated.
Hey there!
I have faced the same issue on the latest build of PaperMC 1.13.2.
I will have a look this week to see if I can fix this.
Hello,
I just fixed this problem :
https://github.com/Sailoriae/ShowCaseStandalone/commit/5e63136e968078907c4ea492a84259e1c003da0f
Have a nice day ! ^^
@kellerkindt Okidoki, I've done it : #14
I also opened a PR for another bug : #15
BTW, if you still want to maintain this plugin, I think you should use AddstarMC's fork. They made a lot of good improvements.
If you're interested, I made an 1.16.4 updated fork of their fork : https://github.com/Sailoriae/ShowCaseStandalone/tree/addstarmc-fork
By the way : Thank you for developping this amazing plugin and thank you for being still here ! :D
Thank you ! :D
About the AddstarMC, do you want me to open a PR ?
Pros to merge their modifications :
- Lot of code cleanup, optimizations, and improvements,
pom
cleanup, remove local libraries (No.jar
inlib/
), drop support of dead plugins,- Can be updated to 1.16, and a little bit easier to maintain.
Cons :
- Will drop legacy support of old plugins.
What do you think ?
@Sailoriae If you open a PR, I will update the official version on bukkit with your fix.
That would be great! I glossed over the changes and also saw what you described. I`d love to adjust it so that new builds can be created by and downloaded from the GitHub Actions. But I do not have the time at hand to fix all the conflicts (#16) nor to verify everything is working after that.
I think it is a bit saddening to drop support for plugins which I pushed on for for so long. But I also see that getting artifacts for maven for compilation can be quite hard, if they are not up on a maven repo (I have them cached in my local maven directory... after all those years /inserte meme here/).
TLDR; dropping legacy support is fine ... I guess
It would be lovely if you could chop up the changes into smaller-ish PRs, which makes it a lot easier for me to reason about the changes - and not to have to deal with all changes at once. But I also understand if this is too time consuming for you.
@kellerkindt I'll try. ^^
If you prefere, here's another solution :
Create a branch "legacy", with the current code. It will be for servers on older version with dead plugins support.
And we update to new Minecraft version on the "master" branch, with AddstarMC's improvements.
What do you think ?
Important edit :
It's useless to create a Pull Request. And too complicate.
I think it would be better if you only rename your "master" branch to "legacy", and take my "addstarmc-fork" branch as your "master" branch. The AddstarMC fork is "synchronised" with your original repository, but with different commits names.
You just need to cherry-pick your GH Actions commit. :D
What do you think ? ^^
BTW, I'm really sorry if me english is a bit weird. ^^
Edit : List of plugins which listeners can be re-added on AddstarMC's fork for newer Minecraft versions :