mirror of
https://github.com/Zrips/Jobs.git
synced 2024-12-30 21:07:48 +01:00
GUI and 1.7 support
This commit is contained in:
parent
254900c79a
commit
43abccf7d7
1
com/gamingmesh/jobs/.gitignore
vendored
1
com/gamingmesh/jobs/.gitignore
vendored
@ -5,3 +5,4 @@
|
||||
/PlayerManager.class
|
||||
/Jobs$1.class
|
||||
/PlayerManager$1.class
|
||||
/NMS.class
|
||||
|
@ -19,6 +19,7 @@ import com.gamingmesh.jobs.container.Job;
|
||||
import com.gamingmesh.jobs.container.JobInfo;
|
||||
import com.gamingmesh.jobs.container.JobProgression;
|
||||
import com.gamingmesh.jobs.container.JobsPlayer;
|
||||
import com.gamingmesh.jobs.i18n.Language;
|
||||
import com.gamingmesh.jobs.stuff.TranslateName;
|
||||
|
||||
public class GuiTools {
|
||||
@ -70,7 +71,7 @@ public class GuiTools {
|
||||
|
||||
for (JobProgression onePJob : pJobs) {
|
||||
if (onePJob.getJob().getName().equalsIgnoreCase(job.getName()))
|
||||
Lore.add(ChatColor.translateAlternateColorCodes('&', "&2Working "));
|
||||
Lore.add(Language.getMessage("command.info.gui.working"));
|
||||
}
|
||||
|
||||
int maxlevel = 0;
|
||||
@ -80,23 +81,34 @@ public class GuiTools {
|
||||
maxlevel = job.getMaxLevel();
|
||||
|
||||
if (maxlevel > 0)
|
||||
Lore.add("Max level: " + maxlevel);
|
||||
Lore.add(Language.getMessage("command.info.gui.max") + maxlevel);
|
||||
|
||||
if (ConfigManager.getJobsConfiguration().ShowTotalWorkers)
|
||||
Lore.add(Language.getMessage("command.browse.output.totalWorkers").replace("[amount]", String.valueOf(job.getTotalPlayers())));
|
||||
|
||||
if (ConfigManager.getJobsConfiguration().useDynamicPayment && ConfigManager.getJobsConfiguration().ShowPenaltyBonus)
|
||||
if (job.getBonus() < 0)
|
||||
Lore.add(Language.getMessage("command.browse.output.penalty").replace("[amount]", String.valueOf((int) (job.getBonus() * 100) / 100.0 * -1)));
|
||||
else
|
||||
Lore.add(Language.getMessage("command.browse.output.bonus").replace("[amount]", String.valueOf((int) (job.getBonus() * 100) / 100.0)));
|
||||
|
||||
Lore.add(job.getDescription());
|
||||
|
||||
if (job.getMaxSlots() != null)
|
||||
Lore.add("Left slots: " + (job.getMaxSlots() - Jobs.getUsedSlots(job)));
|
||||
Lore.add(Language.getMessage("command.info.gui.leftSlots") + ((job.getMaxSlots() - Jobs.getUsedSlots(job)) > 0 ? (job.getMaxSlots() - Jobs.getUsedSlots(job)) : 0));
|
||||
|
||||
Lore.add("");
|
||||
Lore.add("Posible actions");
|
||||
Lore.add(Language.getMessage("command.info.gui.actions"));
|
||||
for (ActionType actionType : ActionType.values()) {
|
||||
List<JobInfo> info = job.getJobInfo(actionType);
|
||||
|
||||
if (info != null && !info.isEmpty()) {
|
||||
Lore.add(ChatColor.translateAlternateColorCodes('&', "&e" + actionType.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
Lore.add("");
|
||||
Lore.add(Language.getDefaultMessage("command.info.gui.leftClick"));
|
||||
Lore.add(Language.getDefaultMessage("command.info.gui.rightClick"));
|
||||
|
||||
ItemStack GuiItem = job.getGuiItem();
|
||||
|
||||
ItemMeta meta = GuiItem.getItemMeta();
|
||||
@ -121,7 +133,6 @@ public class GuiTools {
|
||||
Double MoneyBoost = Jobs.getPlayerManager().GetMoneyBoost(dude, job);
|
||||
Double ExpBoost = Jobs.getPlayerManager().GetExpBoost(dude, job);
|
||||
|
||||
|
||||
int level = 1;
|
||||
JobProgression prog = JPlayer.getJobProgression(job);
|
||||
if (prog != null)
|
||||
@ -188,33 +199,33 @@ public class GuiTools {
|
||||
items.add(one);
|
||||
}
|
||||
|
||||
int GuiSize = 27;
|
||||
int backButton = 18;
|
||||
int GuiSize = 18;
|
||||
int backButton = 9;
|
||||
|
||||
if (items.size() > 9) {
|
||||
GuiSize = 27;
|
||||
backButton = 18;
|
||||
}
|
||||
|
||||
if (items.size() > 18) {
|
||||
GuiSize = 36;
|
||||
backButton = 27;
|
||||
}
|
||||
|
||||
if (items.size() > 18) {
|
||||
if (items.size() > 27) {
|
||||
GuiSize = 45;
|
||||
backButton = 36;
|
||||
}
|
||||
|
||||
if (items.size() > 27) {
|
||||
if (items.size() > 36) {
|
||||
GuiSize = 54;
|
||||
backButton = 45;
|
||||
}
|
||||
|
||||
if (items.size() > 36) {
|
||||
GuiSize = 54;
|
||||
backButton = 53;
|
||||
}
|
||||
|
||||
if (items.size() > 45) {
|
||||
GuiSize = 54;
|
||||
backButton = 53;
|
||||
}
|
||||
// if (items.size() > 45) {
|
||||
// GuiSize = 54;
|
||||
// backButton = 53;
|
||||
// }
|
||||
|
||||
Inventory GuiInv = Bukkit.createInventory(null, GuiSize, job.getName() + " Info!");
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
package com.gamingmesh.jobs;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
import net.coreprotect.CoreProtect;
|
||||
import net.coreprotect.CoreProtectAPI;
|
||||
@ -50,9 +51,51 @@ public class JobsPlugin extends JavaPlugin {
|
||||
public static CoreProtectAPI CPAPI;
|
||||
public static MythicMobsAPI MMAPI;
|
||||
public static boolean CPPresent = false;
|
||||
private static NMS nms;
|
||||
|
||||
public static NMS getNms() {
|
||||
return nms;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
|
||||
String packageName = getServer().getClass().getPackage().getName();
|
||||
|
||||
String[] packageSplit = packageName.split("\\.");
|
||||
String version = packageSplit[packageSplit.length - 1].split("(?<=\\G.{4})")[0];
|
||||
try {
|
||||
Class<?> nmsClass;
|
||||
nmsClass = Class.forName("com.gamingmesh.jobs.nmsUtil." + version);
|
||||
if (NMS.class.isAssignableFrom(nmsClass)) {
|
||||
nms = (NMS) nmsClass.getConstructor().newInstance();
|
||||
} else {
|
||||
System.out.println("Something went wrong, please note down version and contact author v:" + version);
|
||||
this.setEnabled(false);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
System.out.println("Your server version is not compatible with this plugins version! Plugin will be disabled: " + version);
|
||||
this.setEnabled(false);
|
||||
} catch (InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
this.setEnabled(false);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
this.setEnabled(false);
|
||||
} catch (IllegalArgumentException e) {
|
||||
e.printStackTrace();
|
||||
this.setEnabled(false);
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
this.setEnabled(false);
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
this.setEnabled(false);
|
||||
} catch (SecurityException e) {
|
||||
e.printStackTrace();
|
||||
this.setEnabled(false);
|
||||
}
|
||||
|
||||
instance = this;
|
||||
OfflinePlayerList.fillList();
|
||||
YmlMaker jobConfig = new YmlMaker(this, "jobConfig.yml");
|
||||
|
13
com/gamingmesh/jobs/NMS.java
Normal file
13
com/gamingmesh/jobs/NMS.java
Normal file
@ -0,0 +1,13 @@
|
||||
package com.gamingmesh.jobs;
|
||||
|
||||
import java.util.List;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||
|
||||
public interface NMS {
|
||||
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event);
|
||||
|
||||
public boolean isElderGuardian(Entity entity);
|
||||
}
|
@ -19,11 +19,11 @@
|
||||
package com.gamingmesh.jobs.actions;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Guardian;
|
||||
import org.bukkit.entity.Skeleton;
|
||||
import org.bukkit.entity.Skeleton.SkeletonType;
|
||||
import org.bukkit.entity.Zombie;
|
||||
|
||||
import com.gamingmesh.jobs.JobsPlugin;
|
||||
import com.gamingmesh.jobs.container.ActionInfo;
|
||||
import com.gamingmesh.jobs.container.ActionType;
|
||||
import com.gamingmesh.jobs.container.BaseActionInfo;
|
||||
@ -50,12 +50,8 @@ public class EntityActionInfo extends BaseActionInfo implements ActionInfo {
|
||||
return "ZombieVillager";
|
||||
}
|
||||
|
||||
if (this.entity.getType().toString().toLowerCase().contains("guardian"))
|
||||
if (this.entity instanceof Guardian) {
|
||||
Guardian guardian = (Guardian) this.entity;
|
||||
if (guardian.isElder())
|
||||
if (JobsPlugin.getNms().isElderGuardian(this.entity))
|
||||
return "ElderGuardian";
|
||||
}
|
||||
|
||||
return entity.getType().toString();
|
||||
}
|
||||
|
@ -224,11 +224,19 @@ public class JobsCommands implements CommandExecutor {
|
||||
if (!(sender instanceof Player))
|
||||
return false;
|
||||
|
||||
if (args.length < 1) {
|
||||
if (args.length != 1 && args.length != 0) {
|
||||
sendUsage(sender, "join");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
if (sender instanceof Player && ConfigManager.getJobsConfiguration().JobsGUIOpenOnJoin)
|
||||
((Player) sender).openInventory(GuiTools.CreateJobsGUI((Player) sender));
|
||||
else
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
Player pSender = (Player) sender;
|
||||
JobsPlayer jPlayer = Jobs.getPlayerManager().getJobsPlayer(pSender);
|
||||
|
||||
@ -644,7 +652,7 @@ public class JobsCommands implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (sender instanceof Player) {
|
||||
if (sender instanceof Player && ConfigManager.getJobsConfiguration().JobsGUIOpenOnBrowse) {
|
||||
((Player) sender).openInventory(GuiTools.CreateJobsGUI((Player) sender));
|
||||
}
|
||||
|
||||
@ -1374,8 +1382,8 @@ public class JobsCommands implements CommandExecutor {
|
||||
JobsPlayer JPlayer = null;
|
||||
if (args.length == 0)
|
||||
JPlayer = Jobs.getPlayerManager().getJobsPlayer((Player) sender);
|
||||
else if (args.length == 1 ) {
|
||||
if (!sender.hasPermission("jobs.commands.log.others")){
|
||||
else if (args.length == 1) {
|
||||
if (!sender.hasPermission("jobs.commands.log.others")) {
|
||||
sender.sendMessage(Language.getMessage("command.error.permission"));
|
||||
return true;
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ public class JobsConfiguration {
|
||||
public boolean fixAtMaxLevel, ToggleActionBar, TitleChangeChat, TitleChangeActionBar, LevelChangeChat,
|
||||
LevelChangeActionBar, SoundLevelupUse, SoundTitleChangeUse, UseServerAccount, EmptyServerAcountChat,
|
||||
EmptyServerAcountActionBar, JobsToggleEnabled, ShowTotalWorkers, ShowPenaltyBonus, useDynamicPayment,
|
||||
useGlobalBoostScheduler;
|
||||
useGlobalBoostScheduler, JobsGUIOpenOnBrowse,JobsGUIOpenOnJoin;
|
||||
public Integer levelLossPercentage, SoundLevelupVolume, SoundLevelupPitch, SoundTitleChangeVolume,
|
||||
SoundTitleChangePitch, ToplistInScoreboardInterval;
|
||||
public double BoostExp;
|
||||
@ -625,6 +625,11 @@ public class JobsConfiguration {
|
||||
writer.addComment("JobsBrowse.ShowPenaltyBonus", "Do you want to show penalty and bonus in jobs browse window. Only works if this feature is enabled");
|
||||
ShowPenaltyBonus = getBoolean("JobsBrowse.ShowPenaltyBonus", true, config, writer);
|
||||
|
||||
writer.addComment("JobsGUI.OpenOnBrowse", "Do you want to show GUI when performing /jobs browse command");
|
||||
JobsGUIOpenOnBrowse = getBoolean("JobsGUI.OpenOnBrowse", true, config, writer);
|
||||
writer.addComment("JobsBrowse.ShowPenaltyBonus", "Do you want to show GUI when performing /jobs join command");
|
||||
JobsGUIOpenOnJoin = getBoolean("JobsGUI.OpenOnJoin", true, config, writer);
|
||||
|
||||
writer.addComment("Schedule.Boost.Enable", "Do you want to enable scheduler for global boost");
|
||||
useGlobalBoostScheduler = getBoolean("Schedule.Boost.Enable", false, config, writer);
|
||||
|
||||
@ -1213,6 +1218,14 @@ public class JobsConfiguration {
|
||||
GetConfigString("command.info.help.actions", "&eValid actions are: &f%actions%", writer, conf, true);
|
||||
GetConfigString("command.info.help.max", " - &emax level:&f ", writer, conf, true);
|
||||
GetConfigString("command.info.help.material", "&7%material%", writer, conf, true);
|
||||
|
||||
GetConfigString("command.info.gui.actions", "&eValid actions are:", writer, conf, true);
|
||||
GetConfigString("command.info.gui.leftClick", "&eLeft Click for more info", writer, conf, true);
|
||||
GetConfigString("command.info.gui.rightClick", "&eRight click to join job", writer, conf, true);
|
||||
GetConfigString("command.info.gui.leftSlots", "&eLeft slots:&f ", writer, conf, true);
|
||||
GetConfigString("command.info.gui.working", "&2&nAlready working", writer, conf, true);
|
||||
GetConfigString("command.info.gui.max", "&eMax level:&f ", writer, conf, true);
|
||||
|
||||
GetConfigString("command.info.output.break.info", "Break", writer, conf, true);
|
||||
GetConfigString("command.info.output.break.none", "%jobname% does not get money for breaking blocks.", writer, conf, true);
|
||||
GetConfigString("command.info.output.place.info", "Place", writer, conf, true);
|
||||
|
@ -65,9 +65,10 @@ public class JobsListener implements Listener {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false)
|
||||
public void onGuiRightClick(InventoryClickEvent event) {
|
||||
if (GuiTools.GuiList.size() == 0)
|
||||
@EventHandler(priority = EventPriority.LOWEST)
|
||||
public void onGuiLeftClick(InventoryClickEvent event) {
|
||||
|
||||
if (GuiTools.GuiList.isEmpty())
|
||||
return;
|
||||
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
@ -75,77 +76,29 @@ public class JobsListener implements Listener {
|
||||
if (!GuiTools.GuiList.containsKey(player.getName()))
|
||||
return;
|
||||
|
||||
if (event.getClick() != ClickType.RIGHT)
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
GuiInfoList joblist = GuiTools.GuiList.get(player.getName());
|
||||
|
||||
if (joblist.isJobInfo())
|
||||
return;
|
||||
|
||||
int slot = event.getRawSlot();
|
||||
|
||||
if (slot < joblist.getJobList().size()) {
|
||||
if (slot >= 0) {
|
||||
if (event.getClick() == ClickType.LEFT) {
|
||||
if (!joblist.isJobInfo() && slot < joblist.getJobList().size()) {
|
||||
player.closeInventory();
|
||||
player.openInventory(GuiTools.CreateJobsSubGUI(player, joblist.getJobList().get(slot)));
|
||||
} else {
|
||||
if (slot == joblist.getbackButton()) {
|
||||
player.closeInventory();
|
||||
player.openInventory(GuiTools.CreateJobsGUI(player));
|
||||
}
|
||||
}
|
||||
} else if (event.getClick() == ClickType.RIGHT) {
|
||||
if (!joblist.isJobInfo() && slot < joblist.getJobList().size()) {
|
||||
Bukkit.dispatchCommand(player, "jobs join " + joblist.getJobList().get(slot).getName());
|
||||
player.getOpenInventory().getTopInventory().setContents(GuiTools.CreateJobsGUI(player).getContents());
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false)
|
||||
public void onGuiLeftClick(InventoryClickEvent event) {
|
||||
if (GuiTools.GuiList.size() == 0)
|
||||
return;
|
||||
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
|
||||
if (!GuiTools.GuiList.containsKey(player.getName()))
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
if (event.getClick() != ClickType.LEFT)
|
||||
return;
|
||||
|
||||
GuiInfoList joblist = GuiTools.GuiList.get(player.getName());
|
||||
|
||||
if (joblist.isJobInfo())
|
||||
return;
|
||||
|
||||
int slot = event.getRawSlot();
|
||||
|
||||
if (slot < joblist.getJobList().size()) {
|
||||
player.closeInventory();
|
||||
player.openInventory(GuiTools.CreateJobsSubGUI(player, joblist.getJobList().get(slot)));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false)
|
||||
public void onGuiLeftSubClick(InventoryClickEvent event) {
|
||||
if (GuiTools.GuiList.size() == 0)
|
||||
return;
|
||||
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
|
||||
if (!GuiTools.GuiList.containsKey(player.getName()))
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
if (event.getClick() != ClickType.LEFT)
|
||||
return;
|
||||
|
||||
GuiInfoList joblist = GuiTools.GuiList.get(player.getName());
|
||||
|
||||
if (!joblist.isJobInfo())
|
||||
return;
|
||||
|
||||
int slot = event.getRawSlot();
|
||||
|
||||
if (slot == joblist.getbackButton()) {
|
||||
player.closeInventory();
|
||||
player.openInventory(GuiTools.CreateJobsGUI(player));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,6 @@
|
||||
package com.gamingmesh.jobs.listeners;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
@ -982,8 +981,7 @@ public class JobsPaymentListener implements Listener {
|
||||
|
||||
double closest = 30.0;
|
||||
Player player = null;
|
||||
Collection<? extends Player> OnlinePLayers = Bukkit.getOnlinePlayers();
|
||||
for (Player i : OnlinePLayers) {
|
||||
for (Player i : Bukkit.getOnlinePlayers()) {
|
||||
if (i.getWorld().getName().equals(animal.getWorld().getName())) {
|
||||
double dist = i.getLocation().distance(animal.getLocation());
|
||||
if (closest > dist) {
|
||||
|
@ -110,7 +110,7 @@ public class PistonProtectionListener implements Listener {
|
||||
if (!ConfigManager.getJobsConfiguration().useBlockPiston)
|
||||
return;
|
||||
|
||||
List<Block> block = event.getBlocks();
|
||||
List<Block> block = JobsPlugin.getNms().getPistonRetractBlocks(event);
|
||||
for (Block OneBlock : block) {
|
||||
if (CheckBlock(OneBlock)) {
|
||||
event.setCancelled(true);
|
||||
|
2
com/gamingmesh/jobs/nmsUtil/.gitignore
vendored
Normal file
2
com/gamingmesh/jobs/nmsUtil/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/v1_8.class
|
||||
/v1_7.class
|
23
com/gamingmesh/jobs/nmsUtil/v1_7.java
Normal file
23
com/gamingmesh/jobs/nmsUtil/v1_7.java
Normal file
@ -0,0 +1,23 @@
|
||||
package com.gamingmesh.jobs.nmsUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||
|
||||
import com.gamingmesh.jobs.NMS;
|
||||
|
||||
public class v1_7 implements NMS {
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<Block>();
|
||||
blocks.add(event.getBlock());
|
||||
return blocks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isElderGuardian(Entity entity) {
|
||||
return false;
|
||||
}
|
||||
}
|
30
com/gamingmesh/jobs/nmsUtil/v1_8.java
Normal file
30
com/gamingmesh/jobs/nmsUtil/v1_8.java
Normal file
@ -0,0 +1,30 @@
|
||||
package com.gamingmesh.jobs.nmsUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Guardian;
|
||||
import org.bukkit.event.block.BlockPistonRetractEvent;
|
||||
|
||||
import com.gamingmesh.jobs.NMS;
|
||||
|
||||
public class v1_8 implements NMS {
|
||||
@Override
|
||||
public List<Block> getPistonRetractBlocks(BlockPistonRetractEvent event) {
|
||||
List<Block> blocks = new ArrayList<Block>();
|
||||
blocks.addAll(event.getBlocks());
|
||||
return blocks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isElderGuardian(Entity entity) {
|
||||
if (entity instanceof Guardian) {
|
||||
Guardian guardian = (Guardian) entity;
|
||||
if (guardian.isElder())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
@ -54,6 +54,12 @@ Jobs:
|
||||
# joblevel - the level the player has attained in the job.
|
||||
# NOTE: Please take care of the brackets when modifying this equation.
|
||||
experience-progression-equation: baseexperience*((1.05)^(joblevel-1))
|
||||
# GUI icon information when using GUI function
|
||||
Gui:
|
||||
# id of block
|
||||
Id: 17
|
||||
# data of block, usualy its 0, but in example Diorite will have id of 1 and data of 3
|
||||
Data: 2
|
||||
########################################################################
|
||||
# Section used to configure what items the job gets paid for, how much
|
||||
# they get paid and how much experience they gain.
|
||||
|
@ -1,7 +1,7 @@
|
||||
name: Jobs
|
||||
description: Jobs Plugin for the BukkitAPI
|
||||
main: com.gamingmesh.jobs.JobsPlugin
|
||||
version: 2.52.0
|
||||
version: 2.53.0
|
||||
author: phrstbrn
|
||||
softdepend: [Vault, CoreProtect, MythicMobs, McMMO]
|
||||
commands:
|
||||
|
Loading…
Reference in New Issue
Block a user