Paper: shulker boxes dupe

Created on 20 Nov 2016  路  13Comments  路  Source: PaperMC/Paper

git-Paper-924

vanilla 1.11

Most helpful comment

I was able to reproduce this myself. I believe this is a PaperSpigot issue than a Spigot issue. It appears to be a race condition and a vanilla 1.11 issue.

Reproduction

  1. Grab a friend in Survival mode with a pickaxe
  2. Place an empty shulker box of any color on the ground
  3. /give yourself a nether star or obtain one
  4. Open the shulker box, drag the nether star and then rapidly left click into the box (as if rapidly inserting and removing the star)
  5. Whilst doing so, said friend should break the box
  6. When box is broken, place on ground and check contents

If the nether star is inside and either you or friend have a star or it is on the ground, the reproduction has succeeded. If not, repeat from step 2. It may take up to three tries.

Testing

  • Live git-Paper-924 with 28 plugins - reproducible
  • Live git-Paper-924 with 0 plugins - reproducible
  • Live git-Paper-924 with 0 plugins and default paper.yml - reproducible
  • Live CraftBukkit version git-Spigot-16c940b-ac99d7d with 0 plugins - reproducible
  • Live 1.11 vanilla - reproducible

Notes

Special thanks to players SRpumpkin034, The_Doctor017, Scrogs63, Opusnut and StitchHasAGlitch for helping me test this.

All 13 comments

Thanks for sharing; I want to help test this.

Can you please post, if possible:

  • What plugins are used on that server (can you share /plugins or a URL?)
  • What method you are using to move items back and forth? (SHIFT-click?)

I was able to reproduce this myself. I believe this is a PaperSpigot issue than a Spigot issue. It appears to be a race condition and a vanilla 1.11 issue.

Reproduction

  1. Grab a friend in Survival mode with a pickaxe
  2. Place an empty shulker box of any color on the ground
  3. /give yourself a nether star or obtain one
  4. Open the shulker box, drag the nether star and then rapidly left click into the box (as if rapidly inserting and removing the star)
  5. Whilst doing so, said friend should break the box
  6. When box is broken, place on ground and check contents

If the nether star is inside and either you or friend have a star or it is on the ground, the reproduction has succeeded. If not, repeat from step 2. It may take up to three tries.

Testing

  • Live git-Paper-924 with 28 plugins - reproducible
  • Live git-Paper-924 with 0 plugins - reproducible
  • Live git-Paper-924 with 0 plugins and default paper.yml - reproducible
  • Live CraftBukkit version git-Spigot-16c940b-ac99d7d with 0 plugins - reproducible
  • Live 1.11 vanilla - reproducible

Notes

Special thanks to players SRpumpkin034, The_Doctor017, Scrogs63, Opusnut and StitchHasAGlitch for helping me test this.

FWIW, I seem to have fixed this by mass-replacing all false values to true in paper.yml. So _maybe_ a matter of finding which setting (and therefore, which patch) is causing this?

Really sorry; after further testing, this is not a PaperSpigot issue after all. Might be Spigot, might be vanilla. It's just that the reproduction is _really_ unreliable and can take up to 20 tries.

EDIT: Yep, it's a vanilla bug!

That's actually a really old dupe. Similar to this one https://hub.spigotmc.org/jira/browse/SPIGOT-178 (That one was fixed by not allowing to operate on zero amont itemstacks, but that doesn't really fixed the root of this issue).

It caused by the fact that you can take items from container of already destroyed block. In latest version your click packet should be handled on the same tick as block destroy happened, but it is still possible.
To fix this inventory click handling should first check if container is reachable.

Any temp work around ideas? Besides disabling shulker boxes.

Having trouble reproducing on paper #956, can anyone else confirm if it's solved?

There def still is an issue, as I encountered it. Hopefully Ill figure it out or Mojang will.

Try this plugin and see if it fixes the issue.
https://www.dropbox.com/s/exdwyk6pcfdfzkb/ActionValidators.jar?dl=0

Plugin Source? What does it do?

Prevents clicking in inventories of already broken blocks.
Closes inventory when player issues command.
Does not allow breaking blocks and interacting when inventory is open.

Will upload source a bit later.

I actually found out my issue was specific to my server, but I did find an issue in the servers code which i'm about to push to paper

Was this page helpful?
0 / 5 - 0 ratings