From 6ba899a9ae6686f5ebcee4161d1e74e832e279a8 Mon Sep 17 00:00:00 2001 From: CoolAid48 Date: Sat, 25 Apr 2026 12:32:28 -0400 Subject: [PATCH 1/2] Update to 26.1+ - Bump version - Added mod contributors to metadata - Updated GUI rendering calls to use the new GuiGraphicsExtractor API - Fixed mixin targets in SubtitleOverlayMixin to match renamed methods --- gradle.properties | 8 ++++---- gradle/wrapper/gradle-wrapper.properties | 2 +- .../gui/AllSoundOptionsScreen.java | 19 +++++++++---------- .../gui/VolumeWidgetEntry.java | 10 +++++----- .../gui/buttons/HoverableButtonWidget.java | 4 ++-- .../mixin/SubtitleOverlayMixin.java | 16 ++++++++-------- src/main/resources/fabric.mod.json | 14 +++++++++++--- 7 files changed, 40 insertions(+), 33 deletions(-) diff --git a/gradle.properties b/gradle.properties index 553d8c5..276d627 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Properties -mod_version = 1.2.4 +mod_version = 1.2.5 maven_group = com.bvengo archives_base_name = soundcontroller @@ -11,11 +11,11 @@ archives_base_name = soundcontroller ## Fabric: https://fabricmc.net/develop ## ModMenu: https://maven.terraformersmc.com/com/terraformersmc/modmenu -modmenu_version=18.0.0-alpha.5 +modmenu_version=18.0.0-alpha.8 -minecraft_version=26.1-snapshot-4 +minecraft_version=26.1 loader_version=0.18.4 loom_version=1.14-SNAPSHOT # Fabric API -fabric_version=0.142.1+26.1 \ No newline at end of file +fabric_version=0.146.1+26.1.2 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2..c61a118 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/com/bvengo/soundcontroller/gui/AllSoundOptionsScreen.java b/src/main/java/com/bvengo/soundcontroller/gui/AllSoundOptionsScreen.java index 2f6cc49..ae63998 100644 --- a/src/main/java/com/bvengo/soundcontroller/gui/AllSoundOptionsScreen.java +++ b/src/main/java/com/bvengo/soundcontroller/gui/AllSoundOptionsScreen.java @@ -3,7 +3,7 @@ import com.bvengo.soundcontroller.config.VolumeConfig; import com.bvengo.soundcontroller.gui.buttons.ToggleButtonWidget; import net.minecraft.client.Options; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.Tooltip; @@ -30,7 +30,6 @@ public class AllSoundOptionsScreen extends OptionsSubScreen { private EditBox searchField; private ToggleButtonWidget filterButton; - private ToggleButtonWidget subtitlesButton; private boolean showModifiedOnly = false; @@ -81,15 +80,15 @@ private void addFilterButton() { private void addSubtitlesButton() { // Add subtitles button - x, y, width, height, textures, pressAction - this.subtitlesButton = new ToggleButtonWidget("subtitles", + ToggleButtonWidget subtitlesButton = new ToggleButtonWidget("subtitles", this.filterButton.getRight() + 4, 35, 20, 20, (button) -> { config.toggleSubtitles(); }, config.areSubtitlesEnabled()); - this.subtitlesButton.setTooltip(Tooltip.create(SUBTITLES_BUTTON_TOOLTIP)); - this.addRenderableWidget(this.subtitlesButton); + subtitlesButton.setTooltip(Tooltip.create(SUBTITLES_BUTTON_TOOLTIP)); + this.addRenderableWidget(subtitlesButton); } private void addVolumeList() { @@ -141,10 +140,10 @@ public void resize(int width, int height) { } @Override - public void render(GuiGraphics context, int mouseX, int mouseY, float delta) { - super.render(context, mouseX, mouseY, delta); - context.drawCenteredString(this.font, this.title, this.width / 2, 20, 0xFFFFFF); - context.drawString(this.font, SEARCH_FIELD_TITLE, 32, 40, 0xA0A0A0); - this.searchField.render(context, mouseX, mouseY, delta); + public void extractRenderState(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { + super.extractRenderState(context, mouseX, mouseY, delta); + context.centeredText(this.font, this.title, this.width / 2, 20, 0xFFFFFF); + context.text(this.font, SEARCH_FIELD_TITLE, 32, 40, 0xA0A0A0); + this.searchField.extractRenderState(context, mouseX, mouseY, delta); } } diff --git a/src/main/java/com/bvengo/soundcontroller/gui/VolumeWidgetEntry.java b/src/main/java/com/bvengo/soundcontroller/gui/VolumeWidgetEntry.java index 1d18cc7..889a505 100644 --- a/src/main/java/com/bvengo/soundcontroller/gui/VolumeWidgetEntry.java +++ b/src/main/java/com/bvengo/soundcontroller/gui/VolumeWidgetEntry.java @@ -9,7 +9,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.OptionInstance; import net.minecraft.client.Options; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.AbstractWidget; import net.minecraft.client.gui.components.ContainerObjectSelectionList.Entry; import net.minecraft.client.gui.components.Tooltip; @@ -121,17 +121,17 @@ private void init() { } @Override - public void renderContent(GuiGraphics context, int mouseX, int mouseY, boolean hovered, float tickDelta) { + public void extractContent(GuiGraphicsExtractor context, int mouseX, int mouseY, boolean hovered, float tickDelta) { int leftSide = (this.screen.width - totalWidth) / 2; this.volumeSlider.setPosition(leftSide, getY()); - this.volumeSlider.render(context, mouseX, mouseY, tickDelta); + this.volumeSlider.extractRenderState(context, mouseX, mouseY, tickDelta); this.playSoundButton.setPosition(volumeSlider.getRight() + paddingAfterSearch, getY()); - this.playSoundButton.render(context, mouseX, mouseY, tickDelta); + this.playSoundButton.extractRenderState(context, mouseX, mouseY, tickDelta); this.resetButton.setPosition(playSoundButton.getRight() + paddingBetweenButtons, getY()); - this.resetButton.render(context, mouseX, mouseY, tickDelta); + this.resetButton.extractRenderState(context, mouseX, mouseY, tickDelta); } @Override diff --git a/src/main/java/com/bvengo/soundcontroller/gui/buttons/HoverableButtonWidget.java b/src/main/java/com/bvengo/soundcontroller/gui/buttons/HoverableButtonWidget.java index 99f4d16..5a39e4b 100644 --- a/src/main/java/com/bvengo/soundcontroller/gui/buttons/HoverableButtonWidget.java +++ b/src/main/java/com/bvengo/soundcontroller/gui/buttons/HoverableButtonWidget.java @@ -3,7 +3,7 @@ import com.bvengo.soundcontroller.SoundController; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.network.chat.CommonComponents; @@ -41,7 +41,7 @@ protected Identifier getTextureIdentifier() { } @Override - public void renderContents(GuiGraphics context, int mouseX, int mouseY, float delta) { + public void extractContents(GuiGraphicsExtractor context, int mouseX, int mouseY, float delta) { Identifier texture = getTextureIdentifier(); context.blitSprite(RenderPipelines.GUI_TEXTURED, texture, getX(), getY(), width, height); } diff --git a/src/main/java/com/bvengo/soundcontroller/mixin/SubtitleOverlayMixin.java b/src/main/java/com/bvengo/soundcontroller/mixin/SubtitleOverlayMixin.java index f5fa6dc..6341e76 100644 --- a/src/main/java/com/bvengo/soundcontroller/mixin/SubtitleOverlayMixin.java +++ b/src/main/java/com/bvengo/soundcontroller/mixin/SubtitleOverlayMixin.java @@ -13,28 +13,28 @@ @Mixin(SubtitleOverlay.class) public class SubtitleOverlayMixin { - @WrapOperation(method = "onPlaySound", at=@At(value = "INVOKE", target= "Lnet/minecraft/client/sounds/WeighedSoundEvents;getSubtitle()Lnet/minecraft/network/chat/Component;")) + @WrapOperation(method = "onPlaySound", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/sounds/WeighedSoundEvents;getSubtitle()Lnet/minecraft/network/chat/Component;")) private Component replaceSubtitleText(WeighedSoundEvents instance, Operation original, SoundInstance sound) { return SoundController.CONFIG.areSubtitlesEnabled() ? Component.translationArg(sound.getIdentifier()) : original.call(instance); } @WrapOperation( - method = "render", + method = "extractRenderState", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/OptionInstance;get()Ljava/lang/Object;", - ordinal = 0) // Targets the first getShowSubtitles().getValue() call + ordinal = 0) ) private Object modifyFirstShowSubtitlesCheck(OptionInstance instance, Operation original) { - return (Boolean)(original.call(instance)) || SoundController.CONFIG.areSubtitlesEnabled(); + return (Boolean) (original.call(instance)) || SoundController.CONFIG.areSubtitlesEnabled(); } @WrapOperation( - method = "render", + method = "extractRenderState", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/OptionInstance;get()Ljava/lang/Object;", - ordinal = 1) // Targets the first getShowSubtitles().getValue() call + ordinal = 1) ) private Object modifySecondShowSubtitlesCheck(OptionInstance instance, Operation original) { - return (Boolean)(original.call(instance)) || SoundController.CONFIG.areSubtitlesEnabled(); + return (Boolean) (original.call(instance)) || SoundController.CONFIG.areSubtitlesEnabled(); } -} +} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 2576fa9..7a67aae 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "soundcontroller", - "version": "1.2.4", + "version": "1.2.5", "icon": "assets/soundcontroller/icon.png", "name": "Sound Controller", @@ -9,6 +9,14 @@ "authors": [ "BVengo" ], + "contributors": [ + "JustAlittleWolf", + "YouQi-ovo", + "Maganoos", + "lonefelidae16", + "eikhren", + "CoolAid48" + ], "contact": { "sources": "https://github.com/BVengo/sound-controller", "issues": "https://github.com/BVengo/sound-controller/issues" @@ -27,8 +35,8 @@ "soundcontroller.mixins.json" ], "depends": { - "fabricloader": ">=0.16.0", - "minecraft": ">=26.1-alpha.4", + "fabricloader": ">=0.18.4", + "minecraft": ">=26.1", "java": ">=25", "fabric-api": "*" }, From 57024baf3027d607c909253695024de0cb1e7347 Mon Sep 17 00:00:00 2001 From: CoolAid48 Date: Mon, 22 Jun 2026 13:43:56 -0400 Subject: [PATCH 2/2] Update to 26.2 - Bump version and updated dependencies for 1.2.5-mc26.2 - Updated minor Gradle version - Version metadata now uses gradle.properties' 'mod_version' --- gradle.properties | 8 ++++---- gradle/wrapper/gradle-wrapper.properties | 2 +- .../soundcontroller/mixin/OptionsSubScreenMixin.java | 2 +- src/main/resources/fabric.mod.json | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/gradle.properties b/gradle.properties index 276d627..aeba89b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G org.gradle.parallel=true # Mod Properties -mod_version = 1.2.5 +mod_version = 1.2.5-mc26.2 maven_group = com.bvengo archives_base_name = soundcontroller @@ -11,11 +11,11 @@ archives_base_name = soundcontroller ## Fabric: https://fabricmc.net/develop ## ModMenu: https://maven.terraformersmc.com/com/terraformersmc/modmenu -modmenu_version=18.0.0-alpha.8 +modmenu_version=20.0.0-beta.3 -minecraft_version=26.1 +minecraft_version=26.2 loader_version=0.18.4 loom_version=1.14-SNAPSHOT # Fabric API -fabric_version=0.146.1+26.1.2 \ No newline at end of file +fabric_version=0.152.2+26.2 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c61a118..5dd3c01 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/com/bvengo/soundcontroller/mixin/OptionsSubScreenMixin.java b/src/main/java/com/bvengo/soundcontroller/mixin/OptionsSubScreenMixin.java index c3d107f..432c482 100644 --- a/src/main/java/com/bvengo/soundcontroller/mixin/OptionsSubScreenMixin.java +++ b/src/main/java/com/bvengo/soundcontroller/mixin/OptionsSubScreenMixin.java @@ -52,7 +52,7 @@ private void replaceDoneButton(Operation original) { @Unique private void soundcontroller$addLayoutButton(Minecraft client, LinearLayout layout, Component text, Screen nextScreen) { layout.addChild(Button.builder(text, button -> { - client.setScreen(nextScreen); + client.setScreenAndShow(nextScreen); }).build()); } } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 7a67aae..3f81598 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "soundcontroller", - "version": "1.2.5", + "version": "${version}", "icon": "assets/soundcontroller/icon.png", "name": "Sound Controller", @@ -36,7 +36,7 @@ ], "depends": { "fabricloader": ">=0.18.4", - "minecraft": ">=26.1", + "minecraft": ">=26.2", "java": ">=25", "fabric-api": "*" },