diff --git a/src/main/java/zone/oat/supersecretrevival/Mod.java b/src/main/java/zone/oat/supersecretrevival/Mod.java index 650db04..65028d2 100644 --- a/src/main/java/zone/oat/supersecretrevival/Mod.java +++ b/src/main/java/zone/oat/supersecretrevival/Mod.java @@ -11,6 +11,8 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; +import net.minecraft.text.Text; +import net.minecraft.text.TranslatableText; import net.minecraft.util.registry.Registry; import net.minecraft.world.World; import org.lwjgl.glfw.GLFW; @@ -25,6 +27,9 @@ import java.util.Random; public class Mod implements ClientModInitializer { public static final Logger LOGGER = LoggerFactory.getLogger("super-secret-revival"); + // also used for identifying the button (Don't Worry about it) + public static final Text BUTTON_TEXT = new TranslatableText("options.supersecretrevival.super_secret_settings"); + private static KeyBinding disableShaderKeybind = KeyBindingHelper.registerKeyBinding(new KeyBinding( "key.supersecretrevival.disable", // The translation key of the keybinding's name InputUtil.Type.KEYSYM, // The type of the keybinding, KEYSYM for keyboard, MOUSE for mouse. diff --git a/src/main/java/zone/oat/supersecretrevival/mixin/CancelClickSoundMixin.java b/src/main/java/zone/oat/supersecretrevival/mixin/CancelClickSoundMixin.java new file mode 100644 index 0000000..f06e008 --- /dev/null +++ b/src/main/java/zone/oat/supersecretrevival/mixin/CancelClickSoundMixin.java @@ -0,0 +1,21 @@ +package zone.oat.supersecretrevival.mixin; + +import net.minecraft.client.gui.widget.ClickableWidget; +import net.minecraft.client.sound.SoundManager; +import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import zone.oat.supersecretrevival.Mod; + +@Mixin(ClickableWidget.class) +public class CancelClickSoundMixin { + @Shadow private Text message; + + @Inject(method = "playDownSound", at = @At(value = "HEAD"), cancellable = true) + private void injected(SoundManager soundManager, CallbackInfo ci) { + if (this.message.equals(Mod.BUTTON_TEXT)) ci.cancel(); + } +} diff --git a/src/main/java/zone/oat/supersecretrevival/mixin/SecretSettingsButtonMixin.java b/src/main/java/zone/oat/supersecretrevival/mixin/SecretSettingsButtonMixin.java index 72693dd..179180d 100644 --- a/src/main/java/zone/oat/supersecretrevival/mixin/SecretSettingsButtonMixin.java +++ b/src/main/java/zone/oat/supersecretrevival/mixin/SecretSettingsButtonMixin.java @@ -24,7 +24,7 @@ public class SecretSettingsButtonMixin extends Screen { this.height / 6 + 18, 150, 20, - new TranslatableText("options.supersecretrevival.super_secret_settings"), + Mod.BUTTON_TEXT, (button) -> { Mod.triggerSuperSecretSettings(); } diff --git a/src/main/resources/supersecretrevival.mixins.json b/src/main/resources/supersecretrevival.mixins.json index 2405663..e625582 100644 --- a/src/main/resources/supersecretrevival.mixins.json +++ b/src/main/resources/supersecretrevival.mixins.json @@ -5,6 +5,7 @@ "compatibilityLevel": "JAVA_17", "mixins": [], "client": [ + "CancelClickSoundMixin", "SecretSettingsButtonMixin" ], "server": [],