marcelo-mason / PreciousStones

Self-service protection for Minecraft servers
http://dev.bukkit.org/server-mods/preciousstones/
56 stars 67 forks source link

Adding additional virtual protection types to PStone grief reverts with odd results. (blockbreak cancel event priority. issue fixed TY!) #1088

Closed Coldene closed 7 years ago

Coldene commented 7 years ago

"Entering Public Food Farm..."

Here comes TimmehPlaysMC... shh!.. Observe. TimmehPlaysMC warps in and notes all the glorious amounts of harvestable food at the rediculously OP public food farm but is here to harvest dirt, specifically the stuff holding the irrigation channels, some green stained clay, green glass covering the farms build, every single pumpkin/melon stem in sight, ladders and signs near the warp in point and as much glowstone as he can in 10 minutes...

Much to his surprise he cannot break any of those blocks only the plants. See how he now irrigates the potatoes with his rage tears... Yay. It works.

The area is covered with a rollback grief revert that should allow all to be broken but instead the grief revert only allows the plants to drop and nothing else because only those items can actually be broken in that area? Because Magic. (MagicSpells, Nisovin. v3.5-dev-1603090833 protocolib version.) A spell that is only active in an XYZ to XYZ area has a list of blocks it will not allow to be broken, everything else is fine. So I set a grief revert AND a spell to cover the food farm. It's giant, and has many passive unique effects there. Have a look here if want. :D (Whitelisted dev server) http://51.254.70.208:8777/?worldname=piper&mapname=Piper&zoom=3&x=-5675&y=64&z=1501 It would become a laggy mess with cascading 100ft waterfalls etc if they can break certain blocks. The spell is 100% reliable. With effi 50 shovel on dirt cancel effect every time 100s attempts. Zero lag. Performs 100% during madness gamerule randomTickSpeed 3000+ or other TPS hammering stuff like Dynmap multicore fullrenders or world border map flood fills. In exactly the same xyz coords of the grief revert's field a passive always known spell allows all things except a list of block ids to be broken in that area. This grief revert area is now selectively and reliably protected using a spell. ... Except for that one thing below 🤕

Issue. In a 1.10 environment running pre** PreciousStones v10.5.3 this spell protection would sometimes magically stop the server instead, with mentions of precious stones fits trying to roll back grief. On a dev server NP, fun even! But this was happening at peak times on a public 300 slot pro host server. I suspect PreciousStones was not being notified of blockbreak cancel events and instead recorded canceled events as grief then tried to roll that grief that never happened back?

I have yet to try replicating this in 1.12 with v10.5.3. Will mention if it throws magic fits again in version git-Paper-1155 (MC: 1.12)

Ty for the recent updates! <3

BTW a player itempickupevent has been changed in latest paper spigot and is no longer recognised by all plugins that used it including preciousstones.

marcelo-mason commented 7 years ago

Let me know if that fixed it

Coldene commented 7 years ago

Thank you for this "doable with my skills" fix. :) !!