[INACTIVE][SEC] BlastControl v1.0.6 - Flexible TNT and Creeper restrictions/modifications [818]

Discussion in 'Inactive/Unsupported Plugins' started by happo2000, Mar 11, 2011.

  1. Offline

    happo2000

    BlastControl - Flexible TNT and Creeper restrictions and modification plug-in
    Version: v1.0.6
    (Optional) Permissions Version: v2.5.x

    Lets face it, TNT is fun. This plug-in is not to take away TNT from Minecraft, but restrict it's use to certain users. This plug-in provides the administrator the ability to restrict TNT use through different permissions. There are currently three levels of TNT usage restrictions that the administrator can apply to their users.

    Permissions:
    Code:
    bc.tnt.allowed - This permission will grant the user the ability to place and activate TNT freely under the indicated blast limit
    bc.tnt.abovelimit.place - Allows the user to place TNT above the specified blast limit
    bc.tnt.abovelimit.activate - Allows the user to activate TNT above the specified blast limit
    bc.tnt.abovelimit.link - Allows the user unrestricted linking of TNT blasts
    bc.tnt.immune - Gives player immunity to damage from TNT blast
    
    How it works:
    The basic idea of this plugin is that when a user activates TNT, the chunk itself is tagged with that users permission level for the next few seconds. So any linked explosions are also covered under that specific permission and the timer is extended. As an example, if the user has the bc.tnt.abovelimit.place but not the bc.tnt.abovelimit.activate permission and attempts to chain explosions that link above the blast limit, the TNT above the limit will not explode.

    What is the blast limit or blast height limit?

    They are the same thing. This is the limit setting to deny TNT or Creeper explosions from happening above ( this just translates into the y-axis range ). You can get the current y-axis of your character by reading the value that F3 puts onscreen within Minecraft. 0 being bedrock level and 128 being the highest point in the sky.

    Why 'bc.tnt.abovelimit.place' permission?
    On the server that I play on, TNT is used allot for leveling out large strips of land or abandoned buildings in SMP. This allows a regular/VIP user to place the TNT and call an Admin/Mod to detonate it.

    Features:
    • Restricts Creepers to exploding over the blast limit
    • Grants Creepers the ability to attack with fangs if their explosions are inactive
    • Linking TNT explosions work properly, even across adjacent chunks
    • Allows specific groups of users to use TNT in different ways
    • Gives the ability to reclaim placed TNT
    • Allows admin to change TNT properties
    Command Permissions:
    Code:
    bc.set.limit - Allows the use of the '/bc limit', '/bc triggerlimit' and '/bc linklimit'
    bc.set.enable - Allows the use of '/bc enable' and '/bc disable'
    bc.set.creeper - Allows the use of '/bc creeper'
    bc.tnt.reclaim - Allows the use of '/bc reclaim'
    bc.set.yield - Allows the use of '/bc yield'
    bc.set.radius - Allows the use of '/bc radius'
    
    Commands:
    Code:
    '/bc help' - Displays help
    '/bc status' - Shows the current blast limit and the current users restrictions
    '/bc reclaim' - Toggles TNT Reclaim mode on and off
    '/bc [enable/disable]' - Enables/disables BlastControl
    '/bc limit [x]' - Sets the new blast level to x
    '/bc triggerlimit [x]' - Sets the new trigger time limit to x ( in milliseconds )
    '/bc yield [x]' - Changes the blast item yield of explosions ( percentage )
    '/bc radius [x]' - Changes the blast radius of TNT ( in blocks )
    '/bc linklimit [x]' - Changes the maximum amount of linked TNT explosions
    '/bc creeper [x]' - Changes creeper behavior ( see creeper behavior table below )
    '/bc reload' - Reloads user configuration ( only available when Permissions Plug-in is not present )
    
    Creeper Behaviours:
    Code:
    'enable' - Does not limit creeper explosions in any way
    'disable' - Disables creeper explosions completely
    'disable-fangs' - Disables creeper explosions completely but gives them fangs to attack with
    'disable-entity' - Disables creeper explosions from doing any block damage, will still damage entities (Players, other mobs)
    'disable-despawn' - Disables creeper explosions completely but, despawns them on destruct
    'limit' - Restricts creepers to only exploding under the blast limit
    'limit-fangs' - Restricts creepers to only exploding under the blast limit, but gives them fangs above the limit
    'limit-entity' - Restricts creeper exploding normally under the blast limit, above the limit they will only do entity damage (no block damage)
    'limit-despawn' - Restricts creepers to only exploding under the blast limit, but despawns them when they attempt to explode above the blast limit
    
    Future Development: (opinions needed, these are not set in stone)
    • Adding TNT chain limits for different user permission levels
    • Giving different TNT strengths for different user permission levels
    • Allow control over Ghast explosions (low priority)
    • Throwing primed TNT (opinion needed)
    • Allow arrows to prime TNT (opinion needed)
    Restrictions:
    • This plug-in will disable the ability to activate TNT through redstone and fire
    Download the latest version of the BlastControl Plug-in

    Download Older Version of the BlastControl Plug-in

    Download BlastControl Source

    Changelog:
    Version 1.0.6
    • Fixed a typo in creeper setting, was 'limit-depawn' changed to 'limit-despawn'
    • Added new permission 'bc.tnt.abovelimit.link'
    • Added command '/bc linklimit <#>'
    • Fixed an issue with 'limit-despawn' where it was letting the creeper attack
    Version 1.0.4
    • Added 'bc.tnt.immune' permission
    • Allow players to be immune to damage from TNT (other sources act normally)
    Version 1.0.3
    • Removed Compatibility code for CB 599 and below for efficiency
    Version 1.0.2
    • Added compatibility with major revisions to CB 558+ (tested on CB592)
    • Removed Right-Click to reclaim TNT until CB API changes calm down
    Version 1.0.1
    • Removed a debug message that accidentally got left in for v1.0 release
    Show Spoiler

    Version 1.0
    • Added explosion sound effect to creepers explosions while only doing entity damage
    • Shortened creeper attack range by 1 block
    Version 0.9.3
    • Added new creeper settings 'disable-entity' and 'limit-entity'
    Version 0.9.2
    • Fixed an incompatibility with changing Yield and CB 556-
    Version 0.9.1
    • Made Permissions plug-in optional, capable of using user.properties file
    • Moved configuration files to plugins/BlastControl
    • Renamed blastcontrol.cfg to settings.properties
    • Will automatically convert your existing settings
    • Added '/bc reload' which is only available when Permissions plug-in is not present
    • Cleaned up settings and configuration code
    Version 0.9
    • Added ability to set TNT Blast radius using '/bc radius'
    • Added new permission 'bc.set.radius'
    • Added ability to set TNT Blast item yield using '/bc yield'
    • Added new permission 'bc.set.yield'
    Version 0.8
    • Fixed a bug that could cause an infinite loop
    • Also moved project to GitHub
    Version 0.7
    • Fixed a bug where when a creeper was attacking with fangs, damage would come from player instead of creeper
    Version 0.6
    • Right-click of TNT with nothing in hand will reclaim, relies on 'bc.tnt.reclaim'
    Version 0.5
    • Added command '/bc reclaim' to allow users to toggle TNT pickup mode
    • Added new permission 'bc.tnt.reclaim'
    Version 0.4
    • Fixed a bug that could cause an infinite loop
    Version 0.3
    • Allowed commands to be accessed via console
    • Added a new status item showing the time-to-link timeout
    • Changed status to not show player restrictions if plug-in is disabled
    • Plug-in will disable gracefully if Permissions plug-in is not loaded
    • Changed Plug-in Hooks from Lowest to High - ( I misinterpreted originally )
    Version 0.2
    • Changed permission 'bc.tntallowed' to 'bc.tnt.allowed'
    • Changed permission 'bc.abovelimit.place' to 'bc.tnt.abovelimit.place'
    • Changed permission 'bc.abovelimit.activate' to 'bc.tnt.abovelimit.activate'
    • Changed permission 'bc.enabledisable' to 'bc.set.enable'
    • Changed permission 'bc.setcreeper' to 'bc.set.creeper'
    • Changed permission 'bc.setlimit' to 'bc.set.limit'
    • Removed permission 'bc.status'
    • Added new creeper settings 'disable-despawn' and 'limit-despawn'
    • Slightly increased the range on creeper fang attacks
    • Changed command '/bc setlimit' to '/bc limit'
    • Added command '/bc triggerlimit'
    Version 0.1
    • Initial Release
     
    nendi, Thomasice and Aaron_Merric like this.
  2. Offline

    happo2000

    Let me update it, it'll only take a few seconds. I'll post when it's ready.

    Here you go

    https://github.com/downloads/happo2000/ScubaGear/ScubaGear.jar

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

    MineralMC

    Interesting feedback from one of my players re. the biting creepers:

    Luvmuchine: is it possible to make them bite once, then die or explode?
    Luvmuchine: that or shorten their range to something normal?
     
  4. Offline

    happo2000

    I did shorten their range from 5 blocks to 4 in the last couple of updates, it might be too far still. Maybe I should just provide the administrator the ability to change the range and the bite strength. :p

    Techincally, wouldn't that just be the disable-entity option?
     
  5. Offline

    MineralMC

    I think he means in the sense of 'bite and die', like a honeybee. It warns you, you keep pissing it off, so it explodes. haha.
     
  6. Offline

    mdt7734

    Yeah I found out shortly after when I instinctively ran from my structures when one SssesSSSsss'd up on me.
     
  7. Offline

    MineralMC

    Also, re. scubagear, any way to make diamond boots act as flippers for a speed boost in water, happo? That would really cap the mod off!
     
  8. Offline

    happo2000

    Yeah. I think that could be done.
     
  9. Offline

    MineralMC

    Maybe a 25% speed boost for gold boots, 50% speed boost for diamond boots, and a 50% reduced redstone usage when wearing a diamond helmet instead of a gold helmet?

    I've been trying to find a way to make leather boots give a 10% speed boost to players as well, but that's beyond the scope of this mod.
     
  10. Offline

    happo2000

    Well, the reason I had used gold and redstone is because no-one really uses gold items in game. It actually started giving value to gold on our server. And people generally have a ton of redstone that they have no use for. So I would only use gold boots, I think.
     
  11. Offline

    MineralMC

    Makes sense. How about a configuration option for changing the item types?

    FlippersID=
    DivingMaskID=
     
  12. Offline

    happo2000

    So I did some testing of my own and read a couple other posts on bukkit. It's not really doable because of the client side prediction. In the end, it feels very very laggy and unresponsive.

    http://forums.bukkit.org/threads/req-faster-movement-on-roads.2029/#post-23889
     
  13. Offline

    MineralMC

    Ahh, bugger. Oh well! What about jump/sink speed when it water? Allowing the player to sink and surface quicker would be a good use for the boots as 'flippers', especially for getting up waterfalls quickly.

    Also, got this on a cold startup with ScubaGear, running previous recommended build of Bukkit (556).

    2011-03-30 05:57:18 [SEVERE] ENTITY_DAMAGE loading ScubaGear v0.3 (Is it up to date?)
    java.lang.NoSuchFieldError: ENTITY_DAMAGE
    at com.bukkit.happo2000.ScubaGear.ScubaGear.onEnable(ScubaGear.java:32)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:451)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:217)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:92)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:70)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)

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

    Fekillix

    I`m having truble understanding the commands. Could somone pls tell me what to type to Disable creeper exsplosions completly, but enabling fangs? Also enable TNT exsplosions for all users? It`s a small server with 6 of my friends, i got the latest Bukkit, (downloaded 2 days ago) Thx enyway, Fekillix
     
  15. Offline

    Jotakob

    Thats exactly what i'm looking for :) Could you please implement that? doesn't seem that hard.
     
  16. Offline

    Kartus

  17. Offline

    happo2000

    This already exists within this plugin, look at the bc.tnt.reclaim permission and /bc reclaim command

    Yeah. I'll implement it. I have a most of the code done, just need to figure out a way to differentiate between a TNT explosion and a creeper explosion.

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

    MineralMC

    May as well take the /disarm alias - it's not going to be used by anything else, and I personally already set it via CommandHelper.
     
  19. Offline

    happo2000


    To disable creeper explosions and enable fangs, just type '/bc creeper disable-fangs'.

    Judging by the setup of the server, it sounds like your not running Permissions plugin. If that's the case, run BlastControl on the server once and it will create a 'plugin/BlastControl/user.properties' file. Edit the file and make sure that 'bc.tnt.allowed=false' (false means that everyone has access to it) and then type '/bc reload' to reload the user configuration

    Oh. I thought you wanted the 600 release.

    https://github.com/happo2000/ScubaGear/blob/e5f4dd52b756b487fee27bf6d84fb78cf57aaec2/ScubaGear.jar

    This one should work with 556.

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

    MineralMC

    Haha, it's fine now. Currently in the process of building my alt server to upgrade to 602 - no problems with 602? - so I'll just whip the one you linked earlier into that instead. May be worth making a new thread for it, as I can see demand for more 'exploration'-type mods.

    Did you see the post regarding making the boots act as diveweights/floatation, or is that another client limitation?
     
  21. Offline

    happo2000

    Yeah. It falls into the same category as the increased speed issue. It would seem very laggy.

    What I want to do eventually with this is add a light source around the person so they can see better under water.
     
  22. Offline

    MineralMC

    I recall someone trying to do that with miner helmets, although this was laggy in SP, let alone SMP!
     
  23. Offline

    happo2000

    This is in version 1.0.4 now. :)
     
  24. Offline

    happo2000

    [​IMG]

    Wow. I didn't think it would get that popular.
     
  25. Offline

    Exone

    Lovely!
    Also love the fact that creepers get's fangs, :p
    They should have that in vanilla. And randomly blow up or bite you :p
     
  26. Offline

    xidio

    Its using hamachi so I guess no.
    But I stopped using the plugin, couldnt figure out how to get it to work at all.

    But its nice anyhow.
     
  27. Offline

    happo2000

    Alright

    Would like other peoples input as well.

    So I've been trying to figure out what would be the best way to deal with the chain linking limit and I'd like to get an idea as to how people in general would like to see it work. ( I am not looking for the easy way to implement, I'm looking for how people would like to use it. )


    1. The easy way to implement this is as you said, maybe a new permission named 'bc.tnt.link' and if they have that permission, they can link TNT explosions. If they don't, they can only activate one at a time.

    2. The other option, which is a bit more complex, is to allow an admin to set a link limit value. People can link TNT up to that value and the detonation will stop. Under this situation, if they try to activate 2 TNTs at virtually the same time, should I prevent the second TNT from activating? Or should I have it add the limit ( so they can detonate link limit x2 number of TNTs )? Obviously, I would also have a permission 'bc.tnt.abovelimit. link' that would allow users with this permission to bypass this link limit.

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

    MineralMC

    I did. :D It replaces a good few half-assed attempts at TNT management!

    I think TNT linking should be per-explosion, rather than per-block. So a regular user has to wait until their current link has detonated before they can start a second one, otherwise it bypasses the anti-TNT spam concept that would make the linking setting useful in the first place.
     
  29. Offline

    happo2000

    Ok, yeah. I'll do that. It's going to be quite a substantial change, so I most likely will have it in test mode for a few days before actually releasing it.
     
  30. Offline

    Zazamari

    Yes I'd very much like a way to limit tnt activations at one time per person instead of...well however this works cause i couldnt figure out what the timer ment whethet it was time frame between activations or what the way this is set up is very confusing to me to be honest.
     
  31. Offline

    happo2000

    Chain limits are not implemented yet. The 'blast trigger limit' is the maximum time to allow between TNT explosions to consider it part of the active chain. I should probably remove that as a configuration option and hardcode it as 10 seconds as I can not come up with a suitable reason as to why an admin would want to change that.
     

Share This Page