ShowCaseStandalone

ShowCaseStandalone

470k Downloads

java.lang.IllegalArgumentException: Cannot drop air

Opened this issue ยท 13 comments

commented

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 !

commented

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

commented

Hi, do you want to test the latest version? https://dev.bukkit.org/projects/scs/files/2684543

commented

Hello, thank you for your answer. I tested on builds 789 and 793 from your Jenkins : https://jenkins.tallbyte.com/job/ShowCaseStandalone/

commented

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.)

commented

@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.

commented

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.

commented
commented

@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

commented

I am not actively playing minecraft at the moment (thus no fixes from me), but I am happy to accept and I do welcome any sort of PRs :)

PS: as Promised, new version is on its way

grafik

grafik

commented

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 in lib/), 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 ?

commented

@Sailoriae If you open a PR, I will update the official version on bukkit with your fix.

commented

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.

commented

@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 :