Skip to content

Add 26.2 modules for Minecraft's unobfuscated/Java 25 toolchain - #134

Open
auron-muc wants to merge 2 commits into
HeatherComputer:mainfrom
auron-muc:fabric_26_2
Open

auron-muc wants to merge 2 commits into
HeatherComputer:mainfrom
auron-muc:fabric_26_2

Conversation

@auron-muc

Copy link
Copy Markdown

Minecraft 26.2 ships unobfuscated, so Fabric dropped Yarn mappings and switched to the non-remapping net.fabricmc.fabric-loom plugin. Ports the Fabric module to this new toolchain (Loom 1.17, Gradle 9.5.1, Fabric Loader 0.19.5, Fabric API 0.160.0+26.2, Java 25), renaming all Minecraft/Fabric API references from Yarn to Mojang's official names and adapting to genuine API changes (the new permission-set system, the toast extractRenderState rendering pattern). Drops the access widener entirely since ClientPacketListener#sendCommand is now public.

Verified with a real Minecraft 26.2 dedicated server: mod loads, config writes, a differential backup completes, and the CLI restore tool successfully exports a backup.

Also wires up build.yml/publish.yml CI for the new module.

co-authored with Claude code.

Minecraft 26.2 ships unobfuscated, so Fabric dropped Yarn mappings and
switched to the non-remapping net.fabricmc.fabric-loom plugin. Ports
the Fabric module to this new toolchain (Loom 1.17, Gradle 9.5.1,
Fabric Loader 0.19.5, Fabric API 0.160.0+26.2, Java 25), renaming all
Minecraft/Fabric API references from Yarn to Mojang's official names
and adapting to genuine API changes (the new permission-set system,
the toast extractRenderState rendering pattern). Drops the access
widener entirely since ClientPacketListener#sendCommand is now public.

Verified with a real Minecraft 26.2 dedicated server: mod loads,
config writes, a differential backup completes, and the CLI restore
tool successfully exports a backup.

Also wires up build.yml/publish.yml CI for the new module.
Ports NeoForge and Spigot to Minecraft 26.2 / Java 25, following the
Fabric 26.2 port. Both were far lighter than Fabric's Yarn-to-Mojang
rewrite since NeoForge already compiled against Mojang's official
names and Spigot is fully insulated by the Bukkit API:

- NeoForge: toolchain moves to ModDevGradle (net.neoforged.moddev),
  NeoForge 26.2.0.87, Java 25. Renames ResourceLocation to Identifier
  (a genuine Mojang-side rename, not a mapping-convention artifact),
  ports the toast draw -> extractRenderState rendering change, and
  swaps the now-removed int-based hasPermission(s) convenience methods
  for the new PermissionSet/Permissions API. Drops the access
  transformer's lastSeenMessages entry since ClientPacketListener's
  sendCommand is now public.
- Spigot: bumps to Java 25 and the 26.2 Spigot-API artifact. BuildTools
  confirmed the server jar is Mojang-mapped natively now, so the
  io.github.patrick.remapper plugin and its remap step are no longer
  needed and were removed entirely. No source changes required.

Also wires up build.yml/publish.yml CI for both new modules.

Verified with real servers: NeoForge's dev runServer and a genuine
BuildTools-built Spigot 26.2 server both load the plugin/mod, write
config, and reach "Done" with no errors.
@auron-muc auron-muc changed the title Add Fabric 26.2 module for Minecraft's unobfuscated/Java 25 toolchain Add 26.2 modules for Minecraft's unobfuscated/Java 25 toolchain Sep 16, 2026
@auron-muc

Copy link
Copy Markdown
Author

Hello @HeatherComputer
Not sure if you have reservations against AI-assisted programming.
This is what I did:
I had AI copy the old folders for Fabric, Spigot and Neoforge, it then went and did the modifications for 26.2, with me overseeing each step. AI pretty much did what I would have done: looking for the right signatures or online explanations, implementing, compiling. rinse and repeat.
I tried the fabric version and it seems to work well, the permissions rework - necessary because of the core changes - probably could use another set of eyes.

TLDR; my itch is healed - I have a working 26.2 backup. Feel free to use this pull request however you see fit. (ignore it, use it as an inspiration, merge it,...) ;-)

Cheers,
Tobias

@HeatherComputer

HeatherComputer commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Hiya - I'm not a fan of AI code, partially because it has a habit of producing buggy and hard to debug code.

With that said - I'm going to leave this open for visibility. I know there's a demand (including from myself) for AdvancedBackups on more modern versions, and that WILL happen in an official capacity.

I'm currently working on an api known as Go!Agnostic. When done, it'll support all versions AdvancedBackup currently does, along with most versions that have released since then.

Crucially, AdvancedBackups will be able to build targeting Go!Agnostic and NOT any singular minecraft version. This will make porting significantly easier not just for AdvancedBackups but also other mods of mine - both current and future.

@auron-muc

Copy link
Copy Markdown
Author

Just my two cent: I partially agree on the buggy code part. However, since AI just took existing code, did version bumps and fixed the names of the classes/methods that changed, plus the method signature changes needed for the permissions, I still believe it's ok for this use case. Following up with these is a chore, no design work. And AI is good in doing chores.
But I respect your decision - of course.
Exited to hear about Go!Agnostic :)

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