From fd01b75c33ca13354226f0d52cc2cb0eaebb16aa Mon Sep 17 00:00:00 2001 From: md678685 Date: Sat, 5 Jan 2019 15:26:48 +0000 Subject: [PATCH] Wrap UnsafeValues.fromLegacy() in try/catch for older versions Should address #2352. --- .../earth2me/essentials/utils/MaterialUtil.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/utils/MaterialUtil.java b/Essentials/src/com/earth2me/essentials/utils/MaterialUtil.java index 69fe9117d..02b44d54a 100644 --- a/Essentials/src/com/earth2me/essentials/utils/MaterialUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/MaterialUtil.java @@ -103,11 +103,16 @@ public class MaterialUtil { } public static Material convertFromLegacy(int id, byte damage) { - return EnumSet.allOf(Material.class).stream() - .filter(material -> material.getId() == id) - .findFirst() - .map(material -> Bukkit.getUnsafe().fromLegacy(new MaterialData(material, damage))) - .orElse(null); + for (Material material : EnumSet.allOf(Material.class)) { + if (material.getId() == id) { + try { + return Bukkit.getUnsafe().fromLegacy(new MaterialData(material, damage)); + } catch (NoSuchMethodError error) { + return material; + } + } + } + return null; } public static DyeColor getColorOf(Material material) {