diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0b70379..572bed0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,6 +29,6 @@ jobs: - name: Upload release candidate uses: actions/upload-artifact@v4 with: - name: backspace-dev-4.0.3-beta - path: build/libs/backspace-dev-4.0.3-beta.jar + name: backspace-dev-4.0.4-beta + path: build/libs/backspace-dev-4.0.4-beta.jar if-no-files-found: error diff --git a/CHANGELOG.md b/CHANGELOG.md index ad99fbe..b1a684f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## dev-4.0.4-beta 2026-10-25 + +- Fixed the right-click ClickGUI crash: LWJGL 2 requires a 16-element buffer for scissor-state reads in both GUI renderers. + + ## dev-4.0.3-beta 2026-10-25 - Corrected pixel window transparency with a full 0–100% range and live GUI editor preview. diff --git a/README.md b/README.md index 1ed61a6..0137fa2 100644 --- a/README.md +++ b/README.md @@ -8,14 +8,14 @@

A custom Minecraft Forge 1.12.2 client focused on clean visuals, useful features, and a modern interface.
- dev-4.0.3-beta + dev-4.0.4-beta

Minecraft 1.12.2 Forge 14.23.5.2859 Java 8 - Release dev-4.0.3-beta + Release dev-4.0.4-beta

--- @@ -48,7 +48,7 @@ The module browser uses compact vanilla-style category columns and pixel toggles 1. Install Minecraft **1.12.2** with Forge **14.23.5.2859**. 2. Download both files from the release: - * `backspace-dev-4.0.3-beta.jar` + * `backspace-dev-4.0.4-beta.jar` * `OneConfig-1.12.2-forge.jar` 3. Place both JAR files in your `.minecraft/mods` folder. 4. Launch Minecraft using **Java 8**. @@ -80,7 +80,7 @@ Open a terminal in the project directory and run the command for your operating After the build finishes, the JAR will be located at: ```text -build/libs/backspace-dev-4.0.3-beta.jar +build/libs/backspace-dev-4.0.4-beta.jar ``` The project includes a Gradle wrapper pinned to version `4.10.3`, so there's no need to install Gradle separately. diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 329c5e2..4fac22a 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,16 +1,13 @@ -# Backspace dev-4.0.3-beta +# Backspace dev-4.0.4-beta -This prerelease fixes ClickGUI transparency, long labels, and numeric setting controls. +This hotfix resolves the crash when expanding module settings with right-click. -## Changes +## Fix -- Set panel transparency from 0% (opaque) to 100% (fully clear). The background alpha is independent of text, border, and control colors. The GUI Editor now previews the change against the live ClickGUI. -- Hover long module names, descriptions, or setting labels to scroll them horizontally after a short delay. Text stays clipped within its row. -- Drag or click sliders to change numeric settings. Values snap to their configured steps, including decimal settings, and save to the client configuration. -- Main menu and both ClickGUI views display the current version. +- Allocate the 16-element buffer required by LWJGL 2 when reading OpenGL scissor state in the pixel and modern ClickGUI renderers. The expanded settings, transparency, marquee text, and sliders from dev-4.0.3-beta are preserved. ## Install -1. Download `backspace-dev-4.0.3-beta.jar` from this release and the required [`OneConfig-1.12.2-forge.jar`](https://github.com/gms-scanner/Backspace/releases/download/dev-3.5-beta/OneConfig-1.12.2-forge.jar) dependency. -2. Put both in the Minecraft 1.12.2 Forge `mods` folder. +1. Download `backspace-dev-4.0.4-beta.jar` from this release and the required [`OneConfig-1.12.2-forge.jar`](https://github.com/gms-scanner/Backspace/releases/download/dev-3.5-beta/OneConfig-1.12.2-forge.jar) dependency. +2. Put both in the Minecraft 1.12.2 Forge `mods` folder, replacing the previous Backspace JAR. 3. Launch Forge 14.23.5.2859 with Java 8. Press Right Shift or run `/backspace`. diff --git a/build.gradle b/build.gradle index 6227bae..eaf9db4 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' -version = 'dev-4.0.3-beta' +version = 'dev-4.0.4-beta' group = 'dev.goldforge' archivesBaseName = 'backspace' diff --git a/src/main/java/dev/goldforge/GoldForge.java b/src/main/java/dev/goldforge/GoldForge.java index 6dfc942..feecf8e 100644 --- a/src/main/java/dev/goldforge/GoldForge.java +++ b/src/main/java/dev/goldforge/GoldForge.java @@ -20,7 +20,7 @@ public final class GoldForge { public static final String MODID = "goldforge"; public static final String NAME = "Backspace"; - public static final String VERSION = "dev-4.0.3-beta"; + public static final String VERSION = "dev-4.0.4-beta"; public static final ModuleManager MODULES = new ModuleManager(); private static final Field SPLASH_FIELD=findSplashField(); private static final String[] CUSTOM_SPLASHES={ diff --git a/src/main/java/dev/goldforge/gui/ModernClickGui.java b/src/main/java/dev/goldforge/gui/ModernClickGui.java index 17cbf67..c15ece5 100644 --- a/src/main/java/dev/goldforge/gui/ModernClickGui.java +++ b/src/main/java/dev/goldforge/gui/ModernClickGui.java @@ -421,7 +421,7 @@ private void marqueeSetting(long vg, ModuleSetting setting, String label, state.offset *= (float) Math.exp(-5F * frameSeconds); if (state.offset < 0.5F) { state.offset = 0; state.phase = 0; state.timer = 0; } } - IntBuffer previous = BufferUtils.createIntBuffer(4); + IntBuffer previous = BufferUtils.createIntBuffer(16); GL11.glGetInteger(GL11.GL_SCISSOR_BOX, previous); float scaleX = mc.displayWidth / Math.max(1F, width); float scaleY = mc.displayHeight / Math.max(1F, height); diff --git a/src/main/java/dev/goldforge/gui/PixelClickGui.java b/src/main/java/dev/goldforge/gui/PixelClickGui.java index 69b050b..b8ee7f7 100644 --- a/src/main/java/dev/goldforge/gui/PixelClickGui.java +++ b/src/main/java/dev/goldforge/gui/PixelClickGui.java @@ -82,7 +82,7 @@ private void text(String value, int x, int y, int color) { fontRenderer.drawString(value, x, y, color); } private int[] clipText(int x, int y, int w, int h) { - IntBuffer old = BufferUtils.createIntBuffer(4); + IntBuffer old = BufferUtils.createIntBuffer(16); GL11.glGetInteger(GL11.GL_SCISSOR_BOX, old); int scale = new ScaledResolution(mc).getScaleFactor(); int lx = x * scale, ly = mc.displayHeight - (y + h) * scale;