Skip to content

Mixin ConfigManager replaces booleans in refixes config#7

Open
Xytronix wants to merge 3 commits intoIroriPowered:masterfrom
Xytronix:ft-configmanager
Open

Mixin ConfigManager replaces booleans in refixes config#7
Xytronix wants to merge 3 commits intoIroriPowered:masterfrom
Xytronix:ft-configmanager

Conversation

@Xytronix
Copy link
Contributor

@Xytronix Xytronix commented Feb 24, 2026

Summary

I migrated several mixin toggles to a dedicated plugin (RefixesMixinPlugin).

This avoids conditional statements in prior mixins and simplifies runtime loading of Mixins.
A user can now disable each mixin on their own. Several mixins are kept as default false.

This is done through a new filemods/IroriPowered_Refixes/Refixes.json.

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking)
  • Breaking change (requires documentation/migration)
  • Refactor which requires documentation
  • Documentation only

Implementation details

  • Added a new mixin plugin:
    • early/src/main/java/cc/irori/refixes/early/RefixesMixinPlugin.java
    • Reads mods/IroriPowered_Refixes/Refixes.json
    • Resolves mixin toggles, writes Mixins section back to config, and blocks disabled mixins in shouldApplyMixin.
    • Logs active/inactive mixins at startup the same way as runtime plugin
  • Registered the plugin in:
    • early/src/main/resources/refixes.mixins.json (added "plugin" property)
    • Removed MixinStateSupport from active mixins.
  • Removed early conditional gating from multiple mixins and made behavior directly controlled by plugin-driven defaults:
    • early/.../MixinBlockModule.java
    • early/.../MixinCollectVisible.java
    • early/.../MixinEntityTickingSystem.java
    • early/.../MixinFluidPlugin.java
    • early/.../MixinHytaleServerConfig.java
    • early/.../MixinInstancesPlugin.java
    • early/.../MixinKDTree.java
    • early/.../MixinStore.java
    • early/.../MixinTickingThread.java
  • Simplified EarlyOptions by removing now-unused boolean fields:
    • early/src/main/java/cc/irori/refixes/early/EarlyOptions.java
  • Removed experimental config bindings:
    • plugin/src/main/java/cc/irori/refixes/Refixes.java
    • plugin/src/main/java/cc/irori/refixes/config/impl/RefixesConfig.java
    • plugin/src/main/java/cc/irori/refixes/config/impl/ExperimentalConfig.java (deleted)

Checklist

  • Code compiles successfully
  • Pull request does not contain unrelated changes
  • Changes follow this project's code style (Use spotlessApply when necessary)
  • Changes are tested or will be tested after submission

Additional info

@Xytronix Xytronix changed the title Ft configmanager Mixin ConfigManager replaces booleans in refixes config Feb 24, 2026
@Xytronix
Copy link
Contributor Author

{
  "Mixins": {
    "MixinFluidPlugin": true,
    "MixinFluidReplicateChanges": false,
    "MixinBlockModule": true,
    "MixinBlockComponentChunk": true,
    "MixinBlockHealthSystem": true,
    "MixinChunkReplicateChanges": false,
    "MixinChunkSavingSystems": true,
    "MixinArchetypeChunk": true,
    "MixinEntityTickingSystem": false,
    "MixinStore": false,
    "MixinCommandBuffer": true,
    "MixinRemovalSystem": true,
    "MixinUUIDSystem": true,
    "MixinCollectVisible": true,
    "MixinKDTree": true,
    "MixinTickingThread": true,
    "MixinTickingThreadAssert": true,
    "MixinTickingSpawnMarkerSystem": true,
    "MixinPlayerChunkTrackerSystems": true,
    "MixinGamePacketHandler": true,
    "MixinInteractionChain": true,
    "MixinInteractionManager": true,
    "MixinSetMemoriesCapacityInteraction": true,
    "MixinCraftingManagerAccessor": true,
    "MixinWorld": true,
    "MixinWorldConfig": true,
    "MixinWorldMapTracker": true,
    "MixinWorldSpawningSystem": true,
    "MixinUniverse": true,
    "MixinPrefabLoader": true,
    "MixinInstancesPlugin": true,
    "MixinPortalDeviceSummonPage": true,
    "MixinPortalWorldAccessor": true,
    "MixinTrackedPlacementAccessor": true,
    "MixinTrackedPlacementOnAddRemove": true,
    "MixinBeaconAddRemoveSystem": true,
    "MixinMarkerAddRemoveSystem": true,
    "MixinHytaleServer": true,
    "MixinHytaleServerConfig": false
  }
}

Should we leave all of them enabled by default?

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.

1 participant