Inactive Jobs v2.0.1 - Jobs plugin for Minecraft (iConomy 4/5 & BOSEconomy, Permissions) [860]

Discussion in 'Inactive/Unsupported Plugins' started by flametornado, Apr 17, 2011.

Thread Status:
Not open for further replies.
  1. Offline




    Jobs - The Job plugin for Minecraft:
    Version: 2.0.1

    • iConomy 4/5 / BOSEconomy

    • Stats and Achievements
    • Permissions
    • MySQL
    A fully configurable plugin that allows you to get paid for breaking, placing and killing. Class based (experience increases as you perform your job).

    NOTE: Please read the comments in the configuration file thoroughly and check the console errors before posting here for help.

    [fire]IMPORTANT [fire]: If you want to upload your config for help, please do so using the forum's upload functionality.

    If you like this plugin, please donate.



    Thanks Samkio for the plugin tutorial video.

    Previous Versions (open)

    • Create your own custom jobs and choose what they get paid for and how much.
    • Leveling mechanic where higher level jobs will give higher incomes. Income earnt = experience gained.
    • Equation determining maximum experience, experience gained and income gained is customizable.
    • Customizable skill levels in the game to mark leveling milestones (fully customizable in the configuration file).
    • Your profession and skill level is part of your display name and whenever you talk everyone will know what you do and how good you are. (optional)
    • Stats of your maximum level in a job is saved if you have the stats and achievements plugin. ( for bragging rights) (optional)
    • Does periodic saving and save on player exiting the server.
    • Leaving a job resets your job level and experience to 0.
    • Permissions support.
    • Admin commands work even when the players are offline.

    I made a sourceforge account for this. It will allow you to report bugs and feature requests. It'll help me a lot to make sense of this.

    The link is

    Some rules before you go there:
    1. Please look through the bugs that have already been reported to see if someone else has already reported that bug. If you have any extra information, post it on the bug's comments. The more information I have, the easier it is for me to fix it and test it.
    2. Same as above for feature requests.

    /jobs browse -  View a list of the available jobs.
    /jobs join [job name] - Join the job.
    /jobs leave [job name] - Leave the job.
    /jobs info [job name] [break, place, kill] - view information about that job.
    /jobs stats - view your job level and experience needed to level up.
    /jobs fire [playername] [job] - fire the player from the specified job.
    /jobs employ [playername] [job] - employ the player into the specified job.
    /jobs promote [playername] [job] [levels] - promote the player in their job X levels.
    /jobs demote [playername] [job] [levels] - demote the player in their job X levels.
    /jobs grantxp [playername] [job] [experience] - grant the player X experience in the selected job.
    /jobs removexp [playername] [job] [experience] - remove X experience from the player in the selected job.
    /jobs transfer [playername] [oldjob] [newjob] - transfer the player's job (keeps levels and experience)
    NOTE: All job names are case sensitive.
    Permissions Nodes:
    jobs.join.<jobname> - allows the group to join the job. Where <jobname> is replaced with the job name (e.g. jobs.join.Woodcutter or jobs.join.* to join all jobs).<worldname> - allows players to get paid on selected world. - enables the fire admin command.
    jobs.admin.employ - enables the employ admin command.
    jobs.admin.promote - enables the promote admin command.
    jobs.admin.demote - enables the demote admin command.
    jobs.admin.grantxp - enables the grant experience admin command.
    jobs.admin.removexp - enables the remove experience admin command.
    jobs.admin.transfer - enables the transfer admin command.

    Version 2.0.2 WIP
    • Added more parameters to job level up (jobname, jobcolour, titlename, titlecolour, playername, playerdisplayname, joblevel)
    • Fixed promote and demote to correctly change the max exp.
    • job names are no longer case sensitive.
    • Changed the saving mechanism to be synchronous instead of asynchronous (may help with people losing jobs)
    • added config option of enable-pay-near-spawner in general config.
    • Fixed some NPE
    • Wolves killing things gives the player money and experience.
    • Fixed empty tags not resulting in errors.
    • fixed mysql password is all numbers.
    • fixed honorific error
    NOTE: This version is stable, but not fully tested. I will not release this version fully until i track down the jobs vanishing bug and destroy it for all the hassle it has cause me :p

    Version 2.0.1
    • Small bugfixes
    • Moved where the update stats command is called so it won't break anything if there's an error in it. Should also improve performance slightly
    • made the enabling of the stats and achievements plugin optional (configuration parameter in general settings
    • ChatColour can now be in any case and it'll still work.
    Version 2.o.0

    • Multiple jobs
    • Exposed equations
    • More customization
    • Can specify sub-class
    • Can specify job class kills.
    • Messages are customizable.
    • Kills with arrows works
    • Admin commands (work offline too)
    • Can disable payout on certain worlds (mainly for creative servers).
    • Can limit the number of jobs a player can have
    • Can limit the number of people that can have a certain job per server.
    • Better console error messages.
    • Plugin disables itself properly.
    Changelog (open)

    Version 1.3.3b and 1.3.2b
    • Killing works properly now. Drops seem to have gone back to normal levels and you can kill stuff and get paid for it all the time.
    • 1.3.3b is for iConomy 5 AND ONLY iConomy 5
    • 1.3.2b is for before iConomy 5 AND ONLY before iConomy 5
    Version 1.3.3

    • iConomy 5 support.
    Version 1.3.2

    • Removed annoying spam message which was for debugging and i forgot in for 1.3.1
    • Changed experience to be a double so people get experience for things less than 1. Saving mechanism still saves using integers, it would create waaaay too much fuss to change this since the database schema would need to be changed for everyone that used this plugin and it would render all previous saves incompatible. This seems like a decent compromise. People will lose a maximum of .99 exp when they log out.
    • Better method for checking when an animal's dead, should fix the weird animation problem and the lack of drops some people have been experiencing.
    Version 1.3.1

    • Killing near mob spawners will not give you money anymore.
    • Displays payment amount when you do /jobs info for killing now too.
    • Changed way that you create kill tags incode. Results in the system crashing and the plugin not being enabled if you got the wrong name (e.g. capitals or misspelt name)
    Version 1.3.0

    • Killing stuff should work now. This section is not as thoroughly tested, but should work fine.
    • No jobs have been made with killing stuff, you're on your own with the configuration for a while but the template section has been updated, it follows the same pattern as break and place.
    Version 1.2.3 - Bugfix update

    • changed priority to make sure it gets run last (to make the following points work properly)
    • checks if you can place a block or if the event is canceled by another plugin. Done to avoid people getting rick very easily by placing blocks in areas they are not allowed.
    • Fix for players not getting removed properly in the onDisable function which results in weird names when people reload their plugins.
    Version 1.2.2

    • The titles will now take into account any previous modifications to your display name by another plugin and simply tack on the title at the front (and when you change jobs, strip it from your title and tack a new title at the front).
    Version 1.2.1

    • Base experience is now configurable
    • experience multiplier is not configurable (for those who want lower economies). If you want to give 0.2 of your currency to per item, then set the multiplier to 10.
    Version 1.2.0

    • A little code cleanup.
    • Permissions support
    • customizable flat rate pay
    • customizable skill titles.
    Version 1.1.2

    • Cleaned up sql commands more to make them more specific and avoid errors as much as possible. Hard to test this since neither my testing server and my proper server have any problems seen by other people.
    • Fixed the system to work with /reloadall command. The experience was still being saved, you just needed to log out. I didn't even know that this command existed, so i never thought i'd have the plugin enable with people in the server. It now takes that into account and online users will not need to log out to see their stats and work on their jobs.
    Version 1.1.1 [fire] RECOMMENDED [fire]

    • Cleaned up SQL commands to be more exact, should result in less errors.
    • New configuration for what kind of prefix to add to the username (job, skill level, both or none).
    • New configuration to toggle the option of broadcasting messages when users reach the next skill level.
    • [Stats & Achievements] - further integration, this plugin now also adds the iConomy money amount to the stats table. (will always be 1 block behind)
    • URGENT FIX - tables were not getting cleared and players ended up having multiple jobs with multiple levels instead of one job and one set of levels. Code written to auto correct this.
    Version 1.1.0

    • Added BOSEconomy integration. This should be automatically detected.
    • Added flatfile functionality for server admins who don't want to use mysql.
    • EXPERIMENTAL : Added sqlite functionality, I sadly couldn't get sqlite to work properly on my testing machine so i haven't tested it. It should work though.
    Version 1.0.1

    • Small fix on /jobs stats command. It now rounds off the two decimal places and is less annoying to look at when it gives you the price for placing/destroying a block
    Version 1.0

    • Initial build, spent the weekend on it, pretty satisfied with it, added all mentioned functionality.


    See sourceforge for requested features and bugs.
  2. Offline


  3. Offline


    @Juze lol at the :mad:! I use, If you have a site you get unlimited (i think) uploads!
  4. Offline


    I re-uploaded the link with mediafire
  5. Offline


    I noticed. I was just saying it was funny :mad:
  6. Offline


    It would be really awesome if you could do something like Assassin that would be paid to kill people... Or knights, paid to win fights in arenas... and stuff like that! :D
  7. Offline


    does this work with BOSEconomy too or just iconomy? because I use BOSEconomy and this is something I would like to have on my server
  8. Offline


    currently only iConomy, but making it handle BOSEconomy should be trivial and i'll do it soon.

    It would be, but the problem with that is that the job assassin would have to be hard coded in. For something like that i would really recommend HeroBounty. It's a great plugin and fits that job perfectly. I might look to integrate HeroBounty in later.

    As for knights and arenas, while cool would require a large amount of code because you have to first declare the area as an arena, set command or ways to spawn mobs/ bring players in, which probably needs a plugin on it's own. I might make this plugin later if enough people would like it. It seems pretty fun :).
  9. Offline

    Torrey Leonard

    This is an AWESOME plugin, my economy server needs this, usually we use other ones but everyone has stupid CITIZEN prefixes.... Maybe more examples of jobs or suggestions of them would be good, I'm not the job creator on the server and we've run dry.

    Good thing is people wont bug me for jobs anymore! :D

    Whenever users use /jobs it works but joining a job says an internal server error has occured...
  10. Offline


    Wierd, I'll try fix it now. Do you have the stats plugin?

    I tried without Stats, Do you have Mysql installed and have it properly configured from the configuration.yml?
  11. Offline


    im getting this error on my console when trying to join a job

    00:41:54 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'jobs
    ' in plugin Jobs v1.0.1
    at org.bukkit.command.PluginCommand.execute(
    at org.bukkit.command.SimpleCommandMap.dispatch(
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    at net.minecraft.server.NetServerHandler.c(

    at net.minecraft.server.NetServerHandler.a(
    at net.minecraft.server.Packet3Chat.a(SourceFile:24)
    at net.minecraft.server.NetworkManager.a(
    at net.minecraft.server.NetServerHandler.a(
    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    at net.minecraft.server.MinecraftServer.h(
    Caused by: java.lang.NullPointerException
    at org.bukkit.command.PluginCommand.execute(
    ... 12 more

    Any ideas??
  12. Offline


    Do you have MySQL installed and the configuration.yml properly configured to your username and password?
  13. Offline


    no sorry my bad... noob mistake... working fine now thanks :D
  14. Offline


    Great Plugin.
    But all those itemnames are giving me a hard time.
    Arent all Blocks suported? For example jukebox?
    when i type JUKEBOX nothing happens. With JUKE_BOX the same.
    Same with noteblock or the pressure plates
    I dont get it. Wouldnt it be easier just to use the Item IDs?
    Or is there a List how the Names are spelled correctly?
    When i search for it i only come up with lists of Item ID but the Names are always written normal.
  15. Offline


    JUKEBOX worked fine for me, did you leave a space between the ":" and the value?

    YML is fickle about things like that. I'll put up a list of all material names, which is what the plugin uses.
  16. Offline


    Thanks sorted it out. :)
    Works only with flatfile for me though. I typed in my MySQL db/pw/un 3 Times to be sure.
    I can see all Jobs and when i join one it says that i joined. But when i type /jobs stats it says that i dont have a Job.
    And with Flatfile everytime i log out and back in, the Job and lvl prefix in chat is gone.
    But i like your Plugin and the people on my Server like it too. Ill definetly will use this in the Future. :)
  17. Offline


    That's really strange, I'll get right on fixing that.
    On the mysql side, the only thing i can think of is if you have the database url in a different place or mapped to a different port. If you could give me a stack trace of the problem i'll try my best to fix it.
    I also tried flatfile and it worked fine for me, everything saved properly and the prefix in chat was there.

    One thing i can think of that would lead to that problem is the plugin not having access to write to disk in that particular folder, try creating an empty file int the Jobs folder and giving it write permission for everyone.
  18. Offline


    When i look in my mysql database there is a entry called Jobs. I supose it wouldnt be there if i had done something wrong?
    I have a rented Server and the Database is on the same Server as my MC i suppose. Other Plugins which use mysql work fine for me.
    And i gave the write perms for everyone. Still no change.

    Did some further testing.
    When i have sql active and type "/jobs join miner" I get the message that i joined the Job.
    But the Serverlog shows this:

    2011-04-20 16:42:52 [SEVERE] java.sql.SQLException: Column count doesn't match value count at row 1
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.SQLError.createSQLException(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.MysqlIO.checkErrorPacket(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.MysqlIO.checkErrorPacket(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.MysqlIO.sendCommand(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.ConnectionImpl.execSQL(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeInternal(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeUpdate(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeUpdate(
    2011-04-20 16:42:52 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeUpdate(
    2011-04-20 16:42:52 [SEVERE]     at
    2011-04-20 16:42:52 [SEVERE]     at
    2011-04-20 16:42:52 [SEVERE]     at org.bukkit.command.PluginCommand.execute(
    2011-04-20 16:42:52 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(
    2011-04-20 16:42:52 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    2011-04-20 16:42:52 [SEVERE]     at net.minecraft.server.NetServerHandler.c(
    2011-04-20 16:42:52 [SEVERE]     at
    2011-04-20 16:42:52 [SEVERE]     at net.minecraft.server.NetServerHandler.a(
    2011-04-20 16:42:52 [SEVERE]     at net.minecraft.server.Packet3Chat.a(SourceFile:24)
    2011-04-20 16:42:52 [SEVERE]     at net.minecraft.server.NetworkManager.a(
    2011-04-20 16:42:52 [SEVERE]     at net.minecraft.server.NetServerHandler.a(
    2011-04-20 16:42:52 [SEVERE]     at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    2011-04-20 16:42:52 [SEVERE]     at net.minecraft.server.MinecraftServer.h(
    2011-04-20 16:42:52 [SEVERE]     at
    2011-04-20 16:42:52 [SEVERE]     at
  19. Offline


    I always get the following exception if a player quits without being in a job
    (the same thing happens if I use MySQL)

    15:40:56 [SEVERE] java.lang.NullPointerException
    15:40:56 [SEVERE] at
    15:40:56 [SEVERE] at
    15:40:56 [SEVERE] at
    15:40:56 [SEVERE] at$2.execute(
    15:40:56 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(
    15:40:56 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(
    15:40:56 [SEVERE] at net.minecraft.server.ServerConfigurationManager.c(
    15:40:56 [SEVERE] at net.minecraft.server.NetServerHandler.a(
    15:40:56 [SEVERE] at net.minecraft.server.NetworkManager.a(
    15:40:56 [SEVERE] at net.minecraft.server.NetServerHandler.a(
    15:40:56 [SEVERE] at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    15:40:56 [SEVERE] at net.minecraft.server.MinecraftServer.h(
    15:40:56 [SEVERE] at
    15:40:56 [SEVERE] at


    It would be great if you could add a property, with that I can decide if the jobname should be displayed in the chat or not.
  20. Offline


    New update wont work for me.
    When i use Mysql i get this error (i double checked my username is right):

    2011-04-20 19:52:05 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'username' in 'field list'
    2011-04-20 19:52:05 [SEVERE]     at sun.reflect.GeneratedConstructorAccessor112.newInstance(Unknown Source)
    2011-04-20 19:52:05 [SEVERE]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    2011-04-20 19:52:05 [SEVERE]     at java.lang.reflect.Constructor.newInstance(Unknown Source)
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.Util.handleNewInstance(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.Util.getInstance(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.SQLError.createSQLException(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.MysqlIO.checkErrorPacket(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.MysqlIO.checkErrorPacket(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.MysqlIO.sendCommand(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.ConnectionImpl.execSQL(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeInternal(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeUpdate(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeUpdate(
    2011-04-20 19:52:05 [SEVERE]     at com.mysql.jdbc.PreparedStatement.executeUpdate(
    2011-04-20 19:52:05 [SEVERE]     at
    2011-04-20 19:52:05 [SEVERE]     at
    2011-04-20 19:52:05 [SEVERE]     at org.bukkit.command.PluginCommand.execute(
    2011-04-20 19:52:05 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(
    2011-04-20 19:52:05 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    2011-04-20 19:52:05 [SEVERE]     at net.minecraft.server.NetServerHandler.c(
    2011-04-20 19:52:05 [SEVERE]     at
    2011-04-20 19:52:05 [SEVERE]     at net.minecraft.server.NetServerHandler.a(
    2011-04-20 19:52:05 [SEVERE]     at net.minecraft.server.Packet3Chat.a(SourceFile:24)
    2011-04-20 19:52:05 [SEVERE]     at net.minecraft.server.NetworkManager.a(
    2011-04-20 19:52:05 [SEVERE]     at net.minecraft.server.NetServerHandler.a(
    2011-04-20 19:52:05 [SEVERE]     at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    2011-04-20 19:52:05 [SEVERE]     at net.minecraft.server.MinecraftServer.h(
    2011-04-20 19:52:05 [SEVERE]     at
    2011-04-20 19:52:05 [SEVERE]     at
    sqlite doesnt work for me too.
    And with flatfile everytime i reload the plugins ingame with "/reloadall" my job and ep is lost.
  21. Offline


    Ok, my problem seems to be fixed in the new version (1.1.2).
  22. Offline


    Flatfile works good now.
    MySQL still wont work for me. I even deleted the Table in the Database. But the new one wont work either.
    I think ill just stick to flatfile.
  23. Offline


    is possible add more items?for example milk,porkchop,feather,sulphur,leather ecc,
    for creare class of farmer of animals
    thanks for all
  24. Offline


    I can, but it's easily abusable since the only way you can do that is to get paid when you pick things up. Therefore it's easier to throw items out of your inventory and then pick them back up.

    If notch or bukkit ever changes the way blocks are to give them an owner, then maybe this can be put in, otherwise it's too easily abusable and for balancing reasons I probably won't concentrate on putting it in the plugin.
  25. Offline


    Is it possible to make an option to rename the titles?... "Apprentice Woodcutter DanishDragon" is a very long name, if i want a [ADMIN] in it as well xD

    I just want something shorter than Apprentice :p
  26. Offline


    I know, it was getting slightly annoying for me too. I was thinking of making the skill levels customizable. That way you could make your own custom ones and at different levels. I'll probably do this in the next update, probably over this weekend when i have some free time.

    I couldn't quite make up my mind on making the skills class specific or if I should make them global. Class specific would mean you could have shorter names but global would be easier to code up and more consistent.

    Any opinions on the matter would be appreciated.
  27. Offline


    a classname like killer or assasin?

    they grant exp and money by killing others players, but they can kill one time the same player every 20 minutes ( so it can prevent farming of money ).

    we have some problem when we try to modify some jobs.. plugins fails even if it loads without any error, when u modify name of jobs or some value plugin go crazy :D

    we found the BUG:

    if u modify something, all block u destroy system gave u 1 coin and 0 exp even if u are woodcutter and break dirt u gain 1 coin and 0 exp and 4 every all blocks same thing!..

    also if u put

    LOG: 0.2 nothing works
  28. Offline


    Money for crafting stuff.
            DIAMOND_HELMET: 50.0
            DIAMOND_SWORD: 20.0
    Raspberry likes this.
  29. Offline


  30. Offline


    Iwas just about to post the same thing. i think it's a great idea
Thread Status:
Not open for further replies.

Share This Page