Filled Type of TNT WaterLog for Factions

Discussion in 'Plugin Requests' started by AkiraTsubasa, May 28, 2020.

Thread Status:
Not open for further replies.
  1. Offline

    AkiraTsubasa

    Plugin category: Mechanics

    Minecraft version: 1.8.8

    Suggested name: TNT WaterLog [water] [tnt]

    What I want: I'd want a TnT water log plugin that it will break the water and even blocks behind of it (so that blocks aren't protected by the water) but only to happen if the explosion of the ignited tnt is at a distance of 20 blocks (minimum) where the ignition was started. This would avoid typical cannons to be breaken by itself (because since their structure is made with water and tnt impulsors, the TnT water log would break the cannon itself because of those tnt impulsors).

    Would be very flawless if it could have a config file where you could set the distance in blocks where the exploding tnt must be from the position where it was ignited. And also an option whether to toggle or not to also damage blocks behind the water (enabled by default, and also to happen on the same circumstance of the water log event).

    Ideas for commands: No commands needed for this plugin.

    Ideas for permissions: tntwaterlog.enable And be inherited by default, so if you deny that permission to someone, then the tntwaterlogging won't make effect if that player tries it.

    When I'd like it by: There isn't any pressure on the making of this plugin :D it is already appreciated in you for trying to do it.
     
    Last edited: Jun 17, 2020
  2. Offline

    AkiraTsubasa

  3. Offline

    AkiraTsubasa

  4. Offline

    AkiraTsubasa

    Bump, Edited some stuff of the post to make it more understanable (sorry for that, english is not my first language)
     
  5. Offline

    gochi9

    So you basically you what the tnt to explode the blocks underwater if the player who ignited the tnt is at a distance of 20 blocks when the tnt explodes. Correct?
     
  6. Offline

    AkiraTsubasa

    Yup sir, and also destroy the water, THO I made an edit a few minutes ago, because there is a small issue if you do it so the "PLAYER" who ignited it, because when you activate a cannon, you press a button that activates redstone, and the redstone activates the tnt, so I think the best option is to make that happen when the explosion is at a distance of 20 blocks from where it was ignited, and just ignore all that stuff about the permissions (since it can have troubles when detecting WHO ignited the tnt)
     
    Last edited: Jun 17, 2020
  7. Offline

    gochi9

    Ok but what if the tnt is ignited by redstone?
    EDIT: Nevermind i just read your edit.

    This is the plugin

    So the tnt will destroy any block (even water and underwater blocks) if there is no player in the configurable radius. The explosion radius is also configurable

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 17, 2020
  8. Offline

    AkiraTsubasa

    The plugin works excellent, thanks a lot!
    Only issue with it is the explosion, it also breaks bedrock and obsidian, and the explosion looks like a simetric square.
    This is how it looks a normal explosion:
    https://imgur.com/If8dc0O
    [​IMG]
    This is how it looks the explosion performed by the plugin (done in water):
    https://imgur.com/OCvsosh
    [​IMG]
    This is how it looks the explosion performed without the plugin (done in water):
    https://imgur.com/58i4BJw
    [​IMG]

    Is it possible to make that particular explosion like a sphere instead of a square? And Can it ignore blocks like obsidian, bedrock and barrier? Thanks again @gochi9!
     
    Last edited: Jun 17, 2020
  9. Offline

    gochi9

    This is the plugin

    Now the explosion is more random and won't destroy bedrock,obsidian and barrier
     
  10. Offline

    AkiraTsubasa

    @gochi9 I've been testing the plugin with a lot of stuff and concluded that you just did an amazing job, this is now the best plugin about this that I've found. It is even better that the tnt water logging of FactionsUUID (that only breaks water, and in all circumstances). This is a must-have for all factions/raiding servers, Thank you again for such a brilliant job! [redflower]
    Here are some small notes to the plugin after I've tested it with lot of thing (they are ordered in priority, higher to lower):
    1- The explosion performed by the plugin is expected to only happen if the ignited tnt is overlapping/touching any liquid such as water or lava (apart from requiring the distance to the nearest player).
    2- Is it possible somehow to not break any blocks inside of a region (from the famous plugin WorldGuard) that has the flag "tnt" on "deny"? When that flag is denied, normal explosions that are near to that region, will break the blocks out of it, but none of the blocks inside the region would break.
    3- Since I have an ObsidianBreaker plugin (used for breaking specified blocks by a number of explosions), the plugin should need to have on its config, a place where you could add any block (using number id) where they won't get affected by any explosion performed by the plugin. It could look something like that: https://pastebin.com/RnCi4D0u

    The following 3 notes are really small or have a low priority (in my opinion):
    4- Since I remembered that lava is also a liquid and has the same behavior as water when protecting blocks under it from explosions, I have changed the name of it to "TnTLiquidLogX" instead of "TnTWaterLog" on the config template given on the pastebin of the note above. The "X" is just to make it look more fancy and unique xD
    5- A command to reload the config file of the plugin. It could be like /tllx reload - /tntliquidlogx reload.
    6- This is very low priority and not really needed, but to have it there, would make the plugin more flawless. There
    is a default behavior on normal explosions, that when an explosion occurs on certain stones (such as Stone, EndStone, Andesite, etc) it only breaks one layer, and won't break/damage any blocks behind of that destroyed layer.

    FINAL NOTE: The default explosion radius of minecraft is of 8, but I think that is ok to have it on 6 on the plugin since the stonesexplosion behavior (of note 6) isn't done, so that 6 of explosion-radius compensates it well.

    Thanks again for this amazing plugin for free <3
     
    Last edited: Jun 18, 2020
  11. Offline

    gochi9

    This is the plugin

    So modifications:

    1. Now the custom explosion will happen only if it touches stationary water, water , stationary lava and lava

    2. Support for world guard. Now it will break blocks if those blocks in the radius are NOT inside a region, INSIDE a region without the flag tnt flag and INSIDE a region with the tnt flag on ALLOW.

    3.Added in the config a list to add ids of the items that you do not want to break

    4. Changed the name of the plugin to TnTLiquidLogX

    5. Added command to reload the config: /tntreload - permission: tntliquid.reload
     
    AkiraTsubasa likes this.
  12. Offline

    AkiraTsubasa

    Thanks a lot @gochi9 you just did an amazing and unique plugin!
    I've been testing it deeply and these are the results:
    - Compatibility with worldguard is perfect.
    - BlockList ID on the config works perfect.
    - The reload command works perfect, reloads everything without having to do a single restart.
    - Behavior of the plugin to only happen on water and lava is totally accurate and works flawless without any issues.
    - Name of the plugin is much more Professional and cool.

    _In my case, I added diamond blocks and iron blocks to the ignored block-list (57 and 42) because on my ObsidianBreaker I have them as special blocks that break with specific amount of tnt explosions, and everything worked beautiful. The explosion performed by the plugin respected the ignored list and exploded all the liquid and didn't destroy those blocks, and ObsidianBreaker still took it as an explosion and did those cracks (looking as it would be breaking slowly).
    _I actually expected to see a bunch of bugs, but just got a flawless plugin finished. I can't express in this post how much thankful I am to you for creating this plugin.

    NOTES:
    - point 6 (make the stone-explosion-behavior to the plugin) will remain, but the plugin request will be marked as 'filled' as it has already completed all what I wanted.
    - A way to know who was the player who "ignited the tnt" is also remaining, to make the plugin behavior totally flawless, and I would love to research/suggest/ask on everywhere just to help you getting a way for it (because currently it isn't possible).
    - The plugin is incredibly good and unique for me (I have been looking for a plugin like this for months on Spigot/Github/DevBukkit, and never found something related), and will 100% help all the servers that use it for not taking care about the rule of "not making water walls in claimed(factions) zones to protect your base" anymore. This will avoid those cheaters who abuse of that liquid behavior to protect their things. I would highly recommend the incredible person who coded this, to submit this plugin directly to the public (maybe through DevBukkit, Spigot or even Github) to spread this new complement that will save mayority of Raids/Factions servers. :D

    As I wrote before, this thread will be marked as "Filled", but there are some details that would perfectionate the plugin even more, such as point 6 and a way to detect directly the player who ignited the tnt(currently not possible), and as a last topic, simulate totally accurate the shape of the tnt explosion, those thing will remain in here if @gochi9 or someone decides to enhance it someday.
    Thanks a lot again @gochi9 , you are the best and you did a lot! [diamond]
     
    Last edited: Jun 20, 2020
  13. Offline

    gochi9

    Glad i could help
     
    AkiraTsubasa likes this.
  14. Offline

    AkiraTsubasa

    Hello back!
    There are 2 more things that could improve this amazing plugin!
    1- Currently if another player is located in the world that you are in, the tnt will always be performed by the plugin. It could be much more better if the plugin will only perform the explosion if there is a player 20 blocks far to the explosion, but WON'T detect players further than 80 blocks from the explosion, and also make that number editable on the config.yml
    2- Also it is actually annoying (in my opinion) but actually good idea to only detect if there is a player in the indicated radius to perform the explosion of this plugin, and ignore everyone who isn't on the indicated radius, this would include people that sticks near to the tnt to prevent the explosion performed by the plugin, but in my case I consider it annoying since I sometimes don't realise that my friends are near me when I'm testing tnt circuits with redstone, and it bypasses the water. Could it be possible an option in the config to decide either if you want the tnt to be performed by the plugin only when the nearest player from the tnt explosion is at the indicated radius, or the other type that would just detect directly if there is a player on the indicated radius ignoring player near the tnt? Thanks in advance!
    It could look something like this maybe?
     
Thread Status:
Not open for further replies.

Share This Page