Water Un-Griefer

Discussion in 'Archived: Plugin Requests' started by Aetherspawn, Jan 17, 2012.

  1. Offline

    Aetherspawn

    In my server the water currents get ridiculously griefed by people putting blocks on the surface and deleting them. I'd like someone to make a plugin that scans every now and then water that occurs naturally and repairs surface water currents to be still again.


    Skip to my post here: http://forums.bukkit.org/threads/water-un-griefer.55271/#post-919201

    Regards,

    Aetherspawn
     
  2. Offline

    DonutPlugins

    This could be easily accomplished by detecting every water source block and deleting it then replacing it, however there would be no easy way to distinguish between if the block was natural or not, plus the code to scan EVERY block would lag the server, not to mention take a long time to code
     
  3. Just cancel water placed with buckets and placing ice blocks...?
     
  4. Offline

    Aetherspawn

    I think DonutPlugins was on the right track, but I'll clear it up for V10lator

    On a bukkit server when you place a block in the ocean and then remove it there are water currents left over that look like this:

    # = still water
    </> = right/left currents
    D = block

    Before:
    ###

    Block Placed:
    #D#

    Block Removed:
    >#<

    These retarded currents cannot be fixed unless you place a solid block underneath them, however that creates a ridiculous amount of manual work just to keep the ocean looking nice. The same thing also happens when you take water out of the ocean if the shore is more than 1 block of water deep - it will leave wierd currents on the surface.

    I'd like a plugin that either;

    - stops this from happening in the first place

    or

    - at an interval, repairs damage done by this weird water behaviour

    Edit: Here's an old-ish picture

    [​IMG]

    You can see the 4 currents flowing inwards from where the water was taken. They never disappear or repair themselves and stay in the world forever unless someone who cares comes along and repairs them. In the long run lakes near spawn look like terrible clusters of currents.
     
  5. Offline

    civ77

    Here's how I would go about this:
    1. Scan the world for 08 (flowing water) at height 64 (sea level)
    2. Replace 08 with 09 (still water)

    Now here's the problem with this:
    • scanning every water block at this height would take a very long time.
    • scanning all those blocks would cause immense lag as donutplugins pointed out.
    • any flowing water at height 64 not in an ocean would expand infinitely until it filled in all air spaces surrounding it.
     
  6. Offline

    Aetherspawn

    civ77 thanks for reply. How about editing the bucket and block removal so it doesn't create the weird water flow?

    I can probably spend a day or two fixing the lake manually.
     
  7. Offline

    ZNickq

    you could use onChunkLoad, and only check 16*16 (a very small amount) of blocks at sea level when the world loads ;)
    LE: also, WorldEdit has //fixwater or something!
     
  8. Offline

    Aetherspawn

    I looked at //fixwater and it looks promising but still means I have to logon and go to each lake/ocean manually and do it.

    ZNickq civ77

    Is it possible to prevent future errors from happening by fixing water after respective actions (blocks/buckets are used?)

    ie: I saw this for single player at 0:55
    !
     
  9. Offline

    civ77

    Yes it is, I was going to suggest it but I know I couldn't do it myself.
     
  10. Offline

    DonutPlugins

    that is simple, ill add that to my list im dev-ing! thanks for the clarification civ77
     
  11. Offline

    mikeyagoto

    Either Magic spells or vinincatatio (both magic plugins) has a spell that "Fixes Water"

    Im not sure if they devs who are interested might want to contact the devs of these plugins to see if there are any tips they could give, but I know this is possible!

    Hope I was helpful!

    Mikey
     

Share This Page