Inactive [RPG]DayJobs v2.2 - A plugin to enforce and enhance Role Playing [1337]

Discussion in 'Inactive/Unsupported Plugins' started by LartTyler, Sep 4, 2011.

  1. Offline

    LartTyler

    DayJobs
    A plugin to enforce and enhance role playing




    We're on BukkitDev! Please direct all comments to the project page on BukkitDev, thanks!​


    After hosting an RP server for several months, I became tired of having to settle disputes between players, and having to monitor who's doing what. Most of my time went into ensuring player's kept true to RPing, rather then shaping the server as I had wanted to.

    Which is why I designed DayJobs. DayJobs is a plugin that takes some of the load off the shoulders of admins and moderators by restricting how players interact with the world. At the moment, that simply means the tools the players can use, and the blocks they can place. In the future, we at Daybreak Studios plan to add many features that will turn this simple plugin into a full suite to manage role playing in the Minecraft world.

    Current features:
    • Limit block placement and tool usage based on a players job class
    • Completely configurable classes
    • Job change request and ticketing system
    • Restrict armor usage by class
    • Configurable zones! Create guild halls, private mines, and various other locations accessible to only select classes!
    • New configuration option "can-break" allows even further fine-tuned control over what a player can and can't destroy!
    • Configurable damage types! Let some jobs survive harsher conditions longer then others, or fall prey to select environments in the blink of an eye!
    • Set respawn locations and first spawn location (with configurable messages to display to the player being spawned).
    • Restrict items from being crafted on a per job class basis.
    • Support for Permissions, PermissionsBukkit, PermissionsEx.
    • Restrict crafting, smelting, and many more elements of Minecraft's game mechanics on a per class basis.
    Coming soon!

    • Starter kits! Allow players to receive special Starter Kits when the first pick a job, or even on each subsequent job change
    • Support for custom items added via Spout using item ID's
    • Other features on request. Please PM me or leave a message in this thread if you have any feature requests.
    Downloads:

    Requirements:

    This plugin now requires the server-side version of Spout.​

    Configuration:
    Setting up DayJobs is simple. Simply drop the jar into your plugins folder and go. The plugin will function without Permissions and will use Op status for moderators. However, for a more personalized experience, we do suggest installing Permissions. Yes, it's inactive and outdated, but it still works very well, and we use it on our personal servers.​

    Once Permissions has been added, you can use the following permission nodes to control command access:​
    Code:
    dbstudios.dayjobs.admin.reload
        Can reload configuration files
    dbstudios.dayjobs.admin.change
        Can change a players class
    dbstudios.dayjobs.admin.tickets
        Can access/close tickets
    dbstudios.dayjobs.admin.debug
        Can toggle debug mode
    dbstudios.dayjobs.admin.zones
        Can create and delete zones
    dbstudios.dayjobs.admin.exempt
        Allow usage of the admin "exempt" command
    dbstudios.dayjobs.admin.spawn.set.deathspawn
        Allows setting of the death spawn location
    dbstudios.dayjobs.admin.spawn.set.newspawn
        Allows setting of the new spawn location (for first time players)
    dbstudios.dayjobs.admin.spawn.tp.deathspawn
        Allows teleporting to the death spawn
    dbstudios.dayjobs.admin.spawn.tp.newspawn
        Allows teleporting to the new player spawn
    
    dbstudios.dayjobs.player.list
        Can list available jobs
    dbstudios.dayjobs.player.whois
        Can 'whois' other players
    dbstudios.dayjobs.player.change
        Can request a job change
    dbstudios.dayjobs.player.info
        Can view job descriptions
    
    Example configuration files can be found on our GitHub page.​

    Commands:
    Code:
    /job list
        List available jobs
    /job info [<job>]
        Display your job info, or <job> if given
    /job whois <player>
        Display basic info for <player>
    /job change <job>
        Request to be changed to <job>
    /job admin reload
        Reload configuration files
    /job admin change <player> <job>
        Change <player>'s job to <job>
    /job admin tickets [close <player>]
        Display open tickets, or close ticket by <player>
    /job admin debug
        Toggle debug mode
    /job admin exempt <player>
        Toggle exempt status for <player> (they wont be affected by job limitatons).
        Run again on the same player to remove exempt status.
    /job admin spawn set death
        Set the respawn location to your current location
    /job admin spawn set new
        Set the new player spawn to your current location
    /job admin spawn tp death
        Teleport to the current respawn location
    /job admin spawn tp new
        Teleport to the current new player spawn location
    
    
    /job zone create <zone>
        Begin creation of <zone>
    /job zone set (upper/lower)
        Set the upper-left or lower-right coordinate of the zone
    /job zone order ("allow,deny"/"deny,allow")
        Set the access order (allow first, then deny, or deny first, then allow)
    /job zone (allow/deny) <access_list>
        Allow or deny for <access_list>
    /job zone commit (yes/no)
        Commit zone changes ("yes"), or delete them and start over ("no")
    
    Using the zoning system:
    The zone system in DayJobs is simple. In order to create a new zone, begin by ensuring that you have the correct permission node (dbstudios.dayjobs.admin.zones). Next, initialize zone creation by typing:
    Code:
    /job zone create MyZone
    Next, you need to set the upper-left and lower-right coordinate points that define the bounding box the zone takes up. Keep in mind that the zone does not have to encompass an entire structure; often, it's enough to simple place a zone across the door or entry way that will deny players access.
    To define a coordinate, look at the upper-left or lower-right block you want to use, and type:
    Code:
    /job zone set upper
    or​
    Code:
    /job zone set lower
    Now, you will need to define an order type. For those familiar with the Apache web server, you may recognize the syntax.
    The zone system uses an allow or deny system (ADS) to determine if a player is allowed in a given zone. Valid order types are: "allow,deny", meaning allow all job classes first, then deny those on the given list, or "deny,allow", meaning deny all job classes, and only allow those implicitly allowed. Notice the lack of space between the two access types. To set the order type, enter:
    Code:
    /job zone order allow,deny
    or​
    Code:
    /job zone order deny,allow
    The final step before committing a zone is to set the access list. The syntax of this command will change depending on your order type. For example, the order type "allow,deny" would replace <access_type> in the following command with "deny", and "deny,allow" would replace <access_type> with "allow":
    Code:
    /job zone <access_type> <access_list>
    <access_list> is a comma separated list of job classes to deny or allow. Be sure, just as in the order type, not to use spaces between the comma and the different job classes.
    The final step is to commit the zone. To do this, type:
    Code:
    /job zone commit yes
    This will write all changes to your zone file. However, if you are not satisfied with the changes, or decide midway through creation that you don't want the zone, type:
    Code:
    /job zone commit no
    You must commit or discard a zone before attempting to create another.

    You can also delete zones from in-game. Simply type:
    Code:
    /job zone delete MyZone

    Let's say I wanted to create a zone named "MinersGuild", and only allow the two jobs, "Miner" and "Blacksmith" inside. I would type the following:
    Code:
    /job zone create MinersGuild
    *Looking at the block above and to the left of the entry way, I would type:*
    /job zone set upper
    *Looking at the block below and to the right of the entry way, I would type:*
    /job zone set lower
    /job zone order deny,allow
    /job zone allow Miner,Blacksmith
    /job zone commit yes
    
    Special Characters
    In config.yml, there are many options you can use to change what text is displayed to a player on certain events. Each option allows for certain special characters, denoted by a percent sign ("%"). Currently, the only supported special characters are:
    • %p - The player's name
    • %j - The player's job
    As more and more features are added, there will be more special characters to choose from.


    As an example, in config.yml, you can set the message to display to a user the first time they connect to the server (new-player-msg). If I wanted to make it welcome the new player using their name, I would use:
    Code:
    new-player-msg: Welcome, %p, to The Four Kingdoms. You have joined with the default job class, %j.
    Changelog:
    Version 2.2
    • Fixed a bug that caused errors for servers using PermissionsBukkit.
    • Added 'init.yml'. Allows individual features to be enabled/disabled.
    • Small code tweaks in the interest of performance.
    Version 2.1
    • The item value "NOTHING" can now be either "NOTHING" or "NONE", it will evaluate to the same thing.
    • Placing a "-" in front of a block or item will except it from any previous allow statements. For example:
      Code:
      can-place:
                - ALL
                - -OBSIDIAN
                - -TNT
      Would allow all blocks, except for obsidian and TNT to be placed.
    • Placing a "+" in front of a block or item will add it to the list of allowed items/blocks, regardless of previous statements. For example:
      Code:
      can-place:
                - NOTHING
                - +COBBLESTONE
                - +DIRT
      Would disallow all blocks, but will allow Cobblestone and dirt to still be placed.
    • Item usage on mobs and other entities now denies correctly. Restricted weapons/blocks/items no longer work on mobs.
    • Changed some output text colors, and re-worded the more "awkward" phrases.
    • New configuration option, "can-smelt" allows you to restrict what a player is capable of smelting in a furnace.
    • Configurable message structure in config.yml has been changed. Please see the provided example config.yml for an example of the new structure.
    Version 2.0

    • Configuration files renamed: "player.yml" is now "players.yml", "ticket.yml" is not "tickets.yml"
    • New configuration options: place-deny-msg, break-deny-msg, use-deny-msg, wear-deny-msg, wear-deny-inv-full-msg
    • New option: Set new player join message by changing new-player-msg in config.yml. Supports the following tokens:
      • %p - The player's name
      • %j - The player's job
    • Various text changes and optimization
    • Corrected a bug where damage done could be increased, but not set to a value below the default.
    • Corrected a bug where players could still use a restricted item to attack an entity.
    • NOTHING or ALL in a jobs permit node now correctly overrides those present in "all".
    • Cleaned up output for verbose logging servers.
    • Corrected DayJobs attempting to initialize Spout, Permissions, or other dependencies before the dependencies were initialized on the server.
    • Added support for PermissionsBukkit.
    • Corrected zones occasionally killing players when permission was denied.
    • Set death spawn locations and new player spawn locations
    • Restrictable, per-job crafting
    Version 1.3

    • Corrected a bug that prevented normal players from using commands if Permissions was not present.
    • Player names are no longer case sensitive in commands.
    • An admin job change now notifies the target player of the change.
    • New command "/job admin exempt <player>" will toggle exempt status on target <player> and disable job limitations on them until the command is run again.
    • Exempt is no longer a permission node. See above.
    • New usage options. Enter "NOTHING" under a usage node (such as "can-use" or "can-break") to remove ALL usages from that category for that job. Enter "ALL" to allow usage of everything for that category.
    • Prettier job information output :3
    Version 1.2

    • Added configurable zones
    • Added the new configuration option "can-break"
    • Fixed a bug that could return null for certain configuration options if not set
    Version 1.1

    • Added configurable armor limitations
    • Changed message colors to a more standard motif
    • Fixed a bug that prevented help output from being displayed
    • Fixed a bug that could cause a debugging console to be spammed with NullPointerExceptions
    • DayJobs now requires the server-side version of Spout
    Version 1.0

    • Initial release
    Bug reporting:

    If you encounter any bugs or errors while using this plugin, please report it ASAP. If at all possible, it is preferable that you use the issue tracker provided by GitHub. Just follow this link to open the issue tracker for DayJobs. Please be as detailed as possible about your issue, and use a service such as Pastie for including stack traces and debug output.​

    Any bugs reported on the forum will most likely be addressed, eventually. But I will guarentee a quick response time for anything submitted to the issue tracker on GitHub.​

    Donating

    Like this plugin? Then consider donating! Not only will donations help keep this plugin active and alive, but for every $100 in donations I receive, I will guarantee a new release packed full of awesome new features. That's not to say I won't do releases otherwise, you don't have to worry about that. But for every $100 I'll drop whatever I'm doing and pump out a new version as fast as I possibly can! Interested? Click here to donate.

    Follow Daybreak Studios on Twitter! See updates, news, and other information related to Daybreak Studios as it happens. Also, I tend to get a bit bored while I'm working, so you can always feel free to watch me talk to myself as I work :p
     
    Fengi, Retaks, Parideis and 1 other person like this.
  2. Offline

    nichiatu

    Thanks for your reply :)

    I love the plugin btw, it's very convenient and nice for what I'm doing. And as you're saying it may be because Towny handles the block break event before your plugin. I'm just hoping it won't affect how the server runs, though.
     
  3. Offline

    Sich

    Hello,

    I am interesting with your plugin, but I am using PermissionsEx... Do you have any idea for the moment when you will publish this 2.1 relase ?

    Thanks :)

    Sich
     
  4. Offline

    LartTyler

    @Sich
    I had hoped for a release by Sunday night, but I'm not sure if I'll be able to make that. Been having some personal issues here, so I haven't had as much time to code 2.1 as I'd hoped. I'll release as soon as I possibly can.
     
  5. Offline

    Sich

    ok thanks, take your time :)
    Your are still working on your plugin, it's the most important thing !
     
  6. Is there a way to make it so players can choose their first job without having to request it... I don't want to check the ticket file everytime a player wants to change from jobless to a real job....
     
  7. Offline

    LartTyler

    @Abdulaziz Zaatut
    I actually thought about that the other day. I plan on adding an option to allow a players first job change to be instantaneous. This will, of course, be able to be disabled for those who do not want the feature. You can expect the option to be in version 2.1.
     
  8. Thanks. It makes more sense having a chance to pick your first job. Then everytime a player wants a different job he can request it OR can you make it so he can also pay an amount to change it.
     
  9. Offline

    ulumulu1510

    this sounds awesome.It does works without any permissions, right? And do it work with 1240?
    Would be very nice.;)
     
  10. Offline

    LartTyler

    @ulumulu1510
    It works using MC's default Op status, yes. Anything listed under the dbstudios.dayjobs.admin permission node is an Op only command. Every feature will be available without permissions of any kind.

    As for 1240, I have yet to test it, but it should work just fine. Version 2.1 will officially support 1240 1317, but 2.0 should work just fine. Let me know if you encounter any issues with it, and I'll fix them immediately.

    Edit: 2.1 will support the latest Bukkit build, 1317, that was released October 10th, rather then 1240.
     
  11. Dual jobs maybe? Like make it so a player can get a second job if he has the amount configured?
     
  12. Offline

    LartTyler

    @Abdulaziz Zaatut
    I'm already looking into dual jobs, or more accurately allowing a configurable number of jobs. For example, you could allow 2 jobs, yes, or 20, it'll be up to the owner to decide that. Unfortunately, it will take a near complete rewrite of how the job system works at the moment. I'm willing to do that, and I plan on doing it as well, but it won't be in version 2.1, I'm sorry.
     
  13. Offline

    hanfbruder01

    Hey this plugin is very useful :D
    i have waited for this a long long time
    BUT
    For the plugin i need a function with "can-not-break" or "can-not-place" etc.

    do you think that this will be come with the next updates?
    and how long will this take?
     
  14. Offline

    LartTyler

    @hanfbruder01
    I won't be adding can-not-x, but I will be adding exceptions. For example, if you have a can-place that looks like:
    Code:
    can-place:
        - ALL
        - -OBSIDIAN
        - -TNT
        - -LAVA
    
    it will prevent an item with a minus sign in front of it. That will apply to all can-x nodes.
     
  15. Offline

    Werzieq

    Is there a can-craft function?
     
  16. Offline

    LartTyler

    @Werzieq
    Please read the original post. A can-craft option was added in version 2.0.
     
  17. Offline

    Werzieq

    Never saw it in the example configs thats why :/
     
  18. Offline

    LartTyler

    @Werzieq
    I understand, I believe I did leave it out of the most recent config file. I apologize for the slightly curt response, it was ver late when I wrote that and I was slightly frustrated over the changes in the newest Bukkit release.
     
  19. Offline

    Werzieq

    Don't worry :p

    Just 1 suggestion:(actually 2)
    How about the ability to grant certain jobs a permission node?

    For example
    permission-nodes:
    - herosneak.sneak

    will allow the users that have that job the ability to /sneak

    and also maybe configurable prefixes?
     
  20. Offline

    LartTyler

    @Werzieq
    I'm not too sure about the granting permission nodes. I know it's possible, but I would have to look into it. I don't think it will be in 2.1, but I will definitely add it to my list of things to do.

    As for prefixes, for those who downloaded and are using v2.0, there was a small spoiler in the release archive regarding prefixes and chat :p The feature I had planned will not be in 2.1, since I'm trying to get a release out quickly in order to keep up with the latest Bukkit release, but it will be the main focus of 2.2.
     
  21. Offline

    esk17

    How do i know what the codes of the items are?
     
  22. Offline

    LartTyler

  23. Well all I can say is that your doing a great job with this plugin. This gives minecraft the sense of teamwork that I always wanted my players on my server to do. This + the levels plugin changes minecraft big time and makes it interesting! Keep up the great work Tyler!
     
  24. Offline

    thedark54

    Hello, The update comes out when? ty
     
  25. Offline

    LartTyler

    I had been planning a release a week ago, but then Bukkit updated... The newest update broke the Configuration system that I was using to read data from the various yml files in the configuration directory. I can't release until I have this fixed. I'm hoping to have something worked out by the end of the week.
     
  26. Offline

    PDemon

    Cactus kills faster now why
     
  27. Offline

    LartTyler

    @PDemon
    Unless you've configured it to do more damage in config.yml, then any change in damage is not being caused by my plugin.
     
  28. Offline

    PDemon

    Would the fire damage in the config make the cacti do more damage ?
     
  29. Offline

    LartTyler

    No, it would not. Or, shouldn't, I've never seen it happen. What version of Bukkit are you using?
     
  30. Offline

    PDemon

    At the moment it is 1317 and dayjobs 2.0 .. hmm i thought by removing the "Damages" text and fire and fall it would
    go back to game default but after removing dayjobs from the server it first then go back to truly normal
    with dayjobs and texts removed from the config, normal fall damage, high fire/fire dot damage, high cacti damage.
    hope it helps you find out somthing i missed

    EDIT ..This is a good Plugin just wanted that in here aswell :)
     
  31. Offline

    LartTyler

    I can't promise full or correct functionality for Bukkit builds I haven't tested. On 1185, I never encountered a problem like that. When Bukkit updated, they changed some methods in their API that could be causing certain features to malfunction. If that's the case, I will make sure that any such issues are resolves in the next version of my plugin, which will hopefully be out by the end of the weekend.
     

Share This Page