diff options
Diffstat (limited to 'bukkit/src/main/java/com/leonardobishop')
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) { + } } } |
