DenizenScript / Denizen

NPC and general Spigot scripting, using the Denizen Scripting Language!
https://denizenscript.com/
MIT License
213 stars 106 forks source link

Showfake resets on right-click in Adventure Mode #1890

Closed Konvett closed 5 years ago

Konvett commented 5 years ago

The output of /version on my server is: CraftBukkit version git-Spigot-f56e2e7-4385562 (MC: 1.13.2) (Implementing API version 1.13.2-R0.1-SNAPSHOT)

The output of /version denizen on my server is: Denizen version 1.0.3-SNAPSHOT (build 1660-REL) (If relevant) A link to a paste of a script demonstrating the issue: /ex showfake stone l@81,37,42,world_spawn players:<p@mergu> duration:10s

The issue is: When you set a fake block, a player in adventure mode can right click and the block will reset to the actual block prior to the showfake expiring. Left clicking does not have this issue. Mergu and I ran a test on another server in which a tree is destroyed and confirmed the showfake blocks were barriers and we were unable to reset it by right clicking. Only he could see the destroyed tree, I could still see the full tree.

mergu commented 5 years ago

For further info: this has always been a known issue with fake blocks in every gamemode. Seems like it's possible to cancel the block update sent to the client though, as we were able to find fully working fake blocks on wynncraft.

mcmonkey4eva commented 5 years ago

I edited the formatting of your post.

Theoretically cancelling the block update is just a straightforward packet interception job - wasn't done in the past because when that command was being worked on we definitely didn't have any packet interception tooling.

mcmonkey4eva commented 5 years ago

It turned out to be slightly less straightforward than I thought. Because the underlying code is a nightmare... wtf

But, this is now a feature! Showfakes persist until you intend them to stop being around!