1
0
mirror of https://github.com/Zrips/Jobs.git synced 2024-11-26 12:35:28 +01:00

Now you can separate payment materials into a list

This commit is contained in:
montlikadani 2020-11-23 20:11:21 +01:00
parent e4f2b40527
commit 343657db05
13 changed files with 141 additions and 413 deletions

View File

@ -1234,11 +1234,11 @@ public class Jobs extends JavaPlugin {
} }
private static int getPlayerExperience(Player player) { private static int getPlayerExperience(Player player) {
return (ExpToLevel(player.getLevel()) + Math.round(deltaLevelToExp(player.getLevel()) * player.getExp())); return (expToLevel(player.getLevel()) + Math.round(deltaLevelToExp(player.getLevel()) * player.getExp()));
} }
// total xp calculation based by lvl // total xp calculation based by lvl
private static int ExpToLevel(int level) { private static int expToLevel(int level) {
if (Version.isCurrentEqualOrLower(Version.v1_7_R4)) { if (Version.isCurrentEqualOrLower(Version.v1_7_R4)) {
if (level <= 16) if (level <= 16)
return 17 * level; return 17 * level;
@ -1328,15 +1328,15 @@ public class Jobs extends JavaPlugin {
} }
public void ShowPagination(CommandSender sender, PageInfo pi, String cmd) { public void showPagination(CommandSender sender, PageInfo pi, String cmd) {
ShowPagination(sender, pi.getTotalPages(), pi.getCurrentPage(), pi.getTotalEntries(), cmd, null); showPagination(sender, pi.getTotalPages(), pi.getCurrentPage(), pi.getTotalEntries(), cmd, null);
} }
public void ShowPagination(CommandSender sender, PageInfo pi, String cmd, String pagePref) { public void showPagination(CommandSender sender, PageInfo pi, String cmd, String pagePref) {
ShowPagination(sender, pi.getTotalPages(), pi.getCurrentPage(), pi.getTotalEntries(), cmd, pagePref); showPagination(sender, pi.getTotalPages(), pi.getCurrentPage(), pi.getTotalEntries(), cmd, pagePref);
} }
public void ShowPagination(CommandSender sender, int pageCount, int CurrentPage, int totalEntries, String cmd, String pagePref) { public void showPagination(CommandSender sender, int pageCount, int currentPage, int totalEntries, String cmd, String pagePref) {
if (!(sender instanceof Player)) if (!(sender instanceof Player))
return; return;
@ -1348,23 +1348,23 @@ public class Jobs extends JavaPlugin {
String pagePrefix = pagePref == null ? "" : pagePref; String pagePrefix = pagePref == null ? "" : pagePref;
int NextPage = CurrentPage + 1; int nextPage = currentPage + 1;
NextPage = CurrentPage < pageCount ? NextPage : CurrentPage; nextPage = currentPage < pageCount ? nextPage : currentPage;
int Prevpage = CurrentPage - 1; int prevpage = currentPage - 1;
Prevpage = CurrentPage > 1 ? Prevpage : CurrentPage; prevpage = currentPage > 1 ? prevpage : currentPage;
RawMessage rm = new RawMessage() RawMessage rm = new RawMessage()
.addText((CurrentPage > 1 ? lManager.getMessage("command.help.output.prevPage") : lManager.getMessage("command.help.output.prevPageOff"))) .addText((currentPage > 1 ? lManager.getMessage("command.help.output.prevPage") : lManager.getMessage("command.help.output.prevPageOff")))
.addHover(CurrentPage > 1 ? "<<<" : ">|") .addHover(currentPage > 1 ? "<<<" : ">|")
.addCommand(CurrentPage > 1 ? cmd + " " + pagePrefix + Prevpage : cmd + " " + pagePrefix + pageCount); .addCommand(currentPage > 1 ? cmd + " " + pagePrefix + prevpage : cmd + " " + pagePrefix + pageCount);
rm.addText(lManager.getMessage("command.help.output.pageCount", "[current]", CurrentPage, "[total]", pageCount)) rm.addText(lManager.getMessage("command.help.output.pageCount", "[current]", currentPage, "[total]", pageCount))
.addHover(lManager.getMessage("command.help.output.pageCountHover", "[totalEntries]", totalEntries)); .addHover(lManager.getMessage("command.help.output.pageCountHover", "[totalEntries]", totalEntries));
rm.addText(pageCount > CurrentPage ? lManager.getMessage("command.help.output.nextPage") : lManager.getMessage("command.help.output.nextPageOff")) rm.addText(pageCount > currentPage ? lManager.getMessage("command.help.output.nextPage") : lManager.getMessage("command.help.output.nextPageOff"))
.addHover(pageCount > CurrentPage ? ">>>" : "|<") .addHover(pageCount > currentPage ? ">>>" : "|<")
.addCommand(pageCount > CurrentPage ? cmd + " " + pagePrefix + NextPage : cmd + " " + pagePrefix + 1); .addCommand(pageCount > currentPage ? cmd + " " + pagePrefix + nextPage : cmd + " " + pagePrefix + 1);
if (pageCount != 0) if (pageCount != 0)
rm.show(sender); rm.show(sender);

View File

@ -276,27 +276,27 @@ public class Placeholder {
} }
public enum JobsPlaceholderType { public enum JobsPlaceholderType {
Jobs, PAPI, MVdW; JOBS, PAPI, MVDW;
} }
public JobsPlaceholderType getPlaceHolderType(Player player, String placeholder) { public JobsPlaceholderType getPlaceHolderType(Player player, String placeholder) {
if (placeholder == null) if (placeholder == null)
return null; return null;
if (placeholder.contains("%")) {
if (!placeholder.equals(translateOwnPlaceHolder(player, placeholder))) if (placeholder.contains("%") && !placeholder.equals(translateOwnPlaceHolder(player, placeholder))) {
return JobsPlaceholderType.Jobs; return JobsPlaceholderType.JOBS;
} }
if (plugin.isPlaceholderAPIEnabled()) {
if (placeholder.contains("%")) { if (plugin.isPlaceholderAPIEnabled() && placeholder.contains("%")
if (!placeholder.equals(me.clip.placeholderapi.PlaceholderAPI.setPlaceholders((OfflinePlayer) player, placeholder))) && !placeholder.equals(me.clip.placeholderapi.PlaceholderAPI.setPlaceholders((OfflinePlayer) player, placeholder))) {
return JobsPlaceholderType.PAPI; return JobsPlaceholderType.PAPI;
}
} }
// For MVdWPlaceholderAPI // For MVdWPlaceholderAPI
// if (plugin.isMVdWPlaceholderAPIEnabled()) { // if (plugin.isMVdWPlaceholderAPIEnabled()) {
// if (placeholder.contains("{")) // if (placeholder.contains("{"))
// if (!placeholder.equals(be.maximvdw.placeholderapi.PlaceholderAPI.replacePlaceholders(player, placeholder))) // if (!placeholder.equals(be.maximvdw.placeholderapi.PlaceholderAPI.replacePlaceholders(player, placeholder)))
// return CMIPlaceholderType.MVdW; // return CMIPlaceholderType.MVDW;
// } // }
return null; return null;
} }
@ -400,8 +400,7 @@ public class Placeholder {
Integer completedQuests = (int) user.getQuestProgressions().stream().filter(q -> q.isCompleted()).count(); Integer completedQuests = (int) user.getQuestProgressions().stream().filter(q -> q.isCompleted()).count();
return Integer.toString(completedQuests); return Integer.toString(completedQuests);
case user_dailyquests_total: case user_dailyquests_total:
Integer dailyquests = user.getQuestProgressions().size(); return Integer.toString(user.getQuestProgressions().size());
return Integer.toString(dailyquests);
case user_id: case user_id:
return Integer.toString(user.getUserId()); return Integer.toString(user.getUserId());
case user_bstandcount: case user_bstandcount:

View File

@ -18,9 +18,6 @@ public class PlaceholderAPIHook extends PlaceholderExpansion {
@Override @Override
public String onPlaceholderRequest(Player player, String identifier) { public String onPlaceholderRequest(Player player, String identifier) {
JobsPlaceHolders placeHolder = JobsPlaceHolders.getByName(identifier); JobsPlaceHolders placeHolder = JobsPlaceHolders.getByName(identifier);
if (placeHolder == null)
return null;
return plugin.getPlaceholderAPIManager().getValue(player, placeHolder, "%" + Placeholder.pref + "_" + identifier + "%"); return plugin.getPlaceholderAPIManager().getValue(player, placeHolder, "%" + Placeholder.pref + "_" + identifier + "%");
} }

View File

@ -154,7 +154,7 @@ public class JobsCommands implements CommandExecutor {
sender.sendMessage(msg); sender.sendMessage(msg);
} }
plugin.ShowPagination(sender, pi, label + " ?"); plugin.showPagination(sender, pi, label + " ?");
return true; return true;
} }
@ -316,9 +316,9 @@ public class JobsCommands implements CommandExecutor {
if (sender instanceof Player) if (sender instanceof Player)
if (sender.getName().equalsIgnoreCase(player.getName())) if (sender.getName().equalsIgnoreCase(player.getName()))
plugin.ShowPagination(sender, pi, "jobs info " + job.getName() + t); plugin.showPagination(sender, pi, "jobs info " + job.getName() + t);
else else
plugin.ShowPagination(sender, pi, "jobs playerinfo " + player.getName() + " " + job.getName() + t); plugin.showPagination(sender, pi, "jobs playerinfo " + player.getName() + " " + job.getName() + t);
} }
/** /**

View File

@ -106,7 +106,7 @@ public class browse implements Cmd {
rm.show(sender); rm.show(sender);
} }
plugin.ShowPagination(sender, pi, "jobs browse", "-p:"); plugin.showPagination(sender, pi, "jobs browse", "-p:");
} else { } else {
sender.sendMessage(Jobs.getLanguage().getMessage("command.browse.output.jobHeader", "[jobname]", j.getName())); sender.sendMessage(Jobs.getLanguage().getMessage("command.browse.output.jobHeader", "[jobname]", j.getName()));

View File

@ -115,7 +115,7 @@ public class editjobs implements Cmd {
rm.show(sender); rm.show(sender);
Util.getJobsEditorMap().remove(player.getUniqueId()); Util.getJobsEditorMap().remove(player.getUniqueId());
Jobs.getInstance().ShowPagination(sender, pi, "jobs editjobs list " + job.getName() + " " + actionT.getName()); Jobs.getInstance().showPagination(sender, pi, "jobs editjobs list " + job.getName() + " " + actionT.getName());
return true; return true;
} }

View File

@ -156,7 +156,7 @@ public class editquests implements Cmd {
Util.getQuestsEditorMap().remove(player.getUniqueId()); Util.getQuestsEditorMap().remove(player.getUniqueId());
Jobs.getInstance().ShowPagination(sender, pi, "jobs editquests list " + job.getName() + " " + quest.getConfigName() + " " + 0); Jobs.getInstance().showPagination(sender, pi, "jobs editquests list " + job.getName() + " " + quest.getConfigName() + " " + 0);
return true; return true;
} }
} }

View File

@ -89,7 +89,7 @@ public class gtop implements Cmd {
plugin.getCMIScoreboardManager().addNew(player); plugin.getCMIScoreboardManager().addNew(player);
} }
Jobs.getInstance().ShowPagination(sender, pi, "jobs gtop"); Jobs.getInstance().showPagination(sender, pi, "jobs gtop");
return true; return true;
} }
} }

View File

@ -90,7 +90,7 @@ public class placeholders implements Cmd {
} }
if (player != null) if (player != null)
plugin.ShowPagination(sender, pi, "jobs placeholders", "-p:"); plugin.showPagination(sender, pi, "jobs placeholders", "-p:");
return true; return true;
} }
} }

View File

@ -79,7 +79,7 @@ public class top implements Cmd {
"%exp%", One.getExp())); "%exp%", One.getExp()));
place++; place++;
} }
Jobs.getInstance().ShowPagination(sender, pi, "jobs top " + job.getName()); Jobs.getInstance().showPagination(sender, pi, "jobs top " + job.getName());
} else { } else {
List<String> ls = new ArrayList<>(); List<String> ls = new ArrayList<>();
@ -94,7 +94,7 @@ public class top implements Cmd {
plugin.getCMIScoreboardManager().setScoreBoard(player, Jobs.getLanguage().getMessage("scoreboard.topline", "%jobname%", job.getName()), ls); plugin.getCMIScoreboardManager().setScoreBoard(player, Jobs.getLanguage().getMessage("scoreboard.topline", "%jobname%", job.getName()), ls);
plugin.getCMIScoreboardManager().addNew(player); plugin.getCMIScoreboardManager().addNew(player);
Jobs.getInstance().ShowPagination(sender, pi, "jobs top " + job.getName()); Jobs.getInstance().showPagination(sender, pi, "jobs top " + job.getName());
} }
return true; return true;
} }

View File

@ -184,7 +184,7 @@ public class ConfigManager {
"[actionType] can be any valid job action. Look lower for all possible action types", "[actionType] can be any valid job action. Look lower for all possible action types",
"[actionTarget] can be material name, block type, entity name and so on. This is defined in same way as any generic payable job action", "[actionTarget] can be material name, block type, entity name and so on. This is defined in same way as any generic payable job action",
"[amount] is how many times player should perform this action to complete quest"); "[amount] is how many times player should perform this action to complete quest");
cfg.get(questPt + ".Objectives", "Break;17-0;300"); cfg.get(questPt + ".Objectives", "Break;oak_log;300");
cfg.addComment(questPt + ".RewardCommands", "Command list to be performed after quest is finished.", cfg.addComment(questPt + ".RewardCommands", "Command list to be performed after quest is finished.",
"Use [playerName] to insert players name who finished that quest"); "Use [playerName] to insert players name who finished that quest");
@ -226,11 +226,9 @@ public class ConfigManager {
"For kill tags (Kill and custom-kill), the name is the name of the mob.", "For kill tags (Kill and custom-kill), the name is the name of the mob.",
"To get a list of all available entity types, check the", "To get a list of all available entity types, check the",
"bukkit JavaDocs for a complete list of entity types", "bukkit JavaDocs for a complete list of entity types",
"https://minecraft.gamepedia.com/Mob#List_of_mobs", "https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html",
"", "",
"NOTE: mob names are case sensitive.", "For custom-kill, it is the name of the job (case sensitive).",
"",
"For custom-kill, it is the name of the job (also case sensitive).",
"", "",
"NOTE: If a job has both the pay for killing a player and for killing a specific class, they will get both payments.", "NOTE: If a job has both the pay for killing a player and for killing a specific class, they will get both payments.",
"#######################################################################", "#######################################################################",
@ -342,9 +340,8 @@ public class ConfigManager {
} }
public class KeyValues { public class KeyValues {
private String type = null;
private String subType = ""; private String type, subType = "", meta = "";
private String meta = "";
private int id = 0; private int id = 0;
public String getType() { public String getType() {
@ -1205,6 +1202,53 @@ public class ConfigManager {
ConfigurationSection typeSection = jobSection.getConfigurationSection(actionType.getName()); ConfigurationSection typeSection = jobSection.getConfigurationSection(actionType.getName());
ArrayList<JobInfo> jobInfo = new ArrayList<>(); ArrayList<JobInfo> jobInfo = new ArrayList<>();
if (typeSection != null) { if (typeSection != null) {
if (typeSection.isList("materials")) {
for (String mat : typeSection.getStringList("materials")) {
if (!mat.contains(";")) {
continue;
}
KeyValues keyValue = null;
String[] sep = mat.split(";");
if (sep.length >= 1) {
keyValue = getKeyValue(sep[0], actionType, jobKey);
}
if (keyValue == null) {
continue;
}
int id = keyValue.getId();
String type = keyValue.getType(),
subType = keyValue.getSubType(),
meta = keyValue.getMeta();
double income = 0D;
if (sep.length >= 2) {
income = Double.parseDouble(sep[1]);
income = updateValue(CurrencyType.MONEY, income);
}
double points = 0D;
if (sep.length >= 3) {
points = Double.parseDouble(sep[2]);
points = updateValue(CurrencyType.POINTS, points);
}
double experience = 0D;
if (sep.length >= 4) {
experience = Double.parseDouble(sep[3]);
experience = updateValue(CurrencyType.EXP, experience);
}
jobInfo.add(new JobInfo(actionType, id, meta, type + subType, income, incomeEquation, experience, expEquation, pointsEquation, points, 1,
-1, typeSection.getCurrentPath(), null, null, null));
}
job.setJobInfo(actionType, jobInfo);
continue;
}
for (String key : typeSection.getKeys(false)) { for (String key : typeSection.getKeys(false)) {
ConfigurationSection section = typeSection.getConfigurationSection(key); ConfigurationSection section = typeSection.getConfigurationSection(key);
if (section == null) { if (section == null) {
@ -1228,7 +1272,6 @@ public class ConfigManager {
experience = updateValue(CurrencyType.EXP, experience); experience = updateValue(CurrencyType.EXP, experience);
int fromlevel = 1; int fromlevel = 1;
if (section.isInt("from-level")) if (section.isInt("from-level"))
fromlevel = section.getInt("from-level"); fromlevel = section.getInt("from-level");

View File

@ -480,23 +480,27 @@ public class GeneralConfigManager {
String mname = one.contains("=") ? one.split("=")[0] : one; String mname = one.contains("=") ? one.split("=")[0] : one;
String ench = one.contains("=") ? one.split("=")[1] : null; String ench = one.contains("=") ? one.split("=")[1] : null;
String value = ench != null && ench.contains("-") ? ench.split("-")[1] : null; String value = ench != null && ench.contains("-") ? ench.split("-")[1] : null;
ench = value != null && ench != null ? ench.substring(0, ench.length() - (value.length() + 1)) : ench; if (value != null && ench != null) {
ench = ench.substring(0, ench.length() - (value.length() + 1));
}
CMIMaterial mat = CMIMaterial.get(mname); CMIMaterial mat = CMIMaterial.get(mname);
if (mat == CMIMaterial.NONE) { if (mat == CMIMaterial.NONE) {
Jobs.consoleMsg("Failed to recognize " + one + " entry from config file"); Jobs.consoleMsg("Failed to recognize " + one + " entry from config file");
continue; continue;
} }
Enchantment enchant = null; Enchantment enchant = null;
if (ench != null) { if (ench != null) {
enchant = CMIEnchantment.getEnchantment(ench); enchant = CMIEnchantment.getEnchantment(ench);
} }
Integer level = null; Integer level = null;
if (value != null) { try {
try { level = Integer.parseInt(value);
level = Integer.parseInt(value); } catch (NumberFormatException e) {
} catch (NumberFormatException e) {
}
} }
HashMap<Enchantment, Integer> submap = new HashMap<>(); HashMap<Enchantment, Integer> submap = new HashMap<>();
if (enchant != null) if (enchant != null)
submap.put(enchant, level); submap.put(enchant, level);

View File

@ -90,13 +90,6 @@ Jobs:
# Item: player_head # Item: player_head
# CustomSkull: Notch # CustomSkull: Notch
Item: LOG:2 Item: LOG:2
# If you want to use ID instead of material names.
# id of block
# Id: 17
# data of block, usually its 0, but in example Diorite will have id of 1 and data of 3
# Data: 2
# enchants in the item # enchants in the item
Enchantments: Enchantments:
- 'DURABILITY:1' - 'DURABILITY:1'
@ -120,8 +113,8 @@ Jobs:
# - This is defined in same way as any generic payable job action. # - This is defined in same way as any generic payable job action.
# - You can use multiple names separated by commas "," to avoid creating many rows. # - You can use multiple names separated by commas "," to avoid creating many rows.
# [amount] is how many times player should perform this action to complete quest # [amount] is how many times player should perform this action to complete quest
- Break;17-0;300 - Break;oak_log;300
#- Place;stone,cobblestone;5 - Place;stone,cobblestone;5
# Command list to be performed after quest is finished. # Command list to be performed after quest is finished.
# Use [playerName] to insert players name who finished that quest # Use [playerName] to insert players name who finished that quest
RewardCommands: RewardCommands:
@ -158,16 +151,6 @@ Jobs:
- "Kill 50 zombies" - "Kill 50 zombies"
- "Get 2000 for this!" - "Get 2000 for this!"
third: third:
Name: "Chicken cooker"
Objectives:
- "Smelt;COOKED_CHICKEN;20"
RewardCommands:
- "eco give [playerName] 300"
- "msg [playerName] Completed quest!"
RewardDesc:
- "Cook some chicken breasts"
- "Get 300 for this!"
fourth:
Name: "Strip logs" Name: "Strip logs"
Objectives: Objectives:
- "StripLogs;stripped_birch_log;25" - "StripLogs;stripped_birch_log;25"
@ -191,13 +174,11 @@ Jobs:
# https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
# #
# For kill tags (Kill and custom-kill), the name is the name of the # For kill tags (Kill and custom-kill), the name is the name of the
# mob. # entity.
# To get a list of all available entity types, check # To get a list of all available entity types, check
# https://minecraft.gamepedia.com/Mob#List_of_mobs # https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/EntityType.html
# #
# NOTE: mob names are case sensitive. # For custom-kill, it is the name of the job (case sensitive).
#
# For custom-kill, it is the name of the job (also case sensitive).
# #
# NOTE: If a job has both the pay for killing a player and for killing a # NOTE: If a job has both the pay for killing a player and for killing a
# specific class, they will get both payments. # specific class, they will get both payments.
@ -230,7 +211,7 @@ Jobs:
# you can use minuses to take away money if the player break this block # you can use minuses to take away money if the player break this block
income: -1.0 income: -1.0
experience: -1.0 experience: -1.0
# you can use here "-all" sub name to specify if we detect all wool colours # you can use "-all" sub name to specify if we detect all wool colours
wool-all: wool-all:
income: 2.0 income: 2.0
points: 1.0 points: 1.0
@ -239,7 +220,6 @@ Jobs:
income: 1.0 income: 1.0
points: 1.0 points: 1.0
experience: 1.0 experience: 1.0
# you should start material name like this, to detect if that material is exists
white_banner-all: white_banner-all:
income: 1.0 income: 1.0
points: 1.0 points: 1.0
@ -288,15 +268,13 @@ Jobs:
experience: 5.0 experience: 5.0
# payment for placing a block # payment for placing a block
Place: Place:
sapling: # You can use list of materials to simplify adding each materials one by one
income: 1.0 # Remember that you should separate the income, points and exp with ";"
points: 1.0 materials:
experience: 1.0 - sapling;1.0;1.0;1.0
wood: - wood;2.0;1.0
income: 2.0 - stone;0.1
points: 2.0 # Payment for trading with a villager. Checks results only
experience: 2.0
# Payment for trading a villager. Checks results only
VTrade: VTrade:
emerald: emerald:
income: 1.0 income: 1.0
@ -306,21 +284,15 @@ Jobs:
enchanted_book-12: enchanted_book-12:
income: 1.0 income: 1.0
experience: 2.0 experience: 2.0
# killing a mob # Payment for killing any type of living entity
Kill: Kill:
# mob name
Player: Player:
# base income
income: 7.5 income: 7.5
# base experience
experience: 7.5 experience: 7.5
# killing a MythicMob # Payment for killing a MythicMob
MMKill: MMKill:
# mob name
CustomNameHere: CustomNameHere:
# base income
income: 7.5 income: 7.5
# base experience
experience: 7.5 experience: 7.5
# Killing player with certain job # Killing player with certain job
custom-kill: custom-kill:
@ -345,7 +317,7 @@ Jobs:
baked_potato: baked_potato:
income: 5 income: 5
experience: 5 experience: 5
# Milking cows, only one option is available # Milking cows
Milk: Milk:
Cow: Cow:
income: 2.0 income: 2.0
@ -464,7 +436,6 @@ Jobs:
experience: 12 experience: 12
# Enchanting items # Enchanting items
Enchant: Enchant:
# You can set item for which player will get money
wood_sword: wood_sword:
income: 1.5 income: 1.5
experience: 3.0 experience: 3.0
@ -517,7 +488,6 @@ Jobs:
level: 0 level: 0
secNode: secNode:
value: true value: true
# The permission node
permission: "aaaaaatest.node2" permission: "aaaaaatest.node2"
# Permission granted when reaching level 10 # Permission granted when reaching level 10
level: 10 level: 10
@ -556,37 +526,6 @@ Jobs:
world-blacklist: world-blacklist:
- plotworld - plotworld
- teamworld - teamworld
# Getting more money when equipped with specific weapon/tool are wearing armor
items:
# Just name, don't have any impact
firstOne:
# Tool/Weapon id. Works for block Break, Fish, Animal tame, Breed, Monster/Player kill.
id: 278
# Items name, should be with color codes
name: '&8Miner Pickaxe'
# Item lore, again should come with color codes
lore:
- '&eBobs pick'
- '&710% bonus XP'
# Item enchantments, all enchantment names can be found https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
enchants:
- DAMAGE_ALL=1
- FIRE_ASPECT=1
# Money boost: 1.1 is equals 10% more income when 0.9 is equals 10% less from base income
moneyBoost: 1.1
# Exp boost
expBoost: 1.2
# Point boost
pointBoost: 1.3
helmet:
# Armor id. This one works with all jobs
id: 310
name: '&8Armor'
lore:
- '&eBobs armor'
- '&710% bonus XP'
moneyBoost: 1.1
expBoost: 1.1
# Limit item use to jobs level # Limit item use to jobs level
limitedItems: limitedItems:
# Just name, don't have any impact # Just name, don't have any impact
@ -643,82 +582,19 @@ Jobs:
Id: 17 Id: 17
Data: 2 Data: 2
Break: Break:
#logs - natural; gain income, points, and exp materials:
oak_log: - oak_log;1.0;1.0;1.0
income: 1.0 - spruce_log;1.0;1.0;1.0
points: 1.0 - birch_log;1.0;1.0;1.0
experience: 1.0 - jungle_log;1.0;1.0;1.0
spruce_log: - acacia_log;1.0;1.0;1.0
income: 1.0 - dark_oak_log;1.0;1.0;1.0
points: 1.0 - stripped_oak_log;0.75;0.75;0.25
experience: 1.0 - stripped_spruce_log;0.75;0.75;0.25
birch_log: - stripped_birch_log;0.75;0.75;0.25
income: 1.0 - stripped_jungle_log;0.75;0.75;0.25
points: 1.0 - stripped_acacia_log;0.75;0.75;0.25
experience: 1.0 - stripped_dark_oak_log;0.75;0.75;0.25
jungle_log:
income: 1.0
points: 1.0
experience: 1.0
acacia_log:
income: 1.0
points: 1.0
experience: 1.0
dark_oak_log:
income: 1.0
points: 1.0
experience: 1.0
#planks - natural in mineshafts; gain some income/points and exp, but less as compromise as it's mainly a building block and used in placement
#oak_planks:
#income: 0.25
#points: 0.25
#experience: .25
#spruce_planks:
#income: 0.25
#points: 0.25
#experience: .25
#birch_planks:
#income: 0.25
#points: 0.25
#experience: .25
#jungle_planks:
#income: 0.25
#points: 0.25
#experience: .25
#acacia_planks:
#income: 0.25
#points: 0.25
#experience: .25
#dark_oak_planks:
#income: 0.25
#points: 0.25
#experience: .25
#stripped logs - crafted/natural; gain income, points, and exp. Compromise for stripping natural logs.
#use axe durability to create, just 0.75 income/points to make up for loss, plus 0.25 exp (compromise)
stripped_oak_log:
income: 0.75
points: 0.75
experience: 0.25
stripped_spruce_log:
income: 0.75
points: 0.75
experience: 0.25
stripped_birch_log:
income: 0.75
points: 0.75
experience: 0.25
stripped_jungle_log:
income: 0.75
points: 0.75
experience: 0.25
stripped_acacia_log:
income: 0.75
points: 0.75
experience: 0.25
stripped_dark_oak_log:
income: 0.75
points: 0.75
experience: 0.25
Kill: Kill:
Player: Player:
income: 7.5 income: 7.5
@ -776,28 +652,6 @@ Jobs:
points: 0.25 points: 0.25
experience: 0.5 experience: 0.5
Break: Break:
#new 1.13 blocks (some changed blocks are below)
tube_coral_block:
income: 2
points: 2
experience: 3
brain_coral_block:
income: 2
points: 2
experience: 3
bubble_coral_block:
income: 2
points: 2
experience: 3
fire_coral_block:
income: 2
points: 2
experience: 3
horn_coral_block:
income: 2
points: 2
experience: 3
#origial blocks
andesite: andesite:
income: 1 income: 1
points: 1 points: 1
@ -953,55 +807,6 @@ Jobs:
Gui: Gui:
Item: brick_stairs Item: brick_stairs
Place: Place:
#new 1.13 blocks
stripped_oak_wood:
income: 2
points: 2
experience: 2
stripped_spruce_wood:
income: 2
points: 2
experience: 2
stripped_birch_wood:
income: 2
points: 2
experience: 2
stripped_jungle_wood:
income: 2
points: 2
experience: 2
stripped_acacia_wood:
income: 2
points: 2
experience: 2
stripped_dark_oak_wood:
income: 2
points: 2
experience: 2
dead_tube_coral_block:
income: 2
points: 2
experience: 3
dead_brain_coral_block:
income: 2
points: 2
experience: 3
dead_bubble_coral_block:
income: 2
points: 2
experience: 3
dead_fire_coral_block:
income: 2
points: 2
experience: 3
dead_horn_coral_block:
income: 2
points: 2
experience: 3
dried_kelp_block:
income: 2
points: 2
experience: 3
stone: stone:
income: 1.3 income: 1.3
points: 1.3 points: 1.3
@ -1908,49 +1713,6 @@ Jobs:
points: 5.0 points: 5.0
experience: 5.0 experience: 5.0
Break: Break:
#new 1.13 blocks
tube_coral_fan:
income: 2
points: 2
experience: 3
brain_coral_fan:
income: 2
points: 2
experience: 3
bubble_coral_fan:
income: 2
points: 2
experience: 3
fire_coral_fan:
income: 2
points: 2
experience: 3
horn_coral_fan:
income: 2
points: 2
experience: 3
kelp_plant:
income: 1
points: 1
experience: 1
kelp:
income: 1
points: 1
experience: 1
seagrass:
income: 1
points: 1
experience: 1
tall_seagrass:
income: 1
points: 1
experience: 1
sea_pickle:
income: 1
points: 1
experience: 1
#old blocks
chorus_plant: chorus_plant:
income: 1.5 income: 1.5
points: 1.5 points: 1.5
@ -2076,28 +1838,6 @@ Jobs:
points: 1 points: 1
experience: 1.0 experience: 1.0
Place: Place:
#new 1.13 blocks
dead_tube_coral_fan:
income: 2
points: 2
experience: 3
dead_brain_coral_fan:
income: 2
points: 2
experience: 3
dead_bubble_coral_fan:
income: 2
points: 2
experience: 3
dead_fire_coral_fan:
income: 2
points: 2
experience: 3
dead_horn_coral_fan:
income: 2
points: 2
experience: 3
wheat: wheat:
income: 1 income: 1
points: 1 points: 1
@ -3253,73 +2993,18 @@ Jobs:
income: 6.0 income: 6.0
points: 6.0 points: 6.0
experience: 30.0 experience: 30.0
# 1.13+: power durability-1:
# 1.12 and under: arrow_damage income: 10.0
#power-1: points: 10.0
# income: 10.0 experience: 10.0
# points: 10.0 fire_aspect-2:
# experience: 10.0 income: 20.0
#arrow_damage-2: points: 20.0
# income: 20.0 experience: 20.0
# 1.13+: flame # This is default job players will have if they didn't joined any
# 1.12 and under: arrow_fire # When players join any job, they will lose access to this one
#arrow_fire:
# income: 10.0
# points: 10.0
# experience: 30.0
# 1.13+: infinity
# 1.12 and under: arrow_infinite
#arrow_infinite:
# income: 20.0
# points: 20.0
# experience: 50.0
# 1.13+: punch
# 1.12 and under: arrow_knockback
#punch-2:
# income: 20.0
# points: 20.0
# experience: 20.0
# 1.13+: sharpness
# 1.12 and under: damage_all
#damage_all-5:
# income: 50.0
# points: 50.0
# experience: 50.0
# 1.13+: bane_of_arthropods
# 1.12 and under: damage_arthropods
#damage_arthropods-4:
# income: 40.0
# points: 40.0
# experience: 40.0
# 1.13+: smite
# 1.12 under: damage_undead
#damage_undead-1:
# income: 10.0
# points: 10.0
#depth_strider-3:
# income: 30.0
# points: 30.0
# experience: 30.0
# 1.13+: efficiency
# 1.12 under: dig_speed
#efficiency-5:
# income: 50.0
# points: 50.0
# experience: 50.0
# 1.13+: unbreaking
# 1.12 under: durability
#durability-1:
# income: 10.0
# points: 10.0
# experience: 10.0
#fire_aspect-2:
# income: 20.0
# points: 20.0
# experience: 20.0
# This is default job players will have if they dint joined any
# When players join any job, they will loose access to this one
# You can set this to give out some money for basic actions, like killing players or breaking some blocks but job will not be visible and you can't level it up # You can set this to give out some money for basic actions, like killing players or breaking some blocks but job will not be visible and you can't level it up
# leveling-progression-equation and experience-progression-equation doesnt have any impact for this job # leveling-progression-equation and experience-progression-equation doesn't have any impact for this job
None: None:
fullname: None fullname: None
shortname: N shortname: N