Skip to content

Commit

Permalink
patch for spigot's enchantment API being awful
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Oct 21, 2020
1 parent 4a5ad7c commit 6a1238b
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 20 deletions.
@@ -1,7 +1,7 @@
package com.denizenscript.denizen.objects.properties.item;

import com.denizenscript.denizen.utilities.Utilities;
import com.denizenscript.denizen.utilities.debugging.Debug;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.denizenscript.denizen.objects.ItemTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.Mechanism;
Expand Down Expand Up @@ -242,31 +242,32 @@ public void adjust(Mechanism mechanism) {
}
else {
String[] data = enchant.split(",", 2);
if (Integer.valueOf(data[1]) == null) {
Debug.echoError("Cannot apply enchantment '" + data[0] + "': '" + data[1] + "' is not a valid integer!");
}
else {
try {
Enchantment ench = Utilities.getEnchantmentByName(data[0]);
if (ench != null) {
if (item.getItemStack().getType() == Material.ENCHANTED_BOOK) {
EnchantmentStorageMeta meta = (EnchantmentStorageMeta) item.getItemMeta();
meta.addStoredEnchant(ench, Integer.valueOf(data[1]), true);
item.setItemMeta(meta);
}
else {
item.getItemStack().addUnsafeEnchantment(ench, Integer.valueOf(data[1]));
item.meta = null;
}
try {
Enchantment ench = Utilities.getEnchantmentByName(data[0]);
if (ench != null) {
if (item.getItemStack().getType() == Material.ENCHANTED_BOOK) {
EnchantmentStorageMeta meta = (EnchantmentStorageMeta) item.getItemMeta();
meta.addStoredEnchant(ench, Integer.valueOf(data[1]), true);
item.setItemMeta(meta);
}
else {
Debug.echoError("Unknown enchantment '" + data[0] + "'");
item.getItemStack().addUnsafeEnchantment(ench, Integer.valueOf(data[1]));
item.meta = null;
}
}
catch (NullPointerException e) {
else {
Debug.echoError("Unknown enchantment '" + data[0] + "'");
}
}
catch (NullPointerException e) {
Debug.echoError("Unknown enchantment '" + data[0] + "'");
}
catch (NumberFormatException ex) {
Debug.echoError("Cannot apply enchantment '" + data[0] + "': '" + data[1] + "' is not a valid integer!");
if (Debug.verbose) {
Debug.echoError(ex);
}
}
}
}
}
Expand Down
Expand Up @@ -278,7 +278,8 @@ public ItemTag getItemFrom(TagContext context) {
}
// Add enchantment
Enchantment ench = Utilities.getEnchantmentByName(enchantment);
stack.getItemMeta().addEnchant(ench, level, true);
stack.getItemStack().addUnsafeEnchantment(ench, level);
stack.meta = null;
}
catch (Exception ex) {
Debug.echoError("While constructing '" + getName() + "', encountered error: '" + enchantment + "' is an invalid enchantment: " + ex.getClass().getName() + ": " + ex.getMessage());
Expand Down

0 comments on commit 6a1238b

Please sign in to comment.