aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter13.java8
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter14.java8
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter8.java24
3 files changed, 21 insertions, 19 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter13.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter13.java
index 57e980ca..8b89bdfe 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter13.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter13.java
@@ -26,7 +26,7 @@ import java.util.UUID;
* <li>lore</li>
* <li>enchantments (<b>without</b> namespace support)</li>
* <li>item flags</li>
- * <li>unbreakability</li>
+ * <li>unbreakability (<b>with</b> CraftBukkit support)</li>
* <li>attribute modifiers</li>
* </ul>
* Requires at least API version 1.13.
@@ -124,9 +124,9 @@ public class ItemGetter13 extends ItemGetter {
}
// unbreakability
- boolean unbreakable = config.getBoolean("unbreakable", false);
- if (unbreakable && !filters.contains(Filter.UNBREAKABLE)) {
- meta.setUnbreakable(true);
+ Boolean unbreakable = (Boolean) config.get("unbreakable");
+ if (unbreakable != null && !filters.contains(Filter.UNBREAKABLE)) {
+ meta.setUnbreakable(unbreakable);
}
// attribute modifiers
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter14.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter14.java
index 630b0fbd..351a7dd4 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter14.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter14.java
@@ -29,7 +29,7 @@ import java.util.UUID;
* <li>lore</li>
* <li>enchantments (<b>without</b> namespace support)</li>
* <li>item flags</li>
- * <li>unbreakability</li>
+ * <li>unbreakability (<b>with</b> CraftBukkit support)</li>
* <li>attribute modifiers</li>
* <li>custom model data</li>
* </ul>
@@ -128,9 +128,9 @@ public class ItemGetter14 extends ItemGetter {
}
// unbreakability
- boolean unbreakable = config.getBoolean("unbreakable", false);
- if (unbreakable && !filters.contains(Filter.UNBREAKABLE)) {
- meta.setUnbreakable(true);
+ Boolean unbreakable = (Boolean) config.get("unbreakable");
+ if (unbreakable != null && !filters.contains(Filter.UNBREAKABLE)) {
+ meta.setUnbreakable(unbreakable);
}
// attribute modifiers
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter8.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter8.java
index 5f3746f4..d3405a5e 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter8.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter8.java
@@ -23,15 +23,15 @@ import java.util.List;
* <li>lore</li>
* <li>enchantments (<b>without</b> namespace support)</li>
* <li>item flags</li>
- * <li>unbreakability</li>
+ * <li>unbreakability (<b>without</b> CraftBukkit support)</li>
* </ul>
* Requires at least API version 1.8.
*/
@SuppressWarnings({"deprecation", "DuplicatedCode", "JavaReflectionMemberAccess"})
public class ItemGetter8 extends ItemGetter {
- private static final Method spigotMethod;
- private static final Method setUnbreakableMethod;
+ private static Method spigotMethod;
+ private static Method setUnbreakableMethod;
static {
try {
@@ -39,8 +39,8 @@ public class ItemGetter8 extends ItemGetter {
Class<?> spigotClass = Class.forName("org.bukkit.inventory.meta.ItemMeta.Spigot");
setUnbreakableMethod = spigotClass.getMethod("setUnbreakable", boolean.class);
- } catch (ClassNotFoundException | NoSuchMethodException e) {
- throw new RuntimeException(e);
+ } catch (ClassNotFoundException | NoSuchMethodException ignored) {
+ // server version cannot support the method (doesn't work on CraftBukkit)
}
}
@@ -133,12 +133,14 @@ public class ItemGetter8 extends ItemGetter {
}
}
- // unbreakability
- boolean unbreakable = config.getBoolean("unbreakable", false);
- if (unbreakable && !filters.contains(Filter.UNBREAKABLE)) {
- try {
- setUnbreakableMethod.invoke(spigotMethod.invoke(meta), true);
- } catch (IllegalAccessException | InvocationTargetException ignored) {
+ if (spigotMethod != null && setUnbreakableMethod != null) {
+ // unbreakability
+ Boolean unbreakable = (Boolean) config.get("unbreakable");
+ if (unbreakable != null && !filters.contains(Filter.UNBREAKABLE)) {
+ try {
+ setUnbreakableMethod.invoke(spigotMethod.invoke(meta), unbreakable);
+ } catch (IllegalAccessException | InvocationTargetException ignored) {
+ }
}
}