From c8cec714b7b150716ef323c1b69d7cf070163cd2 Mon Sep 17 00:00:00 2001 From: Brianna Date: Thu, 21 May 2020 17:48:23 -0400 Subject: [PATCH 1/3] Fix issue with saving. --- .../java/com/songoda/epichoppers/gui/GUIAutoSellFilter.java | 5 ++++- src/main/java/com/songoda/epichoppers/gui/GUIFilter.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/songoda/epichoppers/gui/GUIAutoSellFilter.java b/src/main/java/com/songoda/epichoppers/gui/GUIAutoSellFilter.java index b764575..cacc64e 100644 --- a/src/main/java/com/songoda/epichoppers/gui/GUIAutoSellFilter.java +++ b/src/main/java/com/songoda/epichoppers/gui/GUIAutoSellFilter.java @@ -54,7 +54,10 @@ public class GUIAutoSellFilter extends Gui { setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.ARROW.getItem(), plugin.getLocale().getMessage("general.nametag.back").getMessage()), - (event) -> hopper.overview(guiManager, event.player)); + (event) -> { + hopper.overview(guiManager, event.player); + compile(); + }); // Whitelist ItemStack indicatorItem = CompatibleMaterial.WHITE_STAINED_GLASS_PANE.getItem(); diff --git a/src/main/java/com/songoda/epichoppers/gui/GUIFilter.java b/src/main/java/com/songoda/epichoppers/gui/GUIFilter.java index 7cce91e..70a75e7 100644 --- a/src/main/java/com/songoda/epichoppers/gui/GUIFilter.java +++ b/src/main/java/com/songoda/epichoppers/gui/GUIFilter.java @@ -58,7 +58,10 @@ public class GUIFilter extends Gui { setButton(8, GuiUtils.createButtonItem(CompatibleMaterial.ARROW.getItem(), plugin.getLocale().getMessage("general.nametag.back").getMessage()), - (event) -> hopper.overview(guiManager, event.player)); + (event) -> { + hopper.overview(guiManager, event.player); + compile(); + }); int[] whiteSlots = {0, 1, 45, 46}; for (int nu : whiteSlots) { From 8d360eb88621b07d54c31a79291499813fe7955b Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Sat, 23 May 2020 21:30:37 +0200 Subject: [PATCH 2/3] Fix AutoCrafting in Spigot 1.12.2 Back in the ol' days... There were no such thing as `Material.BIRCH_PLANKS`. And that caused a NoSuchMethodError. As simple as that ^^ --- .../levels/modules/ModuleAutoCrafting.java | 16 +++++++++--- .../songoda/epichoppers/tasks/HopTask.java | 17 +++++++----- .../songoda/epichoppers/utils/Methods.java | 26 +++++++++---------- 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/songoda/epichoppers/hopper/levels/modules/ModuleAutoCrafting.java b/src/main/java/com/songoda/epichoppers/hopper/levels/modules/ModuleAutoCrafting.java index 1fac65b..f1c42a9 100644 --- a/src/main/java/com/songoda/epichoppers/hopper/levels/modules/ModuleAutoCrafting.java +++ b/src/main/java/com/songoda/epichoppers/hopper/levels/modules/ModuleAutoCrafting.java @@ -324,7 +324,7 @@ public class ModuleAutoCrafting extends Module { } public void addRecipes(Collection recipes) { - recipes.forEach(recipe -> this.addRecipe(recipe)); + recipes.forEach(this::addRecipe); } public boolean hasRecipes() { @@ -347,7 +347,12 @@ public class ModuleAutoCrafting extends Module { for (int i = 0; i < recipe.getIngredientList().size(); i++) { ItemStack item = recipe.getIngredientList().get(i); - RecipeChoice rChoice = recipe.getChoiceList().get(i); + RecipeChoice rChoice = null; + + try { + rChoice = recipe.getChoiceList().get(i); + } catch (NoSuchMethodError ignore) { // Method missing in Spigot 1.12.2 + } processIngredient(ingredients, item, rChoice); } @@ -362,7 +367,12 @@ public class ModuleAutoCrafting extends Module { for (Map.Entry entry : recipe.getIngredientMap().entrySet()) { ItemStack item = entry.getValue(); - RecipeChoice rChoice = recipe.getChoiceMap().get(entry.getKey()); + RecipeChoice rChoice = null; + + try { + rChoice = recipe.getChoiceMap().get(entry.getKey()); + } catch (NoSuchMethodError ignore) { // Method missing in Spigot 1.12.2 + } if (item == null) continue; diff --git a/src/main/java/com/songoda/epichoppers/tasks/HopTask.java b/src/main/java/com/songoda/epichoppers/tasks/HopTask.java index 83caaad..2b54dba 100644 --- a/src/main/java/com/songoda/epichoppers/tasks/HopTask.java +++ b/src/main/java/com/songoda/epichoppers/tasks/HopTask.java @@ -62,7 +62,6 @@ public class HopTask extends BukkitRunnable { public void run() { Set toRemove = new HashSet<>(); - main: for (final com.songoda.epichoppers.hopper.Hopper hopper : plugin.getHopperManager().getHoppers().values()) { try { @@ -108,13 +107,17 @@ public class HopTask extends BukkitRunnable { hopper.getLevel().getRegisteredModules().stream() .filter(Objects::nonNull) .forEach(module -> { - // Run Module - module.run(hopper, hopperCache); + try { + // Run Module + module.run(hopper, hopperCache); - // Add banned materials to list. - List materials = module.getBlockedItems(hopper); - if (materials != null && !materials.isEmpty()) - blockedMaterials.addAll(materials); + // Add banned materials to list. + List materials = module.getBlockedItems(hopper); + if (materials != null && !materials.isEmpty()) + blockedMaterials.addAll(materials); + } catch (Throwable th) { + th.printStackTrace(); + } }); // Process extra hopper pull diff --git a/src/main/java/com/songoda/epichoppers/utils/Methods.java b/src/main/java/com/songoda/epichoppers/utils/Methods.java index da8385d..588a06a 100644 --- a/src/main/java/com/songoda/epichoppers/utils/Methods.java +++ b/src/main/java/com/songoda/epichoppers/utils/Methods.java @@ -2,15 +2,12 @@ package com.songoda.epichoppers.utils; import com.songoda.core.compatibility.ServerVersion; import com.songoda.epichoppers.EpicHoppers; -import java.lang.reflect.Method; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -30,7 +27,9 @@ public class Methods { private static final Map serializeCache = new HashMap<>(); public static boolean isSimilarMaterial(ItemStack is1, ItemStack is2) { - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) { + if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13) || + is1.getDurability() == Short.MAX_VALUE || is2.getDurability() == Short.MAX_VALUE) { + // Durability of Short.MAX_VALUE is used in recipes if the durability should be ignored return is1.getType() == is2.getType(); } else { return is1.getType() == is2.getType() && (is1.getDurability() == -1 || is2.getDurability() == -1 || is1.getDurability() == is2.getDurability()); @@ -102,20 +101,20 @@ public class Methods { } public static String formatName(int level) { - EpicHoppers instance = EpicHoppers.getInstance(); - String name = instance.getLocale().getMessage("general.nametag.nameformat") - .processPlaceholder("level", level).getMessage(); + EpicHoppers instance = EpicHoppers.getInstance(); + String name = instance.getLocale().getMessage("general.nametag.nameformat") + .processPlaceholder("level", level).getMessage(); - return Methods.formatText(name); + return Methods.formatText(name); } public static void doParticles(Entity entity, Location location) { - EpicHoppers instance = EpicHoppers.getInstance(); - location.setX(location.getX() + .5); - location.setY(location.getY() + .5); - location.setZ(location.getZ() + .5); - entity.getWorld().spawnParticle(org.bukkit.Particle.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), location, 200, .5, .5, .5); + EpicHoppers instance = EpicHoppers.getInstance(); + location.setX(location.getX() + .5); + location.setY(location.getY() + .5); + location.setZ(location.getZ() + .5); + entity.getWorld().spawnParticle(org.bukkit.Particle.valueOf(instance.getConfig().getString("Main.Upgrade Particle Type")), location, 200, .5, .5, .5); } /** @@ -170,6 +169,7 @@ public class Methods { serializeCache.put(cacheKey, location.clone()); return location; } + public static String convertToInvisibleString(String s) { if (s == null || s.equals("")) return ""; From 77a17b5987f893bb83d125633fc3d5ab3a88bef8 Mon Sep 17 00:00:00 2001 From: Brianna Date: Thu, 21 May 2020 17:48:35 -0400 Subject: [PATCH 3/3] version 4.6.5 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aea2424..2d610e9 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ com.songoda EpicHoppers 4.0.0 - 4.6.4 + 4.6.5 clean install EpicHoppers-${project.version}