[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

    Diet Taco

    Thank you so much for a great plugin on easy but advanced configuration for TNT and Creepers! I much prefer my creepers biting than exploding and ruining all of my hard work! Great job on the plugin, very clean and easy.

    This works great with CBVers 527 as well!
     
  3. Offline

    liquidfired

    Great Plugin. I really like the idea of the fangs. Now my members dont get bombed but the creepers can still attack them >:)

    one thing:
    .InvalidPluginException
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:80)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:129)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:94)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:59)
    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)
    Caused by: java.lang.NoClassDefFoundError: org/bukkit/command/CommandExecutor
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:30)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:72)
    ... 8 more
    Caused by: java.lang.ClassNotFoundException: org.bukkit.command.CommandExecutor
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:30)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 23 more
     
  4. Offline

    happo2000

    Which build are you using? You need to update your version of bukkit to support the newer command structure.
    [MERGETIME="1300070833"][/MERGETIME]
    Tested with CB 539, works. (Had some problems with permissions plugin which prompted the update. )
     
  5. Offline

    liquidfired

    works now thank you

    But when i use TNT, it just regenerates
     
  6. Offline

    Jinux

    Sounds like you just haven't set up your permissions right.

    Thanks for this plugin Happo, it's very useful! I especially love the setting to allow placing but not detonating for certain Permissions groups!
     
  7. Offline

    happo2000

    What are your settings? ( What permissions are you trying? )

    It regenerates because you didn't have permission to explode above the blast limit. By default, the blast limit is set to 54. Which is underground. ( 64 is sea level )

    Although, I'm a little curious as to why you were able to activate it in the first place.
     
  8. Offline

    liquidfired

    My Admins can detonate above the blast limit, For my permissions, I got permissions to everything.

    Im using 2.5.4 I am able to use the tnt. The blocks explode, but after about 1 second, the blocks just go back as if i didn't use the tnt.
     
  9. Offline

    happo2000

    What level are placing the TNT on? You can get the current level by pressing F3 and reading your y-axis? Who is activating the TNT? Also, what does your permissions file look like? Also, what other plugins do you have installed?

    Code:
    users:
        happo2000:
            group: Admin
            permissions:
                - 'bc.tnt.abovelimit.place'
                - 'bc.tnt.abovelimit.activate'
                - 'bc.tnt.allowed'
                - 'bc.set.limit'
                - 'bc.set.creeper'
                - 'bc.set.enable'
        admin2:
            group: Admin
            permissions:
                - 'bc.tnt.abovelimit.activate'
                - 'bc.tnt.allowed'
                - 'bc.set.limit'
                - 'bc.set.creeper'
                - 'bc.set.enable'
    
    
    [MERGETIME="1300143348"][/MERGETIME]
    Just tested as a user with 'bc.tnt.allowed','bc.tnt.abovelimit.place','bc.tnt.abovelimit.activate' and I did not see any regeneration. Is there any possibility that I can connect to your server?

    Also, which CB version are you running?
     
  10. Offline

    liquidfired

    I'm the owner group so i have all of the permissions

    My CB is running version craftbukkit version git-Bukkit-0.0.0-516-gdf87bb3-b531jnks

    If you want to get on my server, sure. I'll pm you my ip.
    [MERGETIME="1300198549"][/MERGETIME]
    You can check right now
     
  11. Offline

    happo2000

    I'm at work right now, I wont be able to check till this evening. (EST)
     
  12. Offline

    enkryptor

    Is it possible to let users disarm (and gather back to their inventory) any planted TNT?
     
  13. Offline

    happo2000

    Yes, currently. If they cannot activate, it will pop back into an item to be picked up. I have plans to make a /bc reclaim command to allow users to switch between reclaim mode and detonate mode. I can get that finished tonight.
     
  14. Offline

    enkryptor

    It would be nice to disarm a planted TNT via right click.
     
  15. Offline

    happo2000

    I think I could do that, not sure how stacking TNT would work in that situation though. I'll play with it tonight.
     
  16. Offline

    enkryptor

  17. Offline

    diegokilla

    quick question, how does this react with WE/WG?
     
  18. Offline

    happo2000

    It works fine with WorldEdit. As for WorldGuard, both plugins have some overlapping features with different results. Ex, if creepers are disabled in WorldGuard, but set to limit-fangs in BlastControl plugin. They will still be disabled ( though they may get 1 attack in first before despawning ).

    Same for TNT, if it's disabled completely in WorldGuard. No TNT settings will work in BlastControl.

    Ultimately, don't turn off TNT and creepers in WorldGuard and BlastControl will work as advertised.

    Added a new command '/bc reclaim' to toggle on and off TNT reclaim/removal mode. ( And a new permission 'bc.tnt.reclaim' )

    I did some playing around with the right-click to pickup TNT and found that it wouldn't work as expected.
    Right clicking is used to place blocks, and if your trying to place any block beside TNT. It will despawn the TNT and place the block beside it.

    Now, that being said. I could do a check and only allow the TNT to be picked up if you are holding nothing in your hand or a non-block type object.

    This type of setup might be confusing to the user. So I'm not sure if if I should implement that way.

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

    liquidfired

    Thanks for the new update, gonna check if the glitch still happens.

    EDIT: The TNT still glitches. Whenever I add the tnt it works, however when the tnt explodes, after several seconds the land that got destroyed regenerated
     
  20. Offline

    enkryptor

    Still it would be much better than typing commands in the chat.. in my opinion
     
  21. Offline

    happo2000

    Do you have any other Plugins running? I had tried to connect to your server last night but it just kept timing out on me. Your not by chance trying to explode TNT in the spawn area, are you?
     
  22. Offline

    Jinux

    I don't know if you noticed but that alternative plugin you posted also relies upon a command. I think the fact of the matter is that commands are just the best way to do it.
     
  23. Offline

    enkryptor

    I think many people would disagree with you — for instance, vanilla MC use no commands at all and works fine.
     
  24. Offline

    liquidfired

    My ip changed, 06:38:40 [INFO] [Permissions] version [2.5.4] (Phoenix) was Initialized.
    06:38:40 [INFO] BedrockControl version 1.1 is enabled with permissions!
    06:38:41 [INFO] BlastControl version 0.5 is enabled!
    06:38:41 [INFO] ?eLoaded Essentials build 2.0.282 maintained by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo and ceulemans.
    06:38:41 [INFO] Loaded EssentialsSpawn build 2.0.285 maintained by Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo and ceulemans.
    06:38:41 [INFO] NoExplode version 1.2 is enabled!
    06:38:41 [INFO] [Permissions] version [2.5.4] (Phoenix) loaded
    06:38:41 [INFO] [iChat] Attached plugin to Permissions. Enjoy~
    06:38:41 [INFO] TPack version 1.4 is enabled!
    these are all my plugins
     
  25. Offline

    happo2000

    NoExplode is reverting the TNT explosions...

    I've put it in so that you need to right click on TNT with nothing in your hand. Give it a try.

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

    liquidfired

    I turned off NoExplode, but still the blocks destroyed the tnt regenerates
     
  27. Offline

    happo2000

    So I installed all the plug-ins that you have installed on your server and tried it with NoExplode enabled. It reacted exactly as you said, you place and activate TNT. It explodes and regenerates.

    So then I disabled NoExplode using '/plugin disable NoExplode' and it still happens. ( As I suspected, as there are no unregister event commands in bukkit. )

    Removing NoExplode.jar plug-in from the plug-in folder and starting the server allows BlastControl to function normally.



    This video shows NoExplode still being enabled even though the command to disable was used.
     
  28. Offline

    liquidfired

    I've just deleted everything that has to do with NoExplode. I enabled BlastControl when I tnt, the radius is much smaller than a normal explosion. But even worse. the blocks still regenerate. I disabled Blast Control, and tnt exploded like normal. I know you're trying hard to help so thank you.
     
  29. Offline

    happo2000



    I'm not sure, I've tried your exact setup as you can see and it works for me. ( You'll notice the plugin list )

    wow that was horrible compression

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

    Delois

    Had to finally make an account to post. I have been wanting to install this to my private server with a few friends, but right now the link is currently been broken for the last two days.

    Thanks for making this :3 Would love if you could integrate this with multiple worlds to have different settings per world.

    [​IMG]
     

Share This Page