1
0
mirror of https://github.com/Zrips/Jobs.git synced 2025-02-18 05:11:32 +01:00

Changes in enchantments

- Removed the broadcast skill ups levels, this already exist on level up
- Removed enchantments from jobConfig due to prevent console errors, that some users don't know what is, because not read it (If you want to add enchantments just find and add it, that compatible with your client version)
- Now the enchanted names are generated successfully when plugin starts, for now the 1.13+ enchantments names are not the shorted names, such as durability, instead the fully name, suc as unbreaking (durability and other shorted names, are used in only 1.12 and under)
This commit is contained in:
montlikadani 2019-06-01 13:28:38 +02:00
parent 2a93f1b461
commit 00393ea4c2
20 changed files with 183 additions and 445 deletions

View File

@ -435,13 +435,13 @@ public class CMIItemStack {
for (Entry<Enchantment, Integer> one : meta.getStoredEnchants().entrySet()) {
if (!s.isEmpty())
s += ";";
s += one.getKey().getName() + "x" + one.getValue();
s += Jobs.getNms().getEnchantName(one.getKey()) + "x" + one.getValue();
}
for (Entry<Enchantment, Integer> one : meta.getEnchants().entrySet()) {
if (!s.isEmpty())
s += ";";
s += one.getKey().getName() + "x" + one.getValue();
s += Jobs.getNms().getEnchantName(one.getKey()) + "x" + one.getValue();
}
if (!s.isEmpty())
liner += ":" + s;

View File

@ -54,7 +54,7 @@ public class ItemBoostManager {
}
List<String> ench = new ArrayList<>();
for (Entry<Enchantment, Integer> oneE : stack.getEnchantments().entrySet()) {
ench.add(oneE.getKey().getName() + "=" + oneE.getValue());
ench.add(Jobs.getNms().getEnchantName(oneE.getKey()) + "=" + oneE.getValue());
}
cfg.getC().set(name + ".enchants", ench);
for (CurrencyType oneC : CurrencyType.values()) {
@ -145,7 +145,7 @@ public class ItemBoostManager {
for (String eachLine : cfg.get(one + ".enchants", Arrays.asList(""))) {
if (!eachLine.contains("="))
continue;
Enchantment ench = Enchantment.getByName(eachLine.split("=")[0]);
Enchantment ench = Jobs.getNms().getEnchantment(eachLine.split("=")[0]);
Integer level = -1;
try {
level = Integer.parseInt(eachLine.split("=")[1]);

View File

@ -102,7 +102,6 @@ import com.gamingmesh.jobs.listeners.JobsPaymentListener;
import com.gamingmesh.jobs.listeners.PistonProtectionListener;
import com.gamingmesh.jobs.selection.SelectionManager;
import com.gamingmesh.jobs.stuff.CMIScoreboardManager;
import com.gamingmesh.jobs.stuff.Debug;
import com.gamingmesh.jobs.stuff.FurnaceBrewingHandling;
import com.gamingmesh.jobs.stuff.Loging;
import com.gamingmesh.jobs.stuff.PageInfo;
@ -184,10 +183,10 @@ public class Jobs extends JavaPlugin {
}
/**
* Gets the McMMO Listener
* Gets the {@link #McMMOManager} file
*
* @return McMMO Listener
* @deprecated Use the getMcMMOManager()
* @return McMMO Manager
* @deprecated Use instead {@link #getMcMMOManager()}
*/
@Deprecated
public static McMMOManager getMcMMOlistener() {

View File

@ -2,6 +2,7 @@ package com.gamingmesh.jobs;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -21,4 +22,8 @@ public interface NMS {
public double getMaxHealth(LivingEntity entity);
public short getDurability(ItemStack item);
public Enchantment getEnchantment(String type);
public String getEnchantName(Enchantment type);
}

View File

@ -603,8 +603,7 @@ public class PlayerManager {
message = message.replace("%jobname%", job.getChatColor() + job.getName());
for (String line : message.split("\n")) {
if (Jobs.getGCManager().isBroadcastingSkillups()) {
if (Jobs.getGCManager().BroadcastingSkillUpLevels.contains(oldLevel + 1) || Jobs.getGCManager().BroadcastingSkillUpLevels.contains(0))
Bukkit.getServer().broadcastMessage(line);
Bukkit.getServer().broadcastMessage(line);
} else if (player != null) {
if (Jobs.getGCManager().TitleChangeActionBar)
Jobs.getActionBar().send(player, line);
@ -847,8 +846,8 @@ public class PlayerManager {
if (player == null || prog == null)
return boost;
if (Jobs.getMcMMOlistener().mcMMOPresent || Jobs.getMcMMOlistener().mcMMOOverHaul)
boost.add(BoostOf.McMMO, new BoostMultiplier().add(Jobs.getMcMMOlistener().getMultiplier(player.getPlayer())));
if (Jobs.getMcMMOManager().mcMMOPresent || Jobs.getMcMMOManager().mcMMOOverHaul)
boost.add(BoostOf.McMMO, new BoostMultiplier().add(Jobs.getMcMMOManager().getMultiplier(player.getPlayer())));
if (ent != null && (ent instanceof Tameable)) {
Tameable t = (Tameable) ent;

View File

@ -54,7 +54,7 @@ public class bonus implements Cmd {
printBoost(sender, boost, BoostOf.NearSpawner);
printBoost(sender, boost, BoostOf.PetPay);
if (Jobs.getMcMMOlistener().mcMMOPresent || Jobs.getMcMMOlistener().mcMMOOverHaul && boost.get(BoostOf.McMMO, CurrencyType.EXP) != 0D)
if (Jobs.getMcMMOManager().mcMMOPresent || Jobs.getMcMMOManager().mcMMOOverHaul && boost.get(BoostOf.McMMO, CurrencyType.EXP) != 0D)
printBoost(sender, boost, BoostOf.McMMO);
sender.sendMessage(Jobs.getLanguage().getMessage("general.info.separator"));

View File

@ -620,10 +620,10 @@ public class ConfigManager {
String[] enchantid = str4.split(":");
if ((GUIitem.getItemMeta() instanceof EnchantmentStorageMeta)) {
EnchantmentStorageMeta enchantMeta = (EnchantmentStorageMeta) GUIitem.getItemMeta();
enchantMeta.addStoredEnchant(Enchantment.getByName(enchantid[0]), Integer.parseInt(enchantid[1]), true);
enchantMeta.addStoredEnchant(Jobs.getNms().getEnchantment(enchantid[0]), Integer.parseInt(enchantid[1]), true);
GUIitem.setItemMeta(enchantMeta);
} else
GUIitem.addUnsafeEnchantment(Enchantment.getByName(enchantid[0]), Integer.parseInt(enchantid[1]));
GUIitem.addUnsafeEnchantment(Jobs.getNms().getEnchantment(enchantid[0]), Integer.parseInt(enchantid[1]));
}
}
} else if (guiSection.contains("CustomSkull")) {
@ -649,10 +649,10 @@ public class ConfigManager {
String[] id = str4.split(":");
if ((GUIitem.getItemMeta() instanceof EnchantmentStorageMeta)) {
EnchantmentStorageMeta enchantMeta = (EnchantmentStorageMeta) GUIitem.getItemMeta();
enchantMeta.addStoredEnchant(Enchantment.getByName(id[0]), Integer.parseInt(id[1]), true);
enchantMeta.addStoredEnchant(Jobs.getNms().getEnchantment(id[0]), Integer.parseInt(id[1]), true);
GUIitem.setItemMeta(enchantMeta);
} else
GUIitem.addUnsafeEnchantment(Enchantment.getByName(id[0]), Integer.parseInt(id[1]));
GUIitem.addUnsafeEnchantment(Jobs.getNms().getEnchantment(id[0]), Integer.parseInt(id[1]));
}
}
} else if (guiSection.contains("CustomSkull")) {
@ -778,7 +778,7 @@ public class ConfigManager {
if (!eachLine.contains("="))
continue;
Enchantment ench = Enchantment.getByName(eachLine.split("=")[0]);
Enchantment ench = Jobs.getNms().getEnchantment(eachLine.split("=")[0]);
Integer level = -1;
try {
level = Integer.parseInt(eachLine.split("=")[1]);
@ -835,7 +835,7 @@ public class ConfigManager {
if (!eachLine.contains("="))
continue;
Enchantment ench = Enchantment.getByName(eachLine.split("=")[0]);
Enchantment ench = Jobs.getNms().getEnchantment(eachLine.split("=")[0]);
Integer level = -1;
try {
level = Integer.parseInt(eachLine.split("=")[1]);
@ -1126,7 +1126,7 @@ public class ConfigManager {
}
} else if (actionType == ActionType.ENCHANT) {
Enchantment enchant = Enchantment.getByName(myKey.toUpperCase());
Enchantment enchant = Jobs.getNms().getEnchantment(myKey);
if (enchant != null) {
if (Jobs.getVersionCheckManager().getVersion().isEqualOrLower(Version.v1_12_R1)) {
try {

View File

@ -42,7 +42,6 @@ import com.gamingmesh.jobs.resources.jfep.Parser;
public class GeneralConfigManager {
private Jobs plugin;
public List<Integer> BroadcastingLevelUpLevels = new ArrayList<>();
public List<Integer> BroadcastingSkillUpLevels = new ArrayList<>();
protected Locale locale;
protected int savePeriod;
protected boolean economyAsync;
@ -490,8 +489,6 @@ public class GeneralConfigManager {
c.addComment("broadcast.on-skill-up.use", "Do all players get a message when someone goes up a skill level?");
isBroadcastingSkillups = c.get("broadcast.on-skill-up.use", false);
c.addComment("broadcast.on-skill-up.levels", "For what skill levels you want to broadcast message? Keep it at 0 if you want for all of them");
BroadcastingSkillUpLevels = c.getIntList("broadcast.on-skill-up.levels", Arrays.asList(0));
c.addComment("broadcast.on-level-up.use", "Do all players get a message when someone goes up a level?");
isBroadcastingLevelups = c.get("broadcast.on-level-up.use", false);

View File

@ -25,7 +25,7 @@ public class NameTranslatorManager {
public ArrayList<NameList> ListOfNames = new ArrayList<>();
public ArrayList<NameList> ListOfPotionNames = new ArrayList<>();
public ArrayList<NameList> ListOfEntities = new ArrayList<>();
public HashMap<String, NameList> ListOfEnchants = new HashMap<String, NameList>();
public HashMap<String, NameList> ListOfEnchants = new HashMap<>();
public ArrayList<NameList> ListOfColors = new ArrayList<>();
public String Translate(String materialName, JobInfo info) {
@ -354,22 +354,21 @@ public class NameTranslatorManager {
}
for (Enchantment one : Enchantment.values()) {
if (one == null)
continue;
if (one.getName() == null)
if (Jobs.getNms().getEnchantName(one) == null)
continue;
String name = Util.firstToUpperCase(one.getName().toString()).replace("_", " ");
String name = Util.firstToUpperCase(Jobs.getNms().getEnchantName(one).toString()).replace("_", " ");
if (c.getC().isConfigurationSection("EnchantList"))
for (String onek : c.getC().getConfigurationSection("EnchantList").getKeys(false)) {
String old = c.getC().getString("EnchantList." + onek + ".MCName");
if (old != null && old.equalsIgnoreCase(one.getName())) {
if (old != null && old.equalsIgnoreCase(Jobs.getNms().getEnchantName(one))) {
name = c.getC().getString("EnchantList." + onek + ".Name");
break;
}
}
c.get("EnchantList." + one.getName(), name);
c.get("EnchantList." + Jobs.getNms().getEnchantName(one), name);
}
// Color list

View File

@ -442,7 +442,7 @@ public class ShopManager {
if (!eachLine.contains("="))
continue;
Enchantment ench = Enchantment.getByName(eachLine.split("=")[0]);
Enchantment ench = Jobs.getNms().getEnchantment(eachLine.split("=")[0]);
Integer level = -1;
try {
level = Integer.parseInt(eachLine.split("=")[1]);

View File

@ -408,7 +408,7 @@ public class JobsPaymentListener implements Listener {
// Protection for block break with silktouch
if (Jobs.getGCManager().useSilkTouchProtection) {
for (Entry<Enchantment, Integer> one : item.getEnchantments().entrySet()) {
if (one.getKey().getName().equalsIgnoreCase("SILK_TOUCH")) {
if (Jobs.getNms().getEnchantName(one.getKey()).equalsIgnoreCase("SILK_TOUCH")) {
if (Jobs.getBpManager().isInBp(block))
return;
}
@ -775,7 +775,6 @@ public class JobsPaymentListener implements Listener {
}
ItemStack resultStack = event.getCurrentItem();
if (resultStack == null)
return;
@ -823,7 +822,7 @@ public class JobsPaymentListener implements Listener {
if (enchant == null)
continue;
String enchantName = enchant.getName();
String enchantName = Jobs.getNms().getEnchantName(enchant);
if (enchantName == null)
continue;
@ -886,7 +885,7 @@ public class JobsPaymentListener implements Listener {
if (enchant == null)
continue;
String enchantName = enchant.getName();
String enchantName = Jobs.getNms().getEnchantName(enchant);
if (enchantName == null)
continue;

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Guardian;
import org.bukkit.entity.Horse;
@ -81,4 +82,14 @@ public class v1_10 implements NMS {
public short getDurability(ItemStack item) {
return item.getDurability();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByName(type.toUpperCase());
}
@Override
public String getEnchantName(Enchantment type) {
return type.getName();
}
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -60,4 +61,14 @@ public class v1_11 implements NMS {
public short getDurability(ItemStack item) {
return item.getDurability();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByName(type.toUpperCase());
}
@Override
public String getEnchantName(Enchantment type) {
return type.getName();
}
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import org.bukkit.attribute.Attribute;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -61,4 +62,14 @@ public class v1_12 implements NMS {
public short getDurability(ItemStack item) {
return item.getDurability();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByName(type.toUpperCase());
}
@Override
public String getEnchantName(Enchantment type) {
return type.getName();
}
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import org.bukkit.attribute.Attribute;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -46,4 +47,14 @@ public class v1_13 implements NMS {
public short getDurability(ItemStack item) {
return (short) ((Damageable) item.getItemMeta()).getDamage();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByKey(org.bukkit.NamespacedKey.minecraft(type.toLowerCase()));
}
@Override
public String getEnchantName(Enchantment type) {
return type.getKey().getKey();
}
}

View File

@ -5,6 +5,7 @@ import java.util.List;
import org.bukkit.attribute.Attribute;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -46,4 +47,14 @@ public class v1_14 implements NMS {
public short getDurability(ItemStack item) {
return (short) ((Damageable) item.getItemMeta()).getDamage();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByKey(org.bukkit.NamespacedKey.minecraft(type.toLowerCase()));
}
@Override
public String getEnchantName(Enchantment type) {
return type.getKey().getKey();
}
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Horse;
import org.bukkit.entity.Player;
@ -71,4 +72,14 @@ public class v1_7 implements NMS {
public short getDurability(ItemStack item) {
return item.getDurability();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByName(type.toUpperCase());
}
@Override
public String getEnchantName(Enchantment type) {
return type.getName();
}
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Guardian;
import org.bukkit.entity.Horse;
@ -77,4 +78,14 @@ public class v1_8 implements NMS {
public short getDurability(ItemStack item) {
return item.getDurability();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByName(type.toUpperCase());
}
@Override
public String getEnchantName(Enchantment type) {
return type.getName();
}
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Guardian;
import org.bukkit.entity.Horse;
@ -77,4 +78,14 @@ public class v1_9 implements NMS {
public short getDurability(ItemStack item) {
return item.getDurability();
}
@Override
public Enchantment getEnchantment(String type) {
return Enchantment.getByName(type.toUpperCase());
}
@Override
public String getEnchantName(Enchantment type) {
return type.getName();
}
}

View File

@ -3274,417 +3274,69 @@ Jobs:
income: 6.0
points: 6.0
experience: 30.0
#Power
ARROW_DAMAGE-1:
income: 10.0
points: 10.0
experience: 10.0
ARROW_DAMAGE-2:
income: 20.0
points: 20.0
experience: 20.0
ARROW_DAMAGE-3:
income: 30.0
points: 30.0
experience: 30.0
ARROW_DAMAGE-4:
income: 40.0
points: 40.0
experience: 40.0
ARROW_DAMAGE-5:
income: 50.0
points: 50.0
experience: 50.0
#Flame
ARROW_FIRE:
income: 10.0
points: 10.0
experience: 30.0
#Infinity
ARROW_INFINITE:
income: 20.0
points: 20.0
experience: 50.0
#Punch
ARROW_KNOCKBACK-1:
income: 10.0
points: 10.0
experience: 10.0
ARROW_KNOCKBACK-2:
income: 20.0
points: 20.0
experience: 20.0
#Sharpness
DAMAGE_ALL-1:
income: 10.0
points: 10.0
experience: 10.0
DAMAGE_ALL-2:
income: 20.0
points: 20.0
experience: 20.0
DAMAGE_ALL-3:
income: 30.0
points: 30.0
experience: 30.0
DAMAGE_ALL-4:
income: 40.0
points: 40.0
experience: 40.0
DAMAGE_ALL-5:
income: 50.0
points: 50.0
experience: 50.0
#Bane of Arthropods
DAMAGE_ARTHROPODS-1:
income: 10.0
points: 10.0
experience: 10.0
DAMAGE_ARTHROPODS-2:
income: 20.0
points: 20.0
experience: 20.0
DAMAGE_ARTHROPODS-3:
income: 30.0
points: 30.0
experience: 30.0
DAMAGE_ARTHROPODS-4:
income: 40.0
points: 40.0
experience: 40.0
DAMAGE_ARTHROPODS-5:
income: 50.0
points: 50.0
experience: 50.0
#Smite
DAMAGE_UNDEAD-1:
income: 10.0
points: 10.0
experience: 10.0
DAMAGE_UNDEAD-2:
income: 20.0
points: 20.0
experience: 20.0
DAMAGE_UNDEAD-3:
income: 30.0
points: 30.0
experience: 30.0
DAMAGE_UNDEAD-4:
income: 40.0
points: 40.0
experience: 40.0
DAMAGE_UNDEAD-5:
income: 50.0
points: 50.0
experience: 50.0
DEPTH_STRIDER-1:
income: 10.0
points: 10.0
experience: 10.0
DEPTH_STRIDER-2:
income: 20.0
points: 20.0
experience: 20.0
DEPTH_STRIDER-3:
income: 30.0
points: 30.0
experience: 30.0
#Efficiency
DIG_SPEED-1:
income: 10.0
points: 10.0
experience: 10.0
DIG_SPEED-2:
income: 20.0
points: 20.0
experience: 20.0
DIG_SPEED-3:
income: 30.0
points: 30.0
experience: 30.0
DIG_SPEED-4:
income: 40.0
points: 40.0
experience: 40.0
DIG_SPEED-5:
income: 50.0
points: 50.0
experience: 50.0
#Unbreaking
DURABILITY-1:
income: 10.0
points: 10.0
experience: 10.0
DURABILITY-2:
income: 20.0
points: 20.0
experience: 20.0
DURABILITY-3:
income: 30.0
points: 30.0
experience: 30.0
FIRE_ASPECT-1:
income: 10.0
points: 10.0
experience: 10.0
FIRE_ASPECT-2:
income: 20.0
points: 20.0
experience: 20.0
KNOCKBACK-1:
income: 10.0
points: 10.0
experience: 10.0
KNOCKBACK-2:
income: 20.0
points: 20.0
experience: 20.0
#Fortune
LOOT_BONUS_BLOCKS-1:
income: 20.0
points: 20.0
experience: 100.0
LOOT_BONUS_BLOCKS-2:
income: 40.0
points: 40.0
experience: 200.0
LOOT_BONUS_BLOCKS-3:
income: 80.0
points: 80.0
experience: 300.0
#Looting
LOOT_BONUS_MOBS-1:
income: 10.0
points: 10.0
experience: 20.0
LOOT_BONUS_MOBS-2:
income: 20.0
points: 20.0
experience: 40.0
LOOT_BONUS_MOBS-3:
income: 30.0
points: 30.0
experience: 60.0
#Luck of the Sea
LUCK-1:
income: 15.0
points: 15.0
experience: 10.0
LUCK-2:
income: 25.0
points: 25.0
experience: 20.0
LUCK-3:
income: 35.0
points: 35.0
experience: 30.0
LURE-1:
income: 10.0
points: 10.0
experience: 10.0
LURE-2:
income: 20.0
points: 20.0
experience: 20.0
LURE-3:
income: 30.0
points: 30.0
experience: 30.0
#Respiration
OXYGEN-1:
income: 10.0
points: 10.0
experience: 10.0
OXYGEN-2:
income: 20.0
points: 20.0
experience: 20.0
OXYGEN-3:
income: 30.0
points: 30.0
experience: 30.0
#Protection
PROTECTION_ENVIRONMENTAL-1:
income: 10.0
points: 10.0
experience: 10.0
PROTECTION_ENVIRONMENTAL-2:
income: 20.0
points: 20.0
experience: 20.0
PROTECTION_ENVIRONMENTAL-3:
income: 30.0
points: 30.0
experience: 30.0
PROTECTION_ENVIRONMENTAL-4:
income: 40.0
points: 40.0
experience: 40.0
#Blast Protection
PROTECTION_EXPLOSIONS-1:
income: 10.0
points: 10.0
experience: 10.0
PROTECTION_EXPLOSIONS-2:
income: 20.0
points: 20.0
experience: 20.0
PROTECTION_EXPLOSIONS-3:
income: 30.0
points: 30.0
experience: 30.0
PROTECTION_EXPLOSIONS-4:
income: 40.0
points: 40.0
experience: 40.0
#Feather Falling
PROTECTION_FALL-1:
income: 10.0
points: 10.0
experience: 10.0
PROTECTION_FALL-2:
income: 20.0
points: 20.0
experience: 20.0
PROTECTION_FALL-3:
income: 30.0
points: 30.0
experience: 30.0
PROTECTION_FALL-4:
income: 40.0
points: 40.0
experience: 40.0
#Fire Protection
PROTECTION_FIRE-1:
income: 5.0
points: 5.0
experience: 10.0
PROTECTION_FIRE-2:
income: 10.0
points: 10.0
experience: 20.0
PROTECTION_FIRE-3:
income: 20.0
points: 20.0
experience: 30.0
PROTECTION_FIRE-4:
income: 30.0
points: 30.0
experience: 40.0
PROTECTION_PROJECTILE-1:
income: 10.0
points: 10.0
experience: 10.0
PROTECTION_PROJECTILE-2:
income: 20.0
points: 20.0
experience: 20.0
PROTECTION_PROJECTILE-3:
income: 30.0
points: 30.0
experience: 30.0
PROTECTION_PROJECTILE-4:
income: 40.0
points: 40.0
experience: 40.0
SILK_TOUCH:
income: 100.0
points: 100.0
experience: 300.0
THORNS-1:
income: 10.0
points: 10.0
experience: 10.0
THORNS-2:
income: 20.0
points: 20.0
experience: 20.0
THORNS-3:
income: 30.0
points: 30.0
experience: 30.0
#Aqua Affinity
WATER_WORKER:
income: 30.0
points: 30.0
experience: 100.0
#1.13 enchantments
channeling:
income: 10
points: 10
experience: 10
#Curse of Binding
binding_curse:
income: 5
points: 5
experience: 5
#Curse of Vanishing
vanishing_curse:
income: 5
points: 5
experience: 5
frost_walker-1:
income: 10
points: 10
experience: 10
frost_walker-2:
income: 20
points: 20
experience: 20
impaling-1:
income: 10
points: 10
experience: 10
impaling-2:
income: 20
points: 20
experience: 20
impaling-3:
income: 30
points: 30
experience: 30
impaling-4:
income: 40
points: 40
experience: 40
impaling-5:
income: 50
points: 50
experience: 50
loyalty-1:
income: 10
points: 10
experience: 10
loyalty-2:
income: 20
points: 20
experience: 20
loyalty-3:
income: 30
points: 30
experience: 30
mending:
income: 10
points: 10
experience: 10
riptide:
income: 20
points: 20
experience: 20
sweeping_edge:
income: 15
points: 15
experience: 15
multishot:
income: 5
points: 5
piercing:
income: 7
points: 5
experience: 11
quick_charge:
income: 6
points: 4
# 1.13+: power
# 1.12 and under: arrow_damage
#power-1:
# income: 10.0
# points: 10.0
# experience: 10.0
#arrow_damage-2:
# income: 20.0
# 1.13+: flame
# 1.12 and under: arrow_fire
#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
None:
fullname: None
shortname: N