Skip to content

Port to 26.2#902

Merged
isXander merged 4 commits into
mainfrom
port/26.2
Jun 16, 2026
Merged

Port to 26.2#902
isXander merged 4 commits into
mainfrom
port/26.2

Conversation

@isXander

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 MinecraftUtil and 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.

Comment thread src/main/java/dev/isxander/controlify/mixins/feature/font/FontAccessor.java Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@isXander isXander merged commit a94f5b1 into main Jun 16, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants