diff --git a/src/main/java/codechicken/nei/api/IStackStringifyHandler.java b/src/main/java/codechicken/nei/api/IStackStringifyHandler.java index 6b5e538f..6984489b 100644 --- a/src/main/java/codechicken/nei/api/IStackStringifyHandler.java +++ b/src/main/java/codechicken/nei/api/IStackStringifyHandler.java @@ -24,4 +24,6 @@ public interface IStackStringifyHandler { return null; } + default void playItemDamageSound(boolean enabled) {} + } diff --git a/src/main/java/codechicken/nei/recipe/AutoCraftingManager.java b/src/main/java/codechicken/nei/recipe/AutoCraftingManager.java index 8fecfa0a..f365be62 100644 --- a/src/main/java/codechicken/nei/recipe/AutoCraftingManager.java +++ b/src/main/java/codechicken/nei/recipe/AutoCraftingManager.java @@ -32,6 +32,8 @@ public class AutoCraftingManager { boolean processed = false; boolean changed = false; + StackInfo.playItemDamageSound(false); + do { changed = false; @@ -68,6 +70,8 @@ public class AutoCraftingManager { } while (changed && !interrupted(guiContainer)); + StackInfo.playItemDamageSound(true); + if (processed && !changed && !interrupted(guiContainer)) { NEIClientUtils.playClickSound(); } diff --git a/src/main/java/codechicken/nei/recipe/StackInfo.java b/src/main/java/codechicken/nei/recipe/StackInfo.java index 4ed24bca..a4934d7e 100644 --- a/src/main/java/codechicken/nei/recipe/StackInfo.java +++ b/src/main/java/codechicken/nei/recipe/StackInfo.java @@ -84,6 +84,12 @@ public class StackInfo { return result; } + public static void playItemDamageSound(boolean enabled) { + for (IStackStringifyHandler handler : stackStringifyHandlers) { + handler.playItemDamageSound(enabled); + } + } + public static ItemStack withAmount(ItemStack stack, long customCount) { if (stack == null) return null; final NBTTagCompound nbTag = StackInfo.itemStackToNBT(stack); diff --git a/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java b/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java index 47637494..741f23f9 100644 --- a/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java +++ b/src/main/java/codechicken/nei/recipe/stackinfo/GTFluidStackStringifyHandler.java @@ -1,5 +1,6 @@ package codechicken.nei.recipe.stackinfo; +import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Optional; @@ -22,6 +23,7 @@ public class GTFluidStackStringifyHandler implements IStackStringifyHandler { public static boolean replaceAE2FCFluidDrop = false; private static Class gtMetaGeneratedTool = null; private static Method getContainerItem = null; + private static Field playSound = null; static { try { @@ -40,6 +42,9 @@ public class GTFluidStackStringifyHandler implements IStackStringifyHandler { getContainerItem = gtMetaGeneratedTool .getDeclaredMethod("getContainerItem", ItemStack.class, boolean.class, boolean.class); getContainerItem.setAccessible(true); + + playSound = gtMetaGeneratedTool.getDeclaredField("playSound"); + playSound.setAccessible(true); } catch (Exception ignored) { /* Do nothing */ } @@ -125,4 +130,15 @@ public class GTFluidStackStringifyHandler implements IStackStringifyHandler { return null; } + + @Override + public void playItemDamageSound(boolean enabled) { + if (playSound != null) { + try { + playSound.setBoolean(null, enabled); + } catch (Exception e) {} + } + + } + }