Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Waterlogged Blocks Persist After Arena Completion #798

Open
Psychopompwastaken opened this issue Aug 29, 2024 · 7 comments
Open

Waterlogged Blocks Persist After Arena Completion #798

Psychopompwastaken opened this issue Aug 29, 2024 · 7 comments
Labels
area/restoration Saving and restoring state of players, arenas, etc. blocked/feedback Awaiting feedback or input from community. blocked/investigation Awaiting clarification or feedback from developer. rework/restoration Relevant to the restoration rework effort. type/bug Unintended behavior or fault.

Comments

@Psychopompwastaken
Copy link

Bug report

Short description

Players flood the arena to manage the overwhelming number of mobs, but when they do so on stairs or walls, the water becomes 'waterlogged.' Waterlogged blocks are blocks where water remains trapped, creating persistent water that doesn't flow away naturally

Reproduction steps

  1. Join an arena with /ma join
  2. Use water bucket on a stairs or wall and water should stay in place.
  3. Exit arena
  4. Rejoin arena and water still persists

Details

  • MobArena version: 0.108
  • Server version: Spigot 1.19.4

Additional info

@Psychopompwastaken
Copy link
Author

image

Example of a waterlogged block in minecraft

@garbagemule
Copy link
Owner

Thanks for the bug report!

I'll have to take a look at what events are involved in this "transformation", but first it might be good to know if waterlogged blocks are expected behavior in an arena. That is, if it's possible to prevent the blocks from becoming waterlogged, is that the proper way to solve the problem, or is it perfectly acceptable that blocks become waterlogged, but that they should restore like other blocks that change and shift during a session?

Without knowing all that much about waterlogged blocks, I personally think MobArena's own protection code should try to prevent this change to the blocks, similar to how it tries to prevent block destruction in various ways. But maybe the restoration code that's in place for soft-restore could allow waterlogged blocks to form, and then "just" restore it on arena end, similar to how it tries to restore other kinds of block changes. But if one or the other isn't possible, it would be good to consider other options of what's doable in the current code base.

@garbagemule garbagemule added type/bug Unintended behavior or fault. blocked/feedback Awaiting feedback or input from community. blocked/investigation Awaiting clarification or feedback from developer. area/restoration Saving and restoring state of players, arenas, etc. rework/restoration Relevant to the restoration rework effort. labels Aug 29, 2024
@Psychopompwastaken
Copy link
Author

Hey garbagemule! thanks for noticing

"but first it might be good to know if waterlogged blocks are expected behavior in an arena."

  • No, but players are using this strategy to control mob movement, which I don't have an issue with in general. However, the map I created is set in the End, designed as a substitute for the Ender Dragon fight. The waterlogging is unintended and disrupts the intended experience.

"That is, if it's possible to prevent the blocks from becoming waterlogged, is that the proper way to solve the problem, or is it perfectly acceptable that blocks become waterlogged, but that they should restore like other blocks that change and shift during a session?"

  • If possible, I believe the best solution would be to prevent blocks from becoming waterlogged altogether. However, if the only option is to restore the blocks after the arena is completed, that could be an acceptable workaround. The primary issue I'm facing is that players are able to waterlog blocks, leading to the arena being flooded, which disrupts gameplay

"Without knowing all that much about waterlogged blocks, I personally think MobArena's own protection code should try to prevent this change to the blocks, similar to how it tries to prevent block destruction in various ways. But maybe the restoration code that's in place for soft-restore could allow waterlogged blocks to form, and then "just" restore it on arena end, similar to how it tries to restore other kinds of block changes. But if one or the other isn't possible, it would be good to consider other options of what's doable in the current code base."

  • I'll need to assess the potential damage if I enable soft-restore. My concern is that some parts of the arena might not fully revert to their original state, potentially leaving certain areas unrestored or altered.

@Psychopompwastaken
Copy link
Author

I just tested the soft restore feature to see if it could return the blocks to their original state, but unfortunately, the blocks weren't restored as intended.

@garbagemule
Copy link
Owner

How can blocks become waterlogged? Is it only if a player dumps a bucket of water directly on a block? Or can a block also become waterlogged if water just flows into it?

From a quick googling, I can't seem to find a surefire way to prevent blocks from getting waterlogged. Currently, my only idea is to just block interact events that are right-clicks with a bucket of water on blocks that can be waterlogged, which seems to be doable. It would be nice if there was a dedicated event we could cancel, but I'm not really finding anything. Do you know of any plugins that successfully prevent blocks from getting waterlogged that we could maybe turn to and check out for inspiration or a solution?

@prototype464
Copy link

How can blocks become waterlogged? Is it only if a player dumps a bucket of water directly on a block? Or can a block also become waterlogged if water just flows into it?

From a quick googling, I can't seem to find a surefire way to prevent blocks from getting waterlogged. Currently, my only idea is to just block interact events that are right-clicks with a bucket of water on blocks that can be waterlogged, which seems to be doable. It would be nice if there was a dedicated event we could cancel, but I'm not really finding anything. Do you know of any plugins that successfully prevent blocks from getting waterlogged that we could maybe turn to and check out for inspiration or a solution?

If I recall correctly, having a couple source blocks on either side can waterlog waterloggable blocks, basically, treat it as if it were an air block that the water is traveling to. I believe CoreProtect does stuff with waterloggable blocks but I don't recall if it's open source.

@Psychopompwastaken
Copy link
Author

for now I just posted a warning that do not waterlog blocks but I was thinking of replacing the water loggable blocks with something else.

I haven't explored CoreProtect for this but wont the MobArena plugin override it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/restoration Saving and restoring state of players, arenas, etc. blocked/feedback Awaiting feedback or input from community. blocked/investigation Awaiting clarification or feedback from developer. rework/restoration Relevant to the restoration rework effort. type/bug Unintended behavior or fault.
Projects
None yet
Development

No branches or pull requests

3 participants