Conversation
# Conflicts: # gradle.properties
There was a problem hiding this comment.
Pull request overview
Ports Controlify to Minecraft 26.2 by introducing 26.2 Fabric/NeoForge version targets, bumping required runtime/tooling versions, and updating mixins/utilities to match 26.2 client API changes (notably the Gui/Hud/screen access refactors).
Changes:
- Add 26.2 Fabric + NeoForge version definitions and set 26.2-fabric as the current branch target.
- Update mod/runtime requirements (Fabric Loader, Java level) and Loom plugin version.
- Refactor screen/overlay/toast interactions through a new
MinecraftUtiland update mixins/accessors/invokers for 26.2 mappings/APIs.
Reviewed changes
Copilot reviewed 105 out of 105 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| versions/versions.json | Adds 26.2 Fabric/NeoForge branch entries for Stonecutter. |
| versions/current | Switches the active version target to 26.2-fabric. |
| versions/26.2-neoforge/gradle.properties | Introduces 26.2 NeoForge dependency/version coordinates. |
| versions/26.2-fabric/gradle.properties | Introduces 26.2 Fabric dependency/version coordinates. |
| src/main/templates/fabric.mod.json | Bumps minimum Fabric Loader and Java requirements for 26.2. |
| src/main/resources/controlify.mixins.json | Updates client mixin list and adds overwrite-annotation requirements. |
| src/main/resources/controlify-platform.neoforge.mixins.json | Adds overwrite-annotation requirements for NeoForge mixins. |
| src/main/resources/controlify-platform.fabric.mixins.json | Adds overwrite-annotation requirements for Fabric mixins. |
| src/main/resources/controlify-compat.yacl.mixins.json | Adds overwrite-annotation requirements for YACL compat mixins. |
| src/main/resources/controlify-compat.sodium.mixins.json | Adds overwrite-annotation requirements for Sodium compat mixins. |
| src/main/resources/controlify-compat.simple-voice-chat.mixins.json | Adds overwrite-annotation requirements for Simple Voice Chat compat mixins. |
| src/main/resources/controlify-compat.reeses-sodium-options.mixins.json | Adds overwrite-annotation requirements for RSO compat mixins. |
| src/main/resources/controlify-compat.iris.mixins.json | Adds overwrite-annotation requirements for Iris compat mixins. |
| src/main/java/dev/isxander/controlify/wireless/LowBatteryNotifier.java | Routes toast display through MinecraftUtil. |
| src/main/java/dev/isxander/controlify/virtualmouse/VirtualMouseHandler.java | Updates screen access + mouse handler invokers for 26.2 APIs. |
| src/main/java/dev/isxander/controlify/virtualmouse/SnapUtils.java | Updates recipe book accessor method names for new accessors. |
| src/main/java/dev/isxander/controlify/utils/ToastUtils.java | Removes old toast helper in favor of MinecraftUtil. |
| src/main/java/dev/isxander/controlify/utils/MinecraftUtil.java | Adds unified helpers for screen/overlay/toasts across versions. |
| src/main/java/dev/isxander/controlify/utils/InitialScreenRegistryDuck.java | Redirects initial-screen registration to Minecraft.getInstance().gui for 26.2. |
| src/main/java/dev/isxander/controlify/utils/GsonCodecAdapter.java | Removes unused codec adapter. |
| src/main/java/dev/isxander/controlify/utils/DebugOverlayHelper.java | Updates chunk reload + chat access paths for 26.2. |
| src/main/java/dev/isxander/controlify/utils/CUtil.java | Removes unused buffer-builder helper imports/method. |
| src/main/java/dev/isxander/controlify/utils/ControllerSetupWizard.java | Uses MinecraftUtil.getScreen() for done detection. |
| src/main/java/dev/isxander/controlify/screenop/ScreenProcessor.java | Updates screen accessors/invokers and uses MinecraftUtil for screen changes. |
| src/main/java/dev/isxander/controlify/screenop/keyboard/KeyboardOverlayScreen.java | Uses Gui mixin hook reference and force-sets screen via MinecraftUtil. |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/WorldListEntryComponentProcessor.java | Updates accessor method name for 26.2 mappings. |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/TitleScreenProcessor.java | Uses MinecraftUtil.setScreen(...). |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/ServerSelectionListEntryComponentProcessor.java | Updates accessor method name for 26.2 mappings. |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/SelectWorldScreenProcessor.java | Updates accessors + uses MinecraftUtil for screen changes. |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/RecipeBookScreenProcessor.java | Updates recipe book accessors for 26.2 mappings. |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/PauseScreenProcessor.java | Uses MinecraftUtil.setScreen(...). |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/LanguageSelectionListComponentProcessor.java | Uses MinecraftUtil + updated accessor naming. |
| src/main/java/dev/isxander/controlify/screenop/compat/vanilla/AbstractContainerScreenProcessor.java | Updates container accessor method names for 26.2 mappings. |
| src/main/java/dev/isxander/controlify/rumble/BasicRumbleEffect.java | Uses MinecraftUtil.getScreen() for screen-change completion. |
| src/main/java/dev/isxander/controlify/reacharound/ReachAroundMode.java | Updates singleplayer detection for 26.2 client API. |
| src/main/java/dev/isxander/controlify/reacharound/ReachAroundHandler.java | Uses Vec3.atCenterOf(...) for block hit center. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/snapping/ScreenMixin.java | Adjusts shadowed minecraft field annotations for 26.2. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/snapping/RecipeBookPageAccessor.java | Renames accessors and targets explicit field names. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/snapping/RecipeBookComponentAccessor.java | Renames accessors and targets explicit field names. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/snapping/LoomScreenMixin.java | Renames mixin class to match target screen naming. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/snapping/AbstractContainerScreenMixin.java | Reorders/adds @Final shadows to match 26.2 fields. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/MouseHandlerAccessor.java | Updates invoker/accessor names and explicitly targets 26.2 members. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/MinecraftMixin.java | Removes screen-change hook and adjusts runTick param name for 26.2. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/InputConstantsMixin.java | Adds local name for better stability under new mappings. |
| src/main/java/dev/isxander/controlify/mixins/feature/virtualmouse/GuiMixin.java | Moves screen-change hook to Gui for 26.2. |
| src/main/java/dev/isxander/controlify/mixins/feature/util/ConnectScreenMixin.java | Updates connect method parameter names/types and forwards server data. |
| src/main/java/dev/isxander/controlify/mixins/feature/ui/AbstractSelectionListAccessor.java | Renames static accessors to controlify-prefixed versions. |
| src/main/java/dev/isxander/controlify/mixins/feature/steamdeck/ScreenshotAccessor.java | Updates invoker name and explicit target method. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/ScreenAccessor.java | Updates invokers/accessors to explicit targets and controlify prefixes. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/sign/SignEditScreenMixin.java | Gates an expression-based hook to pre-26.2 method signature. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/outofgame/TabNavigationBarAccessor.java | Updates accessor method names and explicit field targets. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/outofgame/SelectWorldScreenAccessor.java | Updates accessor method names and explicit field targets. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/outofgame/PauseScreenAccessor.java | Targets renamed/explicit field for pause menu visibility. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/outofgame/OptionsSubScreenAccessor.java | Updates accessor method name and explicit field target. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/outofgame/JoinMultiplayerScreenAccessor.java | Updates accessor method name and explicit field target. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/elements/EditBoxMixin.java | Adds local name + switches KeyboardOverlayScreen detection to MinecraftUtil. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/elements/AbstractWidgetMixin.java | Hooks widget click flow to open keyboard in vmouse mode (uses MinecraftUtil). |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/chat/CommandSuggestionsMixin.java | Updates method names/GETFIELD target and uses MinecraftUtil.getScreen(). |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/impl/chat/ChatComponentMixin.java | Switches to MinecraftUtil.getScreen() for chat-screen detection. |
| src/main/java/dev/isxander/controlify/mixins/feature/screenop/GuiMixin.java | Ports Minecraft screen hooks to Gui and updates local naming. |
| src/main/java/dev/isxander/controlify/mixins/feature/patches/analogueboat/AbstractBoatMixin.java | Renames boat mixin to match target class name and interface usage. |
| src/main/java/dev/isxander/controlify/mixins/feature/hdhaptics/SoundManagerAccessor.java | Updates accessor name and targets explicit field. |
| src/main/java/dev/isxander/controlify/mixins/feature/hdhaptics/SoundEngineAccessor.java | Updates accessor name and targets explicit field. |
| src/main/java/dev/isxander/controlify/mixins/feature/hdhaptics/SoundBufferAccessor.java | Updates accessor names and targets explicit fields. |
| src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/TabNavigationBarMixin.java | Updates injected method name for 26.2 widget rendering path. |
| src/main/java/dev/isxander/controlify/mixins/feature/guide/screen/AbstractContainerScreenAccessor.java | Updates invoker/accessor names and explicit targets. |
| src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/PlayerAccessor.java | Updates invoker name and explicit target method. |
| src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/MinecraftAccessor.java | Updates invoker name and explicit target method. |
| src/main/java/dev/isxander/controlify/mixins/feature/guide/ingame/HudMixin.java | Ports guide ticking mixin to Hud for 26.2. |
| src/main/java/dev/isxander/controlify/mixins/feature/font/FontAccessor.java | Adds a Font invoker for glyph access. |
| src/main/java/dev/isxander/controlify/mixins/feature/bind/MinecraftMixin.java | Removes old bind screen-change hook from Minecraft. |
| src/main/java/dev/isxander/controlify/mixins/feature/bind/HudMixin.java | Moves crosshair suppression to Hud for 26.2. |
| src/main/java/dev/isxander/controlify/mixins/feature/bind/GuiMixin.java | Moves bind screen-change hook to Gui for 26.2. |
| src/main/java/dev/isxander/controlify/mixins/feature/bind/GuiAccessor.java | Adds accessor to set the Gui screen field for force-set operations. |
| src/main/java/dev/isxander/controlify/mixins/core/MinecraftMixin.java | Removes initial-screen registry + mouse/setScreen hooks from Minecraft mixin. |
| src/main/java/dev/isxander/controlify/mixins/core/HudMixin.java | Moves tab-list visibility logic to Hud for 26.2. |
| src/main/java/dev/isxander/controlify/mixins/core/GuiMixin.java | Rehomes initial-screen registry + mouse/screen hooks to Gui for 26.2. |
| src/main/java/dev/isxander/controlify/ingame/InGameInputHandler.java | Updates GUI checks/screen changes and 26.2 HUD/render target APIs. |
| src/main/java/dev/isxander/controlify/ingame/ControllerPlayerMovement.java | Uses MinecraftUtil.getScreen() for GUI-open movement suppression. |
| src/main/java/dev/isxander/controlify/hid/ControllerHIDService.java | Routes HID failure toast through MinecraftUtil. |
| src/main/java/dev/isxander/controlify/gui/screen/RadialMenuScreen.java | Uses MinecraftUtil.setScreen(...) when closing. |
| src/main/java/dev/isxander/controlify/gui/screen/RadialItems.java | Updates item constant access for 26.2 API changes. |
| src/main/java/dev/isxander/controlify/gui/screen/NoSDLScreen.java | Removes legacy SDL warning screen implementation. |
| src/main/java/dev/isxander/controlify/gui/screen/ControllerMappingMakerScreen.java | Uses MinecraftUtil.setScreen(...) when closing. |
| src/main/java/dev/isxander/controlify/gui/screen/ControllerConfigScreenFactory.java | Uses MinecraftUtil.setScreen(...) for nested screen navigation. |
| src/main/java/dev/isxander/controlify/gui/screen/ControlifySettingsScreen.java | Uses MinecraftUtil for navigation + updated list background accessors. |
| src/main/java/dev/isxander/controlify/gui/screen/BluetoothWarningScreen.java | Uses MinecraftUtil.setScreen(...) after confirmation. |
| src/main/java/dev/isxander/controlify/gui/screen/BindConsumerScreen.java | Uses MinecraftUtil.forceSetScreen(...) to restore without re-init. |
| src/main/java/dev/isxander/controlify/gui/screen/AskToMapControllerScreen.java | Uses MinecraftUtil.setScreen(...) for mapping flow navigation. |
| src/main/java/dev/isxander/controlify/gui/guide/InGameButtonGuide.java | Updates HUD render hook naming and 26.2 HUD hidden-state API usage. |
| src/main/java/dev/isxander/controlify/gui/guide/GuideRenderer.java | Renames render entrypoint to extractRenderState. |
| src/main/java/dev/isxander/controlify/gui/guide/GuideDomain.java | Routes rendering through renamed GuideRenderer API. |
| src/main/java/dev/isxander/controlify/gui/controllers/BindController.java | Uses MinecraftUtil.setScreen(...) when opening consumer screen. |
| src/main/java/dev/isxander/controlify/fixes/boatfix/AnalogBoatInput.java | Updates documentation reference to renamed boat mixin. |
| src/main/java/dev/isxander/controlify/controller/haptic/HDHapticComponent.java | Updates haptics accessors to renamed methods/targets. |
| src/main/java/dev/isxander/controlify/Controlify.java | Uses MinecraftUtil for overlays/screens/toasts and updated guide render entrypoint. |
| src/main/java/dev/isxander/controlify/compatibility/sodium/mixins/VideoSettingsScreenMixin.java | Updates Sodium widget class shadows for 26.2. |
| src/main/java/dev/isxander/controlify/compatibility/simplevoicechat/SimpleVoiceChatCompat.java | Uses MinecraftUtil for overlay/screen presence checks. |
| src/main/java/dev/isxander/controlify/compatibility/fancymenu/OpenControlifySettingsAction.java | Uses MinecraftUtil.getScreen() when opening settings. |
| src/main/java/dev/isxander/controlify/bindings/RadialIcons.java | Updates mob-effect sprite lookup for Hud in 26.2. |
| src/main/java/dev/isxander/controlify/bindings/output/KeyMappingEmulationOutput.java | Uses MinecraftUtil.getScreen() for GUI suppression. |
| src/main/java/dev/isxander/controlify/bindings/BindContext.java | Uses MinecraftUtil.getScreen() and updated screen processor calls. |
| src/main/java/dev/isxander/controlify/api/guide/InGameFacts.java | Updates player invoker method name. |
| gradle.properties | Bumps Fabric Loader version used by the build. |
| buildSrc/build.gradle.kts | Bumps Fabric Loom plugin version used by buildSrc. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.