CraftBook 3

CraftBook 3

139k Downloads

Chairs still don't clear armor stands properly on player logout.

LadyCailinBot opened this issue ยท 3 comments

commented

CRAFTBOOK-3354 - Reported by throwawayaccount

When using the chairs mechanism, the armorstands do not clear properly when the player logs out. Upon logging back in, the armor stand will reappear under them. This conflicts heavily with protection plugins, like FrameProtect, and prevents building on the afflicted blocks. They also cannot be destroyed by players/creative, only with entity-clearing commands.

This occurs on the latest build, 3.9-SNAPSHOT-jenkins-CraftBook-216, even though previous tickets submitted say that it has been fixed. ProtocolLib is also running on it's latest version, 4.3.0.

How to replicate:

  1. Sit down
  2. Logout (unsure if being kicked also triggers it)
  3. Get off the chair
  4. To see the armor stands, /effect @e[r=10] minecraft:glowing 9999.

Though I'm no developer, if armor stands have a conflict that prevents removal, perhaps the old methods of using arrows would work better, or instead a mechanism to remove invisible and invulnerable armorstands, such as a block queue or simply a periodic removal.

commented

Comment by me4502

I'll test this when I get a chance, it may have been broken again in a recent Spigot change.

Arrows aren't possible to use anymore as the default Spigot configuration will break them.

Edit: And there is a system to remove them if it finds a chair without a player - however in the past Spigot has broken the removal of armour stands in various cases, so it's possible that's happened again.

commented

Comment by me4502

So it appears that when you log back in - the armour stand spawns again with you. I tried setting a random value on it to make it able to be identified, however, it reset those values. Not sure what the best way to proceed here is as just blanket removing the armour stands would cause major issues.

commented

Comment by me4502

Wait if I set the priority the quit event gets called at the right time.