New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Server crash and packet processing error when bonemealing bamboo with PwnPlantGrowth #5280
Comments
Author of PwnPlantGrowth - working the issue from my plugin but can't seem to figure out what's going on. Cancelling BlockSpreadEvent on Bamboo based on the biome it is in.. using Bonemeal on Bamboo seems to trigger some sort of async task in spigot/paper that isn't catching the cancelled event. Paper boots the player.. spigot throws the same error but the player connection holds. Oddly doesn't seem to be an issue on other BlockSpreadEvent plants like Chorus and Kelp. |
Could you possibly give us a code snippet that we can use to test? |
Just whipped up a plugin that basically just does this... then used bonemeal on a sapling. Got the same error as the OP.
|
oh haha, I didn't realize it was this simple. I can confirm it and I got the same error above. |
Cancelling the event causes the exception as the block placement is cancelled but the server doesn't expect that, issue with patching this in general is that there are a few dozen areas where it happened and upstream saying that they wouldn't fix this last I recall, general expectation was more on the plugins to figure out a way to deal with it |
Bummer, the only think I could think to do instead, is possibly not cancel the event, but rather run a task to set the block to air... seems like a kludge, and risks a visual effect of seeing bamboo grow then disappear. Also weird that this happens with Bamboo but not the other blockspread event plants like melon and chorus. |
The issue is in line 152 of BlockBamoo.java if (k >= worldserver.paperConfig.bambooMaxHeight || (Integer) iblockdata1.get(BlockBamboo.f) == 1 || !worldserver.isEmpty(blockposition1.up())) { // Paper has to be replaced by if (k >= worldserver.paperConfig.bambooMaxHeight || !iblockdata1.a(Blocks.BAMBOO) || (Integer) iblockdata1.get(BlockBamboo.f) == 1 || !worldserver.isEmpty(blockposition1.up())) { // Paper (if the BlockSpreadEvent was cancelled there is no bamboo at the block above, but air.) I currently have no time to create a patch, so if someone else wants ;) |
Maybe a better solution would actually be checking if |
No. If its not a bamboo it should not try to grow like a bamboo... |
Was this fixed with ae15e85? |
Yes |
Link/paste of stack trace
Stacktrace 1:
Stacktrace 2:
We need all of the stack trace! Do not cut off parts of it. Please do not use attachments. Upload your logs to a paste site or paste directly here.
Please do not make reports when the report says "DO NOT REPORT THIS TO PAPER". These are simply messages informing you of lag, to find what is causing it. Ask for tips on Discord or IRC instead.
Plugin list:
A list of your plugins
Only one plugin was used: PwnPlantGrowth.
Actions to reproduce (if known):
This may include a build schematic, a video, or detailed instructions to help reconstruct the issue
enabled_worlds
./ppg reload
.Notes
Paper version:
Paste the output of running
/version
on your server WITH the Minecraft version.latest
is not a version; we require the output of/version
so we can properly track down the issue.The text was updated successfully, but these errors were encountered: