garbagemule / MobArena

MobArena plugin for Minecraft
GNU General Public License v3.0
189 stars 150 forks source link

Sculk blocks can spread in Arena despite arena being protected #748

Open Andre601 opened 1 year ago

Andre601 commented 1 year ago

Bug report

Short description When you kill a mob near a sculk catalyst will the blocks not turn into sculk, which is good. But sculk veins still spread without any issue.

Reproduction steps

  1. Create an Arena with sculk catalysts placed
  2. Play a round
  3. Kill Mobs near the catalysts.

Details

Additional info

Andre601 commented 1 year ago

After further testing is this also happening with normal sculk blocks it seems.

prototype464 commented 1 year ago

Is the arena protected with WorldGuard? If not, do so. If it still happens, WorldGuard might not cover sculk veins and that's a bug report for them.

Andre601 commented 1 year ago

WorldGuard is installed. They have a flag which wasn't set and setting it did prevent ghe spread.

The issue still remains that MobArena's own protection should cover this as it does with all the other kinds of block break and block change events.

garbagemule commented 1 year ago

Perhaps it would be a good idea to consolidate "arena structure protection" issues into one issue. We also have #518, #580, #447, #445. It might actually be possible to rework some of the restoration and protection logic now that 1.13 is the minimum supported version. The major API changes in 1.13 made it overwhelmingly difficult to maintain in the current code base, but now that the API is stable (right?) in that regard, we could maybe give it a bit of an overhaul without too much effort?

Maybe it's worth splitting the problem into protection and restoration. Protection should generally just be about cancelling events, whereas restoration is more about recording region information prior to allowing changes to happen, and then restoring the original layout at arena end.

Is this something you'd be up for taking a stab at @Andre601?

Andre601 commented 1 year ago

Is this something you'd be up for taking a stab at @Andre601?

No, because of two things:

  1. While I do have decent knowledge of Java and making plugins do I have doubts that it will be good enough for this and
  2. To be really and painfully honest: I won't touch this codebase at all. No offense, but from last time I checked was it a huge mess and something I won't even try to work with. Like I already discussed the mess of a message system with you in the past.

So you have to find someone else to do this with or try and make it yourself. I can't and won't help on this one unfortunately.

garbagemule commented 1 year ago

Alright, if you muster up the confidence to take a stab at it at some point, I'll obviously help you out :) I don't expect anyone to do it alone. Good architecture is hard enough as it is and definitely requires a lot of back and forth. Refactoring an old architecture in a foreign code base even more so. It would be an opportunity to get involved and participate in some of the rework efforts, but it's not for everyone :)

But no worries, I'll get around to it at some point, but if anyone wants to join in, hit me up on Discord.