[Req] Banishment - The premier alternative to jail. [Formatted]

Discussion in 'Archived: Plugin Requests' started by GrimblyGorn, Apr 10, 2012.

  1. Offline


    Plugin category: Admin/Fun

    Suggested name: Banishment

    A bit about me: For now I'm a server owner. If that works out in the slightest, I'll be the owner of a server network and look into plugin development so that I might have a bit more control over things but I know nothing about java so that's a good ways off :)

    What I want: This would allow Admins/Moderators or anyone with the proper permissions to Banish a player to a predetermined secondary spawn point at the far reaches of the map or wherever (this would be on the main world map). The reasoning here is that jail is overly aggressive (my opinion) and while useful for preventing players from acting crazy it also discourages them from playing at all. Banishment would act like jail by removing whatever threat they were causing while still allowing them to go play. If they were then able to make the epic journey back to the original spawn then they could be un-banished . Also, multiple banishment points would be helpful to disperse these naughty players so they don't develop into some kind of roaming gang :) Even better would be to have a unique point for each banished player at some set radial distance from spawn so no player is punished more than another. Or perhaps the distance could be a part of the initial command and be chosen based on the severity of their crime.

    I see it going something like this. Player acts crazy, player gets banished, his new banished spawn point is set, he either journeys back having learned something or he makes a base out there and never returns. Problem solved, everybody wins :)

    These are the challenges I see with this plugin and not being a plugin developer just yet I'm not certain how big they are.
    1. What to do if he has already set a home near the regular spawn or anywhere. I think it would be fine to block his /home command permission here and then wait till he sets a new one to re-instate them. Thus, preventing him from returning while letting him play somewhat normally.
    2. If removing permissions is used to solve issue 1 or for any other reason, how to restore them if he decides to just live out there while still not un-banishing him. I guess some permissions would have to be removed to keep his un-banished friends from warping him back or something.
    3. I'm not sure how The Nether and The End could be utilized while still maintaining his banishment. Maybe he just shouldn't be able to go there.
    4. How to give him after a set time the ability to choose to be un-banished, similar to the jail timer but not automatic in case he likes it out there. Same goes for any un-banish commands. Otherwise we punish him both ways if he loses a new house of loot out there.
    5. How to allow him to get back and forth if he does become un-banished and wants to stay out there cause now he should be allowed to have access to everything like any other un-banished player.
    6. How to automatically un-banish players upon their return to the "promised land" :)

    Ideas for commands: /banish <player> [time/banish location zone], /un-banish <player>

    Ideas for permissions: banish.players.settime (requiring a time limit), banish.players.notime (they have to travel back), banish.un-banish (I don't know lol)

    I would like to also add that I'm using CB 1.2.5 (#2149 for now) and permissionsEX so it would be really great if it supported those so I could use it too :) That's assuming someone wants to take this on.
  2. Offline


    I feel like some jail plugins are flexible enough to do what you want. The only exception would be the auto-un-banish part based on region... but that could potentially be done via regions or they could interact with a sign command that would unbanish them.
  3. Offline


    If you wouldn't mind, could you please point me in the direction of one that you feel might handle this. The ones I looked through didn't appear to be flexible enough (based on descriptions). Not doubting you, just curious as to which ones you might be referring to.

    I will look through them again tomorrow to double check. Thanks for the comment :)
  4. Offline


    Well, I'll base it off of my own implementation, KarmicJail, but you can use any other jail plugin so long as it can support the following steps:

    * Set the jail position somewhere on the far edge of the map (as you wanted) OR alternatively, you can even set it to an entirely separate world (many jail plugins can handle multi-world setups). Your choice on how you wish to implement it.
    * Have a permission group applied to the player when they are jailed, and removed when they are unjailed. Configure that group's permissions accordingly.
    * ????
    * Profit.

    This is solved via permission groups. The jail system can add a specified group and you can give/negate permissions for that specific group.

    This can be solved by adding the group while allowing the player to retain their old group(s).

    This wouldn't be handled by the jail plugin... Rather, this would either be handled by the permission system, by your multi-world plugin, or by the server properties itself.

    This may need to be customized, but easily implemented. Could throw a LogBlockQuestioner question at them when their time comes and they can answer it that way.

    Worst case scenario, they just ask to be jailed to be sent over or something. Or you could warp them to the jail point. Or give a way (portal or sign) to let themselves teleport back (one way).

    See previous comment.

    As I mentioned before, a sign command may be able to fix that. Not entirely sure, but I've no doubt that its possible.
  5. Offline


    Thanks for the very informative response. I didn't realize at first that you're the author of KarmicJail :) I'll look at setting it up this weekend and let you and anyone else that cares to read this what I came up with.

    Thanks again for the help. Gonna use this as my guide book :)
    Mitsugaru likes this.

Share This Page