MC Jobs
Welcome to MC Jobs
MC Jobs was created to pick up where jobs left off. These jobs earn you money for your server economy. There are 20 default jobs that are customizable along with the ability to create your own custom jobs.

ANNOUNCEMENTS Updated 10/2019
Hello guys,
several years have passed since the last update here. But now i will be change it. Me , Bl4ckSkull666 ( old name Papaharni or Papi too ), work now on the plugin to update it to the newest version of minecraft.
What's currently done? I added 2 new job groups. reworked few job groups.Reworked the jobs. Moved Database from old cache system to read friendly yaml/mysql support. Added Multilanguage support. That mean you can translate language file in multiple language and let your user select the language. You set default language in configuration, but the user can change it to a available language for him self.
Hmmm okay, whats new too? You can, currently only manual in the job files add a region and message that the player displayed on enter this region. The message can be a string with | for new line. Or use spigot message, if you use a spigot server, In Spigotr message u can build buttons and much more. And new is the NPC message, the message is same like on region, but it can be different messages. It can be activate on click the npc. To work set a sign with [mcjobs] in line 1 and in line 3 the jobnname below till 7 blocks on the npc. Users can now click it to see the message. Other one is the free Signs. For Description please read THIS
If you have a question, need help or will be report a error. please use the Discussion Thread ONLY . Thank you!
Sincerely,
Bl4ckSkull666
B,t,w, please use the new GitHub source ---> https://github.com/Bl4ckSkull666/McJobs/
ANNOUNCEMENTS Updated 04/2015
So another year somehow has slipped by without being able to work on this project. So I have added PapaHarni to help keep the project going. Hopefully he can quickly get the codebase up to the latest Bukkit release. Welcome Papi.
![]()
I have also decided to release source on Github. If you want to fork or view the source feel free: https://github.com/RathelmMC/MC-Jobs
MC Jobs has been spotlighted by Curse gaming. Read the article here. Show your support for MC Jobs by commenting on the article.
What's New in 3.1
- Cleaned up leveling system.
- Added carpenter job.
- Added a considerable number of nodes to the english.yml file.
- Split the config.yml. Created a jobs.yml to hold the jobs.
- Lots of bug fixes.
- Danish language file - v3.1.2
What's New in 3.0
- Added leveling. You can now level in jobs and your pay scale is affected accordingly.
- Admin defined ranking system to leveling in the config.yml file.
- Group based max jobs. Use your permission groups to define how many jobs a player can have.
- Swedish language file.
Requirements
There are no hard dependencies. MC Jobs can work out of the gate unchanged.
If you want to pay in money you need an economy bridge!
Register 1.6 or higher or Vault 1.2.13 or higher are needed.
Description
You have developed great shops with a shop mod or you use citizens as NPC shopkeepers, you have a repair shop, or you have a block protection system that uses an economy. But that begs the question "How do you pay your players?" Well you could just give them money, but what fun is that? That's where MC Jobs comes in. It's a full fledged player job mod where you choose how much they get paid and for what activities and they can earn money by doing those tasks. It's fully customizable by server admins, but for those of you that just wish to plug and play it has 20 built in jobs that covers about 90% of the blocks and entities in the game. Remember:
If you need cash get a job!
Features
- Ability to join or leave jobs
- Obtain higher levels in jobs to earn more.
- Charge or pay players for doing actions on the server by default. You want TNT to cost to use. You can! It's in Taxes.
- Earn XP through jobs by default.
- Earn money through jobs using any of the economy plugins
- Ability to edit, create or delete jobs in the config.yml file
- Multi World support
- WorldGuard region support
- Utilizes craftbukkit's built in Materials List
- Uses craftbukkit's built in Entity Type List
- Uses custom Potion List
- Uses custom Enchant List
Commands
/mcjobs = Allows all the user commands such as joining and leaving a job. /jobs = Alias of /mcjobs /mcjobsadmin = Allows the administrative commands. Reloads the addon or gives/takes a specific job from an online player or group if using Vault. Options are: reload, defaults, add player/group job, remove player/group job, list player/group. /jadm = Alias of /mcjobsadmin
Instructions
Installing is simple. Copy mcjobs.jar into your worlds plugin folder and restart or reload your server. Players can then join up to three jobs (modifiable in config.yml). To join use /jobs join job_name . The default jobs are:
- alchemist
- armorer
- baker
- brewer
- builder
- carpenter
- conjurer
- digger
- enchanter
- farmer
- fisherman
- hunter
- miner
- soldier
- theurgist
- tinkerer
- toolmaker
- weaponsmith
- woodsman
- bulldozer - default job
- taxes - default job
You can then leave a job with /jobs leave job_name . To learn more about each job type /jobs job_name . Feel free to check out the forums for more info!
Permissions
- mcjobs.jobs.all:
- description: Allows the player to use all user jobs commands.
- default: false
- children:
- mcjobs.jobs.join: true
- mcjobs.jobs.leave: true
- mcjobs.jobs.list: true
- mcjobs.jobs.info: true
- mcjobs.admin:
- description: Allows the use of the /jadm command.
- default: op
- mcjobs.admin.leavedefault:
- description: Allows a player to leave a default job.
- default: op
- mcjobs.admin.defaults:
- description: Allows the use of /jadm defaults to restore config.yml.
- default: op
- mcjobs.jobs.join:
- description: Allows player to join jobs.
- default: false
- mcjobs.jobs.leave:
- description: Allows player to leave a job. Should be used in conjunction with join.
- default: false
- mcjobs.jobs.list:
- description: Allows the player to use /mcjobs list.
- default: false
- mcjobs.jobs.info:
- description: Allows player to use /mcjobs job_name for info.
- default: false
- mcjobs.jobsavail.all:
- description: Allows the player to join all jobs.
- default: false
- children:
- mcjobs.jobsavail.digger: true
- mcjobs.jobsavail.miner: true
- mcjobs.jobsavail.builder: true
- mcjobs.jobsavail.soldier: true
- mcjobs.jobsavail.woodsman: true
- mcjobs.jobsavail.tinkerer: true
- mcjobs.jobsavail.farmer: true
- mcjobs.jobsavail.toolmaker: true
- mcjobs.jobsavail.weaponsmith: true
- mcjobs.jobsavail.armorer: true
- mcjobs.jobsavail.fisherman: true
- mcjobs.jobsavail.baker: true
- mcjobs.jobsavail.alchemist: true
- mcjobs.jobsavail.enchanter: true
- mcjobs.jobsavail.brewer: true
- mcjobs.jobsavail.theurgist: true
- mcjobs.jobsavail.conjurer: true
- mcjobs.jobsavail.carpenter: true
- mcjobs.world.all:
- description: Allows the player to earn money and xp in all worlds.
- default: false
- mcjobs.paycreative:
- description: Pays a player even if they are in creative mode.
- default: false
Help
GitHub
https://github.com/RathelmMC/MC-Jobs
Download
Download here the last version of McJobs.
Wall of Servers
You use McJobs on your server/network? PM me ( Bl4ckSkull666 ) with the URL of your server to add it here :-)
Donations ( old )
If you're feeling generous or want to give me a beer. Mmmm... Beer.
Total Money Donated to MC Jobs: $49.50 US
Approximate Downloads: 120,000
Dollars per Download: $0.0004125

-
View User Profile
-
Send Message
Posted May 2, 2012@DocHarley
Yeah all this stuff is taking a lot longer than I anticipated, but the next release will have some really cool new features.
-
View User Profile
-
Send Message
Posted May 1, 2012@RathelmMC
Job leveling sounds very interesting! Will we be able to adjust the speed of progression from one level to the next, and the multiplier assigned to each level?
That combined with a level reset upon leaving a job would solve the problem handily indeed. :)
-
View User Profile
-
Send Message
Posted May 1, 2012@AvariceSyn
The only thing that I've seen that has caused that error is when a player does a break or place in a world that doesn't have LogBlock logging turned on. I'll check to see if there's a WorldEdit issue as well and if there is some weird WorldEdit tweak that I would need to do.
With that said, the next version of MC Jobs will better handle LogBlock failing. Also I will add HawkEye support too so you can use one or the other.
@DocHarley
I plan on adding a job leveling system here soon. I have the ground work going in right now. So when you first get a job it will pay 1/2 to 1/4 of what it pays right now and you'll have to level up to the current pay scale. This should dis-incentivize switching jobs all the time because I plan on having level resets on job leaves.
However to address your issue for right now. If you're using a permission system you could just remove people's permission to leave jobs if they abuse the current system.
-
View User Profile
-
Send Message
Posted May 1, 2012Is it possible to add a cool down such that a player cannot switch his or her job/jobs on demand? As it stands, a player can simply switch their job to whatever they happen to be doing at the moment, meaning they get paid for pretty much everything.
-
View User Profile
-
Send Message
Posted May 1, 2012I believe this is caused by players using the worldedit superpickaxe, or perhaps TreeCutter. http://pastebin.com/qyjik0ve
-
View User Profile
-
Send Message
Posted Apr 30, 2012@Toffer
If you're asking about you only want to allow 10 soldiers, for example, no there isn't that kind of limit. However in the next version there will be per job based permissions so you could theoretically limit them by groups with a permission mod.
-
View User Profile
-
Send Message
Posted Apr 30, 2012Heya RathelmMC,
Is there a way to limit the amount of each job that is allowed? I don't see the option there, but I could be overlooking it. :)
-
View User Profile
-
Send Message
Posted Apr 30, 2012@twisted420mc
You have to make sure that you're using LogBlock 1.5.2 not 1.4.1. Also you have to make sure that the world that the player is in, is being logged for Block Breaks and Block Places. The next version will check to make sure that both cases are true so it doesn't crash the server.
-
View User Profile
-
Send Message
Posted Apr 29, 2012i was using this plugin and when i added logblock it went insane and crashed my server several times.
2012-04-28 15:04:09 [SEVERE] Could not pass event BlockBreakEvent to mcjobs org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager.java:220) at net.minecraft.server.ItemInWorldManager.dig(ItemInWorldManager.java:105) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:537) at net.minecraft.serverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:114) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.serverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:83) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException
i only know this was caused by logblock because as soon as i removed it, the errors and crashes stoped.
-
View User Profile
-
Send Message
Posted Apr 29, 2012@rebel24
It'll be in the next build, but that build is currently half working so it's going to be a week before it's done. In the mean time I'd turn on logging of at least break and place on all the worlds, or if you can't do that you can down grade MC Jobs.
-
View User Profile
-
Send Message
Posted Apr 29, 2012@RathelmMC
Please can you sort the check to disable on a world that logblock isn't logging soon?
-
View User Profile
-
Send Message
Posted Apr 29, 2012@BioRage
I keep mulling over the thought of adding a cost to join and leave jobs, but the incentive to stay in a job is going to be the leveling system that I have planned to add.
-
View User Profile
-
Send Message
Posted Apr 29, 2012Suggestion:
Add a price via iConomy when changing or swapping jobs?
-
View User Profile
-
Send Message
Posted Apr 29, 2012@rebel24
Did you check the LogBlock config file to make sure that Breaking and Placing blocks is actually being logged? You have to tell it what events to log. However as to your point about the Null Pointer Exception. I will fix that so the error doesn't come up and for it to give a more user friendly error message.
Also what's your time_interval: value?
EDIT AGAIN: The only way I can get this error to pop up is by turning off the logging to whatever world I am in. Are you using a custom world? If so just double check and make sure that in the config file there is logging for the world you are in for now. I'll work on a fix to not check when in a world there is no logging for.
-
View User Profile
-
Send Message
Posted Apr 29, 2012@RathelmMC
17:24:53 [SEVERE] Could not pass event BlockBreakEvent to mcjobs java.lang.NullPointerException at de.diddiz.LogBlock.QueryParams.getTable(QueryParams.java:124) at de.diddiz.LogBlock.QueryParams.getQuery(QueryParams.java:109) at de.diddiz.LogBlock.LogBlock.getBlockChanges(LogBlock.java:293) at com.dmgkz.mcjobs.listeners.BlockBreak.blockBreak(BlockBreak.java:87) at sun.reflect.GeneratedMethodAccessor171.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:461) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager.java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at net.minecraft.serverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:114) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.serverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:83) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:85) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:622) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:506) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Updated, and it's still doing it. Can you sort this please?
-
View User Profile
-
Send Message
Posted Apr 29, 2012@sekicz
If you're using the built in bukkit permissions you should switch usePerms: true to usePerms: false
The usePerms is more for if you're using PermissionsEX or one of the other permissions mods.
-
View User Profile
-
Send Message
Posted Apr 29, 2012-
View User Profile
-
Send Message
Posted Apr 28, 2012@rebel24
You have to use the Dev build of LogBlock (1.5.2) not the 1.4 version that is at the Bukkit website.
-
View User Profile
-
Send Message
Posted Apr 28, 2012I'm getting:
01:09:22 [SEVERE] Could not pass event BlockBreakEvent to mcjobs java.lang.NullPointerException at de.diddiz.LogBlock.QueryParams.getTable(QueryParams.java:124) at de.diddiz.LogBlock.QueryParams.getQuery(QueryParams.java:109) at de.diddiz.LogBlock.LogBlock.getBlockChanges(LogBlock.java:293) at com.dmgkz.mcjobs.listeners.BlockBreak.blockBreak(BlockBreak.java:87) at sun.reflect.GeneratedMethodAccessor166.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:461) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager.java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at net.minecraft.serverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:114) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.serverhook.NetServerHandlerProxy.a(NetSe Any idea?
-
View User Profile
-
Send Message
Posted Apr 28, 2012@sekicz
Make sure you have Register 1.6 or higher, not 1.5. Next switch payment_type: xp to payment_type: money and payment_mod: none to payment_mod: register.