Inactive [SEC] CreeperHeal v4.13 - Repair Creeper damage, the natural way! [1.2.5]

Discussion in 'Inactive/Unsupported Plugins' started by Nitnelave, Jun 21, 2011.

  1. Offline

    Nitnelave

    CreeperHeal


    The project in now on BukkitDev! Go there to find all the news, downloads, error reporting, and everything else!
     
  2. Offline

    C0R7

    I like it. I will try it now.
     
  3. Offline

    Nitnelave

    The doors and beds are oriented correctly, and the door remembers the last state (open or closed). I haven't tested it with redstone torches and wire, though. I'll look at your link for the torch orientation. Thanks.
    If you like it, give me some feedback!
     
  4. Offline

    BeerDone

    Wow, this sounds fun, combined with Tossers on 50% that would make Creepers far less annoying and still deadly :D

    I'm gonna do some testing, this is promising, nice job!
     
  5. Offline

    Ravenis

    http://forums.bukkit.org/threads/gradual-terrain-heal-from-explosions.18831/
    HEY! You did my idea. :p Nice job!

    Is it possible to add in a configurable setting to be like what I mentioned in my mod. I.E. only "natural world blocks" will heal. And player buildings/blocks, (Unnatural blocks), will still be damaged. Thus removing the nasty destruction on the world but making players still have a need for defense and protection of their homes/builds. Adding challenge but still having a pretty natural world without creeper holes!

    Maybe using the world seed/world guard regeneration of cuboid selections as a basis of how to implement this.

    This would also allow us to destroy player builds with amounts of TNT or creepers, and yet not harm the world around it, like flying TNT LOVES to do.
     
  6. Offline

    Nitnelave

    I don't know about worldguard's regeneration of cuboids... I think I'll stick to my solution, I want it to be independent of WG for those little servers where they can't run it, or something like that...

    But in the next release (unless there's a bugfix release first), I'll make sure to allow some sort of implementation of what you said : a list of "natural blocks" that are replaced, or a black-list of blocks that should not. What is the world seed regeneration thing though? That might be interesting (unless it is, as I'm guessing, just reverting to the original terrain of when the map was first loaded?).

    @BeerDone : What is Tossers? you mean a percent chance of blocks being replaced? like every other explosion is replaced, or every other block in an explosion?

    Oops, I'm afraid I'm not taking in account if the explosion event is cancelled... I'll try to have a look in the next version. Will probably use the priority monitor, as I don't have to modify the event (unless setYield()? I'll have to test).

    Oh, I read your request, and I see what you meant... a block per block replacing would be more natural. I'll try to do it in the release after the next one. The only problem is, I think it records blocks from top to bottom... Once again, I have to test.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  7. Offline

    BeerDone

    It's a plugin, makes a percentage of Creepers hop on your head and toss you around instead of exploding.
    And how does not checking for explosion event cancel affect the mod, if none of the blocks are changed anyway?
     
  8. Offline

    Nitnelave

    Well, if for example WG cancels the event, the blocks still get recorded for replacement, and whatever block you put down there in the interval will be replaced a little while after... Oh, and by the way, I need to make the blocks replaced drop... As in, you put some stone to temporarily close your wall, it should should drop on the floor when replaced by your former wall.
     
  9. Offline

    BeerDone

    Good idea, I think Syco's Movecraft could help, it's drill destroys blocks with drops. Just an idea, maybe you already know how to do that...
     
  10. Offline

    Nitnelave

    Oh, that shouldn't be a problem. But should I give back stone or cobble stone if you placed stone? bascically, you I just give you back the material, or should I give you the actual drop? (for example, for leaves, nothing)
     
  11. Offline

    BeerDone

    Can't you separate those? For instance, if there's been stone placed there that would need a stone to be given back so that you don't lose anything, but for leaves you use bone meal to grow ones, and it should drop nothing.
     
  12. Offline

    Nitnelave

    I don't think so. It would have to be on a per-item basis, and I don't want the config to be too complicated. It's just going to be default drop or actual block drop.

    Anyway, you shouldn't be able to place leaves, should you? well, I mean without a plugin to give you leaves...

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  13. Offline

    Plague

    using an url shortener is discouraged, users do not see where the url goes and you gain nothing really, shortening can be done just like you do via the url tag anyway.
     
  14. Offline

    Nitnelave

    Well, the URL shortener keeps track of how many people have clicked on the link. If you want me to, I can post the normal url along, but I'd prefer to keep it that way. Unless you have a better way to keep track of the number of downloads (I'm using DropBox).
     
  15. Offline

    Dakine135

    y dont u have an option where it wont automatically heal, u just have to use a command like /creeperheal or something, then it will undo the damages. u can still implement this command not working until a certain amount of time has passed. but this will solve the issue with wanting to use tnt for something and not have to disable the plugin to do it.
     
  16. Offline

    SwearWord

    Beautiful I was brainstorming something like this.
     
  17. Offline

    Nitnelave

    I'm not quite sure what you mean... Instead of automatically checking to replace tnt damage, it would only do if you type in a command, which would not work before the explosion's cooldown? The problem is that when you type the command, it would heal ALL terrain damage recorded by this plugin, not just the one explosion. Or what how would you tell it what explosion you want healed? What I can do, though, is to do a command to disable/enable in-game such or such feature (like TNT healing, for instance)

    Well, if your brainstorming has come up with new ideas, they are welcome!
     
  18. Offline

    philboy11

    Does it have an effect on TNT explosions?
     
  19. Offline

    heroanth2345

    FINALLY WE CAN MAKE OUR TNT EXPLODE WITHOUT HAVING THEM MAKE DAMAGE WOOT!!!
    THX! THX! THX! (as you can see I'm very excited)
    YAY
    [diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond][diamond]
     
  20. Offline

    Nitnelave

    It does not affect the explosion in itself, it just replaces the block after a while
     
  21. Offline

    BeerDone

    What he meant is an admin command to INSTANTLY heal the damage, instead of having to wait for it. So players could wait for the damage to fix itself, or the admin would be able to fix the explosion in an instant. You could add the time CVar to it, so that a player could type like /Creeper heal 1; and it would heal all the creeper damage that happened in the last minute

    And yes, the config reload and edit options in-game would be nice, thank you very much :>
     
  22. Offline

    Nitnelave

    Oh, that I can do. But it will have to wait until wednesday, maybe later. I'm on holidays right now.
     
  23. Offline

    C0R7

    Yes that would be cool if you can add that.

    I think i found Two bugs. One- if you use alot of tnt ( i only used just over 64) it is missing 1/3 of what was blown up. and can you have it that if tnt explodes for it not to regenerate. but if i use only 2 or 3 it works fine.

    thats all. And it is a vary nice plugin to use.

    C0R7

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  24. Offline

    goomma

    it doesnt repair redstone circuts or signs
     
  25. Offline

    SwearWord

    @Nitnelave
    Since no one else posted this I guess it's a problem at my end. I get this exception and my server goes into a read timed out cycle and I have to stop/start it.

    Code:
    2011-06-24 07:28:06 [SEVERE] java.lang.NullPointerException
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.a(World.java:1572)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.a(World.java:1537)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.a(World.java:575)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.MetadataChunkBlock.a(SourceFile:108)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.doLighting(World.java:1524)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:443)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-24 07:28:06 [SEVERE] Unexpected exception
    java.lang.NullPointerException
        at net.minecraft.server.World.a(World.java:1572)
        at net.minecraft.server.World.a(World.java:1537)
        at net.minecraft.server.World.a(World.java:575)
        at net.minecraft.server.MetadataChunkBlock.a(SourceFile:108)
        at net.minecraft.server.World.doLighting(World.java:1524)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:443)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-24 07:28:06 [SEVERE] java.lang.NullPointerException
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.a(World.java:1572)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.a(World.java:1537)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.Chunk.f(Chunk.java:146)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.Chunk.c(Chunk.java:137)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.Chunk.a(Chunk.java:267)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.setRawTypeIdAndData(World.java:288)
    2011-06-24 07:28:06 [SEVERE]     at net.minecraft.server.World.setTypeIdAndData(World.java:381)
    2011-06-24 07:28:06 [SEVERE]     at org.bukkit.craftbukkit.block.CraftBlock.setTypeIdAndData(CraftBlock.java:140)
    2011-06-24 07:28:06 [SEVERE]     at com.nitnelave.CreeperHeal.CreeperHeal.check_replace(CreeperHeal.java:179)
    2011-06-24 07:28:06 [SEVERE]     at com.nitnelave.CreeperHeal.CreeperHeal$1.run(CreeperHeal.java:129)
    2011-06-24 07:28:06 [SEVERE]     at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
    2011-06-24 07:28:06 [SEVERE]     at java.lang.Thread.run(Thread.java:662)
    And then it happened a second time like this

    Code:
    2011-06-24 09:29:11 [SEVERE] java.lang.NullPointerException
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.a(World.java:1572)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.a(World.java:1537)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.Chunk.g(Chunk.java:226)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.Chunk.a(Chunk.java:257)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.setRawTypeIdAndData(World.java:288)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.setTypeIdAndData(World.java:381)
    2011-06-24 09:29:11 [SEVERE]     at org.bukkit.craftbukkit.block.CraftBlock.setTypeIdAndData(CraftBlock.java:140)
    2011-06-24 09:29:11 [SEVERE]     at com.nitnelave.CreeperHeal.CreeperHeal.check_replace(CreeperHeal.java:179)
    2011-06-24 09:29:11 [SEVERE]     at com.nitnelave.CreeperHeal.CreeperHeal$1.run(CreeperHeal.java:129)
    2011-06-24 09:29:11 [SEVERE]     at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
    2011-06-24 09:29:11 [SEVERE]     at java.lang.Thread.run(Thread.java:662)
    2011-06-24 09:29:11 [SEVERE] java.lang.NullPointerException
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.a(World.java:1572)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.a(World.java:1537)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.a(World.java:575)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.MetadataChunkBlock.a(SourceFile:103)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.World.doLighting(World.java:1524)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:443)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    2011-06-24 09:29:11 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-24 09:29:11 [SEVERE] Unexpected exception
    java.lang.NullPointerException
        at net.minecraft.server.World.a(World.java:1572)
        at net.minecraft.server.World.a(World.java:1537)
        at net.minecraft.server.World.a(World.java:575)
        at net.minecraft.server.MetadataChunkBlock.a(SourceFile:103)
        at net.minecraft.server.World.doLighting(World.java:1524)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:443)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Damn you null pointers.
     
  26. Offline

    Nitnelave

    @SwearWord : I don't have my code right now, and won't have it until wednesday, but your errors are weird... There's a null pointer in a function that calculates the lighting? My plugin should have nothing to do with , but if the error goes away if you deactivate the plugin, I'll surrender to evidence! I'll see if I can fix that on wednesday.

    Humm, I may have a solution for the bug. It may be some storage problem in the way I handle the event. You can set tnt to "false" in the config and it won't reload blocks destroyed by tnt explosions. Unless you mean the tnt blocks triggered by the explosion? Will do.
    It SHOUlD repair signs, at least. Haven't tested with circuits, but I see the problem we have here. It will be fixed. (one question: if you destroy a sign with an explosion, you should get a sign drop, as things work right now. Do you also have a drop when replacing the blocks? Same question for circuits. )

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  27. Offline

    goomma

    i get a drop from redstone circuts and signs stay there but the writing goes away i tried to log out and back in and its still blank :(
     
  28. Offline

    C0R7

    i think becuse it is a sign with words and not just an object it is harder to do becuse the plugin would have to save all the words to.

    What i mean with the tnt. that tnt is regenerated back. it would be cool, or better if it was not allowed to be regenerated

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  29. Offline

    Senladar

    Is there anyway to make it so if a block is in the area that "heals" it doesn't become a block that can be picked up?

    I use mob arena and it has protection on the arena, so if a creeper blows up in the arena it automatically restores and then when it "heals" it makes like 50 blocks I can pick up.....in a 5 minute arena the entire thing is full of thousands of blocks and the game gets super laggy.

    Can you make it so there is a way that if something is in the way of the "heal" it just deletes it and doesn't provide the block?
     

Share This Page