[MECH] BoundaryKill v1.31z - Soft borders killing you softly [1060]

Discussion in 'Inactive/Unsupported Plugins' started by Zarius, Jul 15, 2011.

  1. Offline

    Zarius

    Borderkill - Soft borders killing you softly
    Version: 1.31z (2011/07/16)

    <font color="#ff0000">Bukkit 1.2.3? See <font color="#ff0000">OtherBounds</font> BukkitDev page for a compatible version.</font>

    This world border creates a circular "soft" border. When a player walks across the border they will start to lose health until they cross back. There is also multiworld support. The mechanic was inspired by the game Allegiance.

    Features:
    * Circular borders
    * Damages players who crosses border
    * Multiworld support
    * Exceptions for admins
    * Players in vehicles
    * Prevents players from teleporting outside the border

    Download: Download | Source Code | Older Downloads


    Show Spoiler
    There is no ingame configuration. Everything must be done by editing the configuration file which is generated on first run and is updated to the latest version when required:

    plugins/BoundaryKill/config.yaml

    Code:
    version: 1
    ticks: 10
    outMessage: You have exited the boundary. Prepare to DIE!
    inMessage: You have returned to safer lands.
    worlds:
        world1name:
            radius: 300
            z: 0
            x: 0
            exceptions:
                - croxis
        world2name:
            radius: 250
            z: 50
            x: -40
            exceptions:
                -
    health: 1
    
    ticks is the number of in game ticks before health is removed for players outside the border
    health is the amount of health removed per hit
    out and in messages are the messages sent to the player when the cross the border
    worlds is the name of the world, the x and z coordinates of the center of the border, and the radius of the border.
    exception is a list of players that you want exempted from the border.




    Show Spoiler
    Here's a <Edit by Moderator: Redacted mediafire url>

    Working:
    * multiple boundaries
    * damage
    * exceptions (player list and/or bukkitperms)
    * circular boundaries

    Not working yet:
    * inverted boundaries
    * rectangular or region base boundaries
    * damagerate

    Considerations:
    * this is not ready for active use (obviously just a pre-release) unless your players don't mind getting killed by bugs.
    * you probably want to put delay rate down to around 5 (that's the minium at the moment) - I left it at 40 for testing (checked the boundary every 2 seconds)
    * safeinsideboundary - set to true or false at your preference: if you have concentric boundaries set to false, if you have non-concentric set to true.



    Todo List:
    See GitHub issues page.

    Changelog:
    Version 1.31z
    * Zarius takes over development
    * Fixed bug with players quitting
    * Excepted players still get informed about the boundary

    Version 1.3
    * Fixed damage code. Should now drop chests for Tombstone.

    Show Spoiler
    Version 1.2
    * Fixed teleporting to operate in a more sane manner
    * Updated to craftbukkit 617
    * Added support for vehicles
    * Added a per world exception list

    Version 1.1
    * Updated for bukkit 405+
    * Fixed a couple of nasty bugs

    Version 1.0
    * First release


    Original plugin and ideas by Croxis, many thanks for creating this great plugin - I hope I do it justice :)
     
    Last edited by a moderator: Nov 27, 2016
  2. Offline

    Nazerb

    Nice thanks for all the hard work! On a side note its farther's day? I better get a present :D
     
  3. Offline

    Nazerb

    Oh is it also possible to have the bukkitpermissions exceptions for the different boundary's so if you call your boundary: GuestBoundary then you can give the permission boundarykill.GuestBoundary so they can move forward, this means it can be changed centrally instead of in the plugin its self.
     
  4. Offline

    Zarius

    Yeah, or if using PermissionsEx you can just type /pex promote <username> :D

    Here's a <Edit by Moderator: Redacted mediafire url>

    Working:
    * multiple boundaries
    * damage
    * exceptions (player list and/or bukkitperms)
    * circular boundaries

    Not working yet:
    * inverted boundaries
    * rectangular or region base boundaries
    * damagerate

    Considerations:
    * this is not ready for active use (obviously just a pre-release) unless your players don't mind getting killed by bugs.
    * you probably want to put delay rate down to around 5 (that's the minium at the moment) - I left it at 40 for testing (checked the boundary every 2 seconds)
    * safeinsideboundary - set to true or false at your preference: if you have concentric boundaries set to false, if you have non-concentric set to true.

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

    Vettexl

    I'm not sure if this has been asked (or it has already been added and I missed it) but will this eventually have Permissions support? (eg. users without the proper permission nodes have a limited area to access until they sign up on the server's website).
     
  6. Offline

    Zarius

    Did you check the post just above yours? :) The pre-release has this support.
     
  7. Offline

    Vettexl

    I posted from page 1 so no I didn't. I was also on my phone >__< Thanks though!
     
  8. Offline

    Zarius

    @~Poke~ @Phant0mX @1cec0ld

    Multiple boundaries (concentric or non-concentric) are now available in the pre-release posted above :)

    @1cec0ld

    The included config demonstrates concentric boundaries - for your "killing border" just set the outer boundary to damage: 20.

    @pyropyro78 @jandraelune @Nazerb

    Groups are now supported via bukkitperms - just give your group the appropriate permission.
     
    Phant0mX likes this.
  9. Offline

    Nazerb

    @Zarius That is brilliant work, inverted boudarys are where players are not allowed in? Keep it uo :D

    Oh and if you logout in the area you dont take damage. I cant seem to make the center where I need it to be. But as you said its new.

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

    Zarius

    Ah yes, I haven't monitored the player quit/join events (though I think I have another way around that too) - also a bug in the pre-release: centre needs to be spelt "center" so that could be your problem. The final release should accept both spellings of the word.
     
  11. Offline

    Nazerb

    Tried this in bukkit perms: otherbounds.custom.mainBoundaryOverride
    And got a huge error.
     
  12. Offline

    Zarius

    What's the error please - need it to help debug :)
     
  13. Offline

    Nazerb

    Does it work for you? I'll have to do it tomorrow I'm On my iPod now, going to bed.
     
  14. Offline

    Zarius

    Yup, I tested the permissions override without a problem. When you are able, can you please post the config you used and the error? Also noting the permissions plugin you use would be good.
     
  15. Offline

    Nazerb

    The boundary code.
    Code:
      main_boundary:
        radius: 150
        center-x: -156
        center-z: 85
        world: ALL
        damage: 1
        except: [Xsarqn, player2]
        exceptpermissions: [mainBoundaryOverride]  # give players otherbounds.custom.mainBoundaryOverride (note, cannot include _ characters)
        messagedanger: You must be a member or moderator to pass this border.
        messagesafe: You have returned to safe zone.
    In permissions.
    Code:
        user:
            permissions:
                otherbounds.custom.mainBoundaryOverride:true
    In console.
    Code:
    17:49:24 [SEVERE] Could not load 'plugins\PermissionsBukkit-1.2.jar' in folder 'plugins':
    while scanning a simple key
     in "<reader>", line 25, column 13:
                    otherbounds.custom.mainBoundaryO ...
                    ^
    could not found expected ':'
     in "<reader>", line 26, column 9:
                worlds:
                ^
    
            at org.yaml.snakeyaml.scanner.ScannerImpl.stalePossibleSimpleKeys(ScannerImpl.java:400)
            at org.yaml.snakeyaml.scanner.ScannerImpl.needMoreTokens(ScannerImpl.java:231)
            at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:182)
            at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:564)
            at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:163)
            at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:228)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
            at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
            at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:124)
            at org.yaml.snakeyaml.Yaml.load(Yaml.java:264)
            at org.bukkit.util.config.Configuration.load(Configuration.java:82)
            at org.bukkit.plugin.java.JavaPlugin.initialize(JavaPlugin.java:157)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:175)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:213)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:136)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:143)
            at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:110)
            at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigurationManager.java:51)
            at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:133)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:337)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Hope it helps
     
  16. Offline

    Zarius

    @Nazerb

    Not an issue with OtherBounds - that seems to indicate an issue with your permissions file on the next line (line 26).
     
  17. Offline

    Nazerb

    Oh sorry it was me being a t*t i dident format the file properly. I feel a bit stupid now :D
     
  18. Offline

    TheJSeb

    The health option doesnt seem to work, it always removes half a heart either its 1 or 5.

    Also, you should add the possiblity for ops or admins (with permissions) to add exceptions in-game.
     
  19. Offline

    Zarius

    Thanks, I'll test the health option later. A command to add exception in-game sounds cool, saving that info to the config file is the tricky part (I don't generally like writing to config files, could overwrite user changes) - will think about it.
     
  20. Offline

    pyropyro78

    @Zarius - You are awesome man, keep up the great work, thank you for adding in the group support, I have not logged in to bukkit in a while and was coming on to snag the src to play with until I read that. You have made a lot of people happy with that. I hope 1.8 will not cause you many headaches.
     
  21. Offline

    croxis

    You could use spout to have custom in game sounds when getting close/crossing a border. Sound could even be done with a per border config (bubble sound effect for swamps, an electric sound for the general border, etc)
     
  22. Offline

    Zarius

    Sounds like a good idea :) I've been meaning to look into this for my OtherDrops plugin and can use the same code :)
     
  23. Offline

    1cec0ld

    @Zarius

    I need to log in to bukkit more often, thank you for the update, I'll test it on the server soon, and let you know my results!
     
  24. Offline

    Nazerb

    How is otherbounds coming?
     
  25. Offline

    Zarius

    No problems with health - were you trying BoundaryKill or the OtherBounds pre-release?

    Good - there hasn't been many problems reported for the pre-release so I'll bump it up to a beta release and put it in the top post soon (will probably test with 1.8 first). Next thing I want to do will be the spout sounds thing unless there's something else I should look at first?

    edit: doh - didn't look at the todo list properly - need to implement rectangular and region based borders first :) (I'm thinking I might just let WorldGuard handle the rectangular ones via region names).
     
  26. Offline

    Nazerb

    I found a bug. If you have concentric boundary only the furthest one out does damage.
    Safeinside=true
    I forgot to mention it.
     
  27. Offline

    Zarius

    Correct - hence the need for safeinside = false for concentric. Safeinside = true is for non-concentric. I haven't found a solution to allow both to work.
     
  28. Offline

    Nazerb

    can you make it so when the message shows it starts the damage, cause the message shows proplerly.
     
  29. Offline

    Zarius

    Not really - it's tricky but imagine you have two non-concentric circles. If you are inside one you are outside the other - so the solution here is to say "well, you're inside a boundary so therefore safe", but that doesn't work when you have concentric ones.
     
  30. Offline

    Nazerb

    Couldn't the safe zones just times the damage by 0. So if your meant to be getting 1 it will be 0(safe)x1(the other)=0
    ?
     
  31. Offline

    Zarius

    Yes, but how do you define a "safe zone"? As inside a boundary? If so then concentric boundaries don't work because when you're outside the first boundary you're still inside the other.

    And if you set "safe zones" per boundary and configure that the second boundary is not a "safe zone" it doesn't work if you have a third boundary out somewhere else, because now that you're not "safe" you'll get hurt by that third boundary too.

    Perhaps some way of linking boundaries - like "contains: boundary1" which would mean that when in boundary 2 you'll still get hurt by whatever boundaries it contains but not others.

    I'm not even going to try and think about overlapping boundaries at the moment :/
     

Share This Page