From 45a73c9115e1295b7aa1d8ed09f2d5d65653371f Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:05 +0800 Subject: [PATCH 01/82] Skip the shared sources and JSpecify in placeholder loader modules --- gradle/loader.gradle | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/gradle/loader.gradle b/gradle/loader.gradle index 023e7d38..6159b24b 100644 --- a/gradle/loader.gradle +++ b/gradle/loader.gradle @@ -16,19 +16,33 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(java_version as int) // Minecraft version. Both are compiled into this module, so the mod stays one jar. common checks // on its own that it needs nothing from Minecraft; compiling minecraft- under three // loaders keeps it free of any one loader's API. -def shared = rootProject.file("minecraft-${minecraft_version}") -sourceSets.main.java.srcDir(project(':common').file('src/main/java')) -sourceSets.main.resources.srcDir(project(':common').file('src/main/resources')) -sourceSets.main.java.srcDir(new File(shared, 'src/main/java')) -sourceSets.main.resources.srcDir(new File(shared, 'src/main/resources')) +// +// Placeholder modules (scaffold=true) are versions that are set up but not ported yet: they hold +// only an entry point that logs, take nothing from common or minecraft-, and borrow the +// mod icon from 26.3. They are not in the default platforms list; see docs/DEVELOPMENT.md. +def scaffold = (findProperty('scaffold') ?: 'false').toBoolean() +if (scaffold) { + tasks.named('processResources', ProcessResources) { + from(rootProject.file('minecraft-26.3/src/main/resources/mcheli_logo.png')) + } +} else { + def shared = rootProject.file("minecraft-${minecraft_version}") + sourceSets.main.java.srcDir(project(':common').file('src/main/java')) + sourceSets.main.resources.srcDir(project(':common').file('src/main/resources')) + sourceSets.main.java.srcDir(new File(shared, 'src/main/java')) + sourceSets.main.resources.srcDir(new File(shared, 'src/main/resources')) +} repositories { mavenCentral() } -dependencies { - // Annotations only; Minecraft ships JSpecify from 1.21.6 on, so older versions need it to compile. - compileOnly "org.jspecify:jspecify:${jspecify_version}" +if (!scaffold) { + dependencies { + // Annotations only; Minecraft ships JSpecify from 1.21.6 on, so older versions need it to + // compile. Placeholders have no code that uses it, and some NeoForge versions pin 1.0.0. + compileOnly "org.jspecify:jspecify:${jspecify_version}" + } } tasks.withType(JavaCompile).configureEach { From 49b8f14d05286ea901c82d4888f11808ed00550c Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:06 +0800 Subject: [PATCH 02/82] Add the Fabric 1.19.4 placeholder build --- fabric-1.19.4/build.gradle | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fabric-1.19.4/build.gradle diff --git a/fabric-1.19.4/build.gradle b/fabric-1.19.4/build.gradle new file mode 100644 index 00000000..91457ac5 --- /dev/null +++ b/fabric-1.19.4/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.fabricmc.fabric-loom-remap' +} + +apply from: rootProject.file('gradle/loader.gradle') + +loom { + runs { + configureEach { + runDir = "../run-${minecraft_version}" + } + server { + programArgs '--nogui' + } + } +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + // 1.19.4 is obfuscated; Mojang's names keep the code the same as on Forge and NeoForge. + mappings loom.officialMojangMappings() + modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" +} From 0c74ec697221e64dfa6de6880adb2b293ca95dfc Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:06 +0800 Subject: [PATCH 03/82] Pin the Fabric and Java versions for the Minecraft 1.19.4 placeholder --- fabric-1.19.4/gradle.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 fabric-1.19.4/gradle.properties diff --git a/fabric-1.19.4/gradle.properties b/fabric-1.19.4/gradle.properties new file mode 100644 index 00000000..7472d7c6 --- /dev/null +++ b/fabric-1.19.4/gradle.properties @@ -0,0 +1,9 @@ +# Minecraft 1.19.4 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md) +loader=fabric +minecraft_version=1.19.4 +minecraft_version_range=~1.19.4 +fabric_loader_version=0.20.1 +loader_version_range=>=0.16.0 +fabric_api_version=0.87.2+1.19.4 +java_version=17 +scaffold=true From a6048fdb8849a606c385779756857e50042f2b25 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:07 +0800 Subject: [PATCH 04/82] Add the Fabric 1.19.4 placeholder entry point that only logs --- .../mcheli/fabric/McheliFabric.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 fabric-1.19.4/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java diff --git a/fabric-1.19.4/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java b/fabric-1.19.4/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java new file mode 100644 index 00000000..1be36597 --- /dev/null +++ b/fabric-1.19.4/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.fabric; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.19.4. It only proves that the module builds and loads; + * the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release. + */ +public final class McheliFabric implements ModInitializer { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + @Override + public void onInitialize() { + LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 1.19.4; no content yet"); + } +} From b66b8121455be63453293f276a7c62901e44addb Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:07 +0800 Subject: [PATCH 05/82] Add the Fabric 1.19.4 placeholder mod metadata --- .../src/main/resources/fabric.mod.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-1.19.4/src/main/resources/fabric.mod.json diff --git a/fabric-1.19.4/src/main/resources/fabric.mod.json b/fabric-1.19.4/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1b87b793 --- /dev/null +++ b/fabric-1.19.4/src/main/resources/fabric.mod.json @@ -0,0 +1,25 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}", + "name": "${mod_name}", + "description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.", + "authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"], + "contact": { + "homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge", + "issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues", + "sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge" + }, + "license": "LicenseRef-MCHeli-Rework-1.0", + "icon": "mcheli_logo.png", + "environment": "*", + "entrypoints": { + "main": ["com.jnhprojects.mcheli.fabric.McheliFabric"] + }, + "depends": { + "fabricloader": "${loader_version_range}", + "fabric-api": "*", + "minecraft": "${minecraft_version_range}", + "java": ">=${java_version}" + } +} From f6eea4821b6651479184f38bd95fa76067c373dd Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:08 +0800 Subject: [PATCH 06/82] Add the Fabric 1.20.2 placeholder build --- fabric-1.20.2/build.gradle | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fabric-1.20.2/build.gradle diff --git a/fabric-1.20.2/build.gradle b/fabric-1.20.2/build.gradle new file mode 100644 index 00000000..d3eb2d75 --- /dev/null +++ b/fabric-1.20.2/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.fabricmc.fabric-loom-remap' +} + +apply from: rootProject.file('gradle/loader.gradle') + +loom { + runs { + configureEach { + runDir = "../run-${minecraft_version}" + } + server { + programArgs '--nogui' + } + } +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + // 1.20.2 is obfuscated; Mojang's names keep the code the same as on Forge and NeoForge. + mappings loom.officialMojangMappings() + modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" +} From 4c25cf24383a9bff4743921370ca72f1e961cdf8 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:08 +0800 Subject: [PATCH 07/82] Pin the Fabric and Java versions for the Minecraft 1.20.2 placeholder --- fabric-1.20.2/gradle.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 fabric-1.20.2/gradle.properties diff --git a/fabric-1.20.2/gradle.properties b/fabric-1.20.2/gradle.properties new file mode 100644 index 00000000..c63f9955 --- /dev/null +++ b/fabric-1.20.2/gradle.properties @@ -0,0 +1,9 @@ +# Minecraft 1.20.2 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md) +loader=fabric +minecraft_version=1.20.2 +minecraft_version_range=~1.20.2 +fabric_loader_version=0.20.1 +loader_version_range=>=0.16.0 +fabric_api_version=0.91.6+1.20.2 +java_version=17 +scaffold=true From ac36544983f0d7a82d5e5c1cac5f55c744fcbdd9 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:09 +0800 Subject: [PATCH 08/82] Add the Fabric 1.20.2 placeholder entry point that only logs --- .../mcheli/fabric/McheliFabric.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 fabric-1.20.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java diff --git a/fabric-1.20.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java b/fabric-1.20.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java new file mode 100644 index 00000000..dfc50ca9 --- /dev/null +++ b/fabric-1.20.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.fabric; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.20.2. It only proves that the module builds and loads; + * the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release. + */ +public final class McheliFabric implements ModInitializer { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + @Override + public void onInitialize() { + LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 1.20.2; no content yet"); + } +} From 71c6776b680c9123bd09ddafd2d95d619b587d50 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:09 +0800 Subject: [PATCH 09/82] Add the Fabric 1.20.2 placeholder mod metadata --- .../src/main/resources/fabric.mod.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-1.20.2/src/main/resources/fabric.mod.json diff --git a/fabric-1.20.2/src/main/resources/fabric.mod.json b/fabric-1.20.2/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1b87b793 --- /dev/null +++ b/fabric-1.20.2/src/main/resources/fabric.mod.json @@ -0,0 +1,25 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}", + "name": "${mod_name}", + "description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.", + "authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"], + "contact": { + "homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge", + "issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues", + "sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge" + }, + "license": "LicenseRef-MCHeli-Rework-1.0", + "icon": "mcheli_logo.png", + "environment": "*", + "entrypoints": { + "main": ["com.jnhprojects.mcheli.fabric.McheliFabric"] + }, + "depends": { + "fabricloader": "${loader_version_range}", + "fabric-api": "*", + "minecraft": "${minecraft_version_range}", + "java": ">=${java_version}" + } +} From c787856c5641a086d1da9ec5565db3bd645c407a Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:10 +0800 Subject: [PATCH 10/82] Add the Fabric 1.20.6 placeholder build --- fabric-1.20.6/build.gradle | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fabric-1.20.6/build.gradle diff --git a/fabric-1.20.6/build.gradle b/fabric-1.20.6/build.gradle new file mode 100644 index 00000000..35a0c27b --- /dev/null +++ b/fabric-1.20.6/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.fabricmc.fabric-loom-remap' +} + +apply from: rootProject.file('gradle/loader.gradle') + +loom { + runs { + configureEach { + runDir = "../run-${minecraft_version}" + } + server { + programArgs '--nogui' + } + } +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + // 1.20.6 is obfuscated; Mojang's names keep the code the same as on Forge and NeoForge. + mappings loom.officialMojangMappings() + modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" +} From bf396813c58743835675ec27595ec5c5023292f1 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:10 +0800 Subject: [PATCH 11/82] Pin the Fabric and Java versions for the Minecraft 1.20.6 placeholder --- fabric-1.20.6/gradle.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 fabric-1.20.6/gradle.properties diff --git a/fabric-1.20.6/gradle.properties b/fabric-1.20.6/gradle.properties new file mode 100644 index 00000000..7e86c3cb --- /dev/null +++ b/fabric-1.20.6/gradle.properties @@ -0,0 +1,9 @@ +# Minecraft 1.20.6 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md) +loader=fabric +minecraft_version=1.20.6 +minecraft_version_range=~1.20.6 +fabric_loader_version=0.20.1 +loader_version_range=>=0.16.0 +fabric_api_version=0.100.8+1.20.6 +java_version=21 +scaffold=true From 747f8b0d3156b3af058b6debe18d53c9f914fb35 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:11 +0800 Subject: [PATCH 12/82] Add the Fabric 1.20.6 placeholder entry point that only logs --- .../mcheli/fabric/McheliFabric.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 fabric-1.20.6/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java diff --git a/fabric-1.20.6/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java b/fabric-1.20.6/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java new file mode 100644 index 00000000..f30386b9 --- /dev/null +++ b/fabric-1.20.6/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.fabric; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.20.6. It only proves that the module builds and loads; + * the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release. + */ +public final class McheliFabric implements ModInitializer { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + @Override + public void onInitialize() { + LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 1.20.6; no content yet"); + } +} From 04267d4ecdaf9237df0a595233322cccb27b6729 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:11 +0800 Subject: [PATCH 13/82] Add the Fabric 1.20.6 placeholder mod metadata --- .../src/main/resources/fabric.mod.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-1.20.6/src/main/resources/fabric.mod.json diff --git a/fabric-1.20.6/src/main/resources/fabric.mod.json b/fabric-1.20.6/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1b87b793 --- /dev/null +++ b/fabric-1.20.6/src/main/resources/fabric.mod.json @@ -0,0 +1,25 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}", + "name": "${mod_name}", + "description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.", + "authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"], + "contact": { + "homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge", + "issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues", + "sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge" + }, + "license": "LicenseRef-MCHeli-Rework-1.0", + "icon": "mcheli_logo.png", + "environment": "*", + "entrypoints": { + "main": ["com.jnhprojects.mcheli.fabric.McheliFabric"] + }, + "depends": { + "fabricloader": "${loader_version_range}", + "fabric-api": "*", + "minecraft": "${minecraft_version_range}", + "java": ">=${java_version}" + } +} From 9047bcc79deb93eed65501107df045cf735ef7fa Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:12 +0800 Subject: [PATCH 14/82] Add the Fabric 1.21.11 placeholder build --- fabric-1.21.11/build.gradle | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fabric-1.21.11/build.gradle diff --git a/fabric-1.21.11/build.gradle b/fabric-1.21.11/build.gradle new file mode 100644 index 00000000..cbaa0761 --- /dev/null +++ b/fabric-1.21.11/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.fabricmc.fabric-loom-remap' +} + +apply from: rootProject.file('gradle/loader.gradle') + +loom { + runs { + configureEach { + runDir = "../run-${minecraft_version}" + } + server { + programArgs '--nogui' + } + } +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + // 1.21.11 is obfuscated; Mojang's names keep the code the same as on Forge and NeoForge. + mappings loom.officialMojangMappings() + modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" +} From 7f8446176c6e481b9bf89fb79fb9fece40422155 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:12 +0800 Subject: [PATCH 15/82] Pin the Fabric and Java versions for the Minecraft 1.21.11 placeholder --- fabric-1.21.11/gradle.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 fabric-1.21.11/gradle.properties diff --git a/fabric-1.21.11/gradle.properties b/fabric-1.21.11/gradle.properties new file mode 100644 index 00000000..860d7a50 --- /dev/null +++ b/fabric-1.21.11/gradle.properties @@ -0,0 +1,9 @@ +# Minecraft 1.21.11 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md) +loader=fabric +minecraft_version=1.21.11 +minecraft_version_range=~1.21.11 +fabric_loader_version=0.20.1 +loader_version_range=>=0.16.0 +fabric_api_version=0.141.6+1.21.11 +java_version=21 +scaffold=true From 4bb518cbc094ab85d20922f9e35430a983400d8d Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:13 +0800 Subject: [PATCH 16/82] Add the Fabric 1.21.11 placeholder entry point that only logs --- .../mcheli/fabric/McheliFabric.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 fabric-1.21.11/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java diff --git a/fabric-1.21.11/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java b/fabric-1.21.11/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java new file mode 100644 index 00000000..7c4837c1 --- /dev/null +++ b/fabric-1.21.11/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.fabric; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.21.11. It only proves that the module builds and loads; + * the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release. + */ +public final class McheliFabric implements ModInitializer { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + @Override + public void onInitialize() { + LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 1.21.11; no content yet"); + } +} From a6b83692eb601089001a64a92a6bcfce163955f7 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:13 +0800 Subject: [PATCH 17/82] Add the Fabric 1.21.11 placeholder mod metadata --- .../src/main/resources/fabric.mod.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-1.21.11/src/main/resources/fabric.mod.json diff --git a/fabric-1.21.11/src/main/resources/fabric.mod.json b/fabric-1.21.11/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1b87b793 --- /dev/null +++ b/fabric-1.21.11/src/main/resources/fabric.mod.json @@ -0,0 +1,25 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}", + "name": "${mod_name}", + "description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.", + "authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"], + "contact": { + "homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge", + "issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues", + "sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge" + }, + "license": "LicenseRef-MCHeli-Rework-1.0", + "icon": "mcheli_logo.png", + "environment": "*", + "entrypoints": { + "main": ["com.jnhprojects.mcheli.fabric.McheliFabric"] + }, + "depends": { + "fabricloader": "${loader_version_range}", + "fabric-api": "*", + "minecraft": "${minecraft_version_range}", + "java": ">=${java_version}" + } +} From 7f46ef5d224ec77ca8626e2f4a752c5c8311c3e8 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:14 +0800 Subject: [PATCH 18/82] Add the Fabric 1.21.5 placeholder build --- fabric-1.21.5/build.gradle | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 fabric-1.21.5/build.gradle diff --git a/fabric-1.21.5/build.gradle b/fabric-1.21.5/build.gradle new file mode 100644 index 00000000..2cb25151 --- /dev/null +++ b/fabric-1.21.5/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.fabricmc.fabric-loom-remap' +} + +apply from: rootProject.file('gradle/loader.gradle') + +loom { + runs { + configureEach { + runDir = "../run-${minecraft_version}" + } + server { + programArgs '--nogui' + } + } +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + // 1.21.5 is obfuscated; Mojang's names keep the code the same as on Forge and NeoForge. + mappings loom.officialMojangMappings() + modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" +} From 250d3de4474bcf6d1764d4f1e88489964e0de318 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:14 +0800 Subject: [PATCH 19/82] Pin the Fabric and Java versions for the Minecraft 1.21.5 placeholder --- fabric-1.21.5/gradle.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 fabric-1.21.5/gradle.properties diff --git a/fabric-1.21.5/gradle.properties b/fabric-1.21.5/gradle.properties new file mode 100644 index 00000000..987d2f24 --- /dev/null +++ b/fabric-1.21.5/gradle.properties @@ -0,0 +1,9 @@ +# Minecraft 1.21.5 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md) +loader=fabric +minecraft_version=1.21.5 +minecraft_version_range=~1.21.5 +fabric_loader_version=0.20.1 +loader_version_range=>=0.16.0 +fabric_api_version=0.128.2+1.21.5 +java_version=21 +scaffold=true From e32f83085bfc067c702c480e8e6992b263d1bf05 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:15 +0800 Subject: [PATCH 20/82] Add the Fabric 1.21.5 placeholder entry point that only logs --- .../mcheli/fabric/McheliFabric.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 fabric-1.21.5/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java diff --git a/fabric-1.21.5/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java b/fabric-1.21.5/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java new file mode 100644 index 00000000..d3f6badd --- /dev/null +++ b/fabric-1.21.5/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.fabric; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.21.5. It only proves that the module builds and loads; + * the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release. + */ +public final class McheliFabric implements ModInitializer { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + @Override + public void onInitialize() { + LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 1.21.5; no content yet"); + } +} From b3ab56b1bb659fae56a44607b045c326814aa5ef Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:15 +0800 Subject: [PATCH 21/82] Add the Fabric 1.21.5 placeholder mod metadata --- .../src/main/resources/fabric.mod.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-1.21.5/src/main/resources/fabric.mod.json diff --git a/fabric-1.21.5/src/main/resources/fabric.mod.json b/fabric-1.21.5/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1b87b793 --- /dev/null +++ b/fabric-1.21.5/src/main/resources/fabric.mod.json @@ -0,0 +1,25 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}", + "name": "${mod_name}", + "description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.", + "authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"], + "contact": { + "homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge", + "issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues", + "sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge" + }, + "license": "LicenseRef-MCHeli-Rework-1.0", + "icon": "mcheli_logo.png", + "environment": "*", + "entrypoints": { + "main": ["com.jnhprojects.mcheli.fabric.McheliFabric"] + }, + "depends": { + "fabricloader": "${loader_version_range}", + "fabric-api": "*", + "minecraft": "${minecraft_version_range}", + "java": ">=${java_version}" + } +} From 20ca14e24e9456d07af6d4570f9eba002bf793bd Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:15 +0800 Subject: [PATCH 22/82] Add the Fabric 26.1 placeholder build --- fabric-26.1/build.gradle | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-26.1/build.gradle diff --git a/fabric-26.1/build.gradle b/fabric-26.1/build.gradle new file mode 100644 index 00000000..dcc4eded --- /dev/null +++ b/fabric-26.1/build.gradle @@ -0,0 +1,25 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.fabricmc.fabric-loom' +} + +apply from: rootProject.file('gradle/loader.gradle') + +loom { + runs { + configureEach { + runDir = "../run-${minecraft_version}" + } + server { + programArgs '--nogui' + } + } +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + implementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + implementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" +} From 14d6466d12c919114fe19f25cd7455cc685f6d95 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:16 +0800 Subject: [PATCH 23/82] Pin the Fabric and Java versions for the Minecraft 26.1 placeholder --- fabric-26.1/gradle.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 fabric-26.1/gradle.properties diff --git a/fabric-26.1/gradle.properties b/fabric-26.1/gradle.properties new file mode 100644 index 00000000..037b1476 --- /dev/null +++ b/fabric-26.1/gradle.properties @@ -0,0 +1,9 @@ +# Minecraft 26.1 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md) +loader=fabric +minecraft_version=26.1 +minecraft_version_range=~26.1 +fabric_loader_version=0.20.1 +loader_version_range=>=0.20.0 +fabric_api_version=0.145.1+26.1 +java_version=25 +scaffold=true From 9733c79c949fcf6fe714f5496d57e5fa76c3312a Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:16 +0800 Subject: [PATCH 24/82] Add the Fabric 26.1 placeholder entry point that only logs --- .../mcheli/fabric/McheliFabric.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 fabric-26.1/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java diff --git a/fabric-26.1/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java b/fabric-26.1/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java new file mode 100644 index 00000000..4547c6a5 --- /dev/null +++ b/fabric-26.1/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.fabric; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 26.1. It only proves that the module builds and loads; + * the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release. + */ +public final class McheliFabric implements ModInitializer { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + @Override + public void onInitialize() { + LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 26.1; no content yet"); + } +} From 4b732bd3f62f624818950de15db600cbb8a64154 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:17 +0800 Subject: [PATCH 25/82] Add the Fabric 26.1 placeholder mod metadata --- .../src/main/resources/fabric.mod.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-26.1/src/main/resources/fabric.mod.json diff --git a/fabric-26.1/src/main/resources/fabric.mod.json b/fabric-26.1/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1b87b793 --- /dev/null +++ b/fabric-26.1/src/main/resources/fabric.mod.json @@ -0,0 +1,25 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}", + "name": "${mod_name}", + "description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.", + "authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"], + "contact": { + "homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge", + "issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues", + "sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge" + }, + "license": "LicenseRef-MCHeli-Rework-1.0", + "icon": "mcheli_logo.png", + "environment": "*", + "entrypoints": { + "main": ["com.jnhprojects.mcheli.fabric.McheliFabric"] + }, + "depends": { + "fabricloader": "${loader_version_range}", + "fabric-api": "*", + "minecraft": "${minecraft_version_range}", + "java": ">=${java_version}" + } +} From e53e7c21d1b7fc3895bb37ded181ef52e6fa93ce Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:17 +0800 Subject: [PATCH 26/82] Add the Fabric 26.2 placeholder build --- fabric-26.2/build.gradle | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-26.2/build.gradle diff --git a/fabric-26.2/build.gradle b/fabric-26.2/build.gradle new file mode 100644 index 00000000..dcc4eded --- /dev/null +++ b/fabric-26.2/build.gradle @@ -0,0 +1,25 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.fabricmc.fabric-loom' +} + +apply from: rootProject.file('gradle/loader.gradle') + +loom { + runs { + configureEach { + runDir = "../run-${minecraft_version}" + } + server { + programArgs '--nogui' + } + } +} + +dependencies { + minecraft "com.mojang:minecraft:${minecraft_version}" + implementation "net.fabricmc:fabric-loader:${fabric_loader_version}" + implementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" +} From 9dee57ec35299a085db44e7be5fd2f1c1e1af39c Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:18 +0800 Subject: [PATCH 27/82] Pin the Fabric and Java versions for the Minecraft 26.2 placeholder --- fabric-26.2/gradle.properties | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 fabric-26.2/gradle.properties diff --git a/fabric-26.2/gradle.properties b/fabric-26.2/gradle.properties new file mode 100644 index 00000000..a321987f --- /dev/null +++ b/fabric-26.2/gradle.properties @@ -0,0 +1,9 @@ +# Minecraft 26.2 on Fabric (placeholder until the port, see docs/DEVELOPMENT.md) +loader=fabric +minecraft_version=26.2 +minecraft_version_range=~26.2 +fabric_loader_version=0.20.1 +loader_version_range=>=0.20.0 +fabric_api_version=0.161.0+26.2 +java_version=25 +scaffold=true From 865c01a4006221c21f5ef3c24f8519a477f621b2 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:18 +0800 Subject: [PATCH 28/82] Add the Fabric 26.2 placeholder entry point that only logs --- .../mcheli/fabric/McheliFabric.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 fabric-26.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java diff --git a/fabric-26.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java b/fabric-26.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java new file mode 100644 index 00000000..0a969049 --- /dev/null +++ b/fabric-26.2/src/main/java/com/jnhprojects/mcheli/fabric/McheliFabric.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.fabric; + +import net.fabricmc.api.ModInitializer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 26.2. It only proves that the module builds and loads; + * the Fabric glue from fabric-26.3 replaces it when this version is ported for a final release. + */ +public final class McheliFabric implements ModInitializer { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + @Override + public void onInitialize() { + LOGGER.info("MCHeli Rework placeholder loaded on Fabric for Minecraft 26.2; no content yet"); + } +} From 9313763b6fcc7c8fb8f89cb550b0e39ff8ae7ff5 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:19 +0800 Subject: [PATCH 29/82] Add the Fabric 26.2 placeholder mod metadata --- .../src/main/resources/fabric.mod.json | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 fabric-26.2/src/main/resources/fabric.mod.json diff --git a/fabric-26.2/src/main/resources/fabric.mod.json b/fabric-26.2/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..1b87b793 --- /dev/null +++ b/fabric-26.2/src/main/resources/fabric.mod.json @@ -0,0 +1,25 @@ +{ + "schemaVersion": 1, + "id": "${mod_id}", + "version": "${mod_version}", + "name": "${mod_name}", + "description": "Helicopters, planes, tanks and vehicles for modern Minecraft. This build is a placeholder: the port to this Minecraft version is not done yet. A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the MCHeli CurseForge page into the \"mcheli\" folder of the game directory.", + "authors": ["JayMar921 (rework)", "EMB4 (original author)", "Fureniku (CurseForge maintainer)"], + "contact": { + "homepage": "https://github.com/JnH-Projects/MCHeli-Rework-Forge", + "issues": "https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues", + "sources": "https://github.com/JnH-Projects/MCHeli-Rework-Forge" + }, + "license": "LicenseRef-MCHeli-Rework-1.0", + "icon": "mcheli_logo.png", + "environment": "*", + "entrypoints": { + "main": ["com.jnhprojects.mcheli.fabric.McheliFabric"] + }, + "depends": { + "fabricloader": "${loader_version_range}", + "fabric-api": "*", + "minecraft": "${minecraft_version_range}", + "java": ">=${java_version}" + } +} From 21b0478f3d9b4969da86bb47bc447aee93c2ab71 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:19 +0800 Subject: [PATCH 30/82] Add the Forge 1.19.4 placeholder build --- forge-1.19.4/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 forge-1.19.4/build.gradle diff --git a/forge-1.19.4/build.gradle b/forge-1.19.4/build.gradle new file mode 100644 index 00000000..51b53eb9 --- /dev/null +++ b/forge-1.19.4/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.minecraftforge.gradle' +} + +apply from: rootProject.file('gradle/loader.gradle') + +minecraft { + mappings channel: 'official', version: minecraft_version + + runs { + configureEach { + workingDir = rootProject.layout.projectDirectory.dir("run-${minecraft_version}") + } + + register('client') + + register('server') { + args '--nogui' + } + } +} + +repositories { + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() +} + +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${minecraft_version}-${forge_version}") +} From d0c1ef4ab61efc5064107baf386867de40f7b0ea Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:20 +0800 Subject: [PATCH 31/82] Pin the Forge and Java versions for the Minecraft 1.19.4 placeholder --- forge-1.19.4/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-1.19.4/gradle.properties diff --git a/forge-1.19.4/gradle.properties b/forge-1.19.4/gradle.properties new file mode 100644 index 00000000..06741279 --- /dev/null +++ b/forge-1.19.4/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.19.4 on Forge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=forge +minecraft_version=1.19.4 +minecraft_version_range=[1.19.4,1.19.5) +forge_version=45.4.5 +loader_version_range=[45,) +java_version=17 +scaffold=true From bc4e36647b5aa6113149cbcc07898b01d7d801bc Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:20 +0800 Subject: [PATCH 32/82] Add the Forge 1.19.4 placeholder entry point that only logs --- .../jnhprojects/mcheli/forge/McheliForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-1.19.4/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java diff --git a/forge-1.19.4/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java b/forge-1.19.4/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java new file mode 100644 index 00000000..906824e1 --- /dev/null +++ b/forge-1.19.4/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.forge; + +import net.minecraftforge.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.19.4. It only proves that the module builds and loads; + * the Forge glue from forge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliForge() { + LOGGER.info("MCHeli Rework placeholder loaded on Forge for Minecraft 1.19.4; no content yet"); + } +} From 142b0752c9e070783067ff4d0a5919c226bb5ace Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:21 +0800 Subject: [PATCH 33/82] Add the Forge 1.19.4 placeholder mod metadata --- .../src/main/resources/META-INF/mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 forge-1.19.4/src/main/resources/META-INF/mods.toml diff --git a/forge-1.19.4/src/main/resources/META-INF/mods.toml b/forge-1.19.4/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..47ec16fb --- /dev/null +++ b/forge-1.19.4/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft Forge. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="forge" + mandatory=true + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + mandatory=true + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From d961fc802afbc07ad0330dabba9e59b425176165 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:21 +0800 Subject: [PATCH 34/82] Add the Forge 1.20.2 placeholder build --- forge-1.20.2/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 forge-1.20.2/build.gradle diff --git a/forge-1.20.2/build.gradle b/forge-1.20.2/build.gradle new file mode 100644 index 00000000..51b53eb9 --- /dev/null +++ b/forge-1.20.2/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.minecraftforge.gradle' +} + +apply from: rootProject.file('gradle/loader.gradle') + +minecraft { + mappings channel: 'official', version: minecraft_version + + runs { + configureEach { + workingDir = rootProject.layout.projectDirectory.dir("run-${minecraft_version}") + } + + register('client') + + register('server') { + args '--nogui' + } + } +} + +repositories { + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() +} + +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${minecraft_version}-${forge_version}") +} From 5629240818b72fce063f757d4f52760f6cbb2d7c Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:21 +0800 Subject: [PATCH 35/82] Pin the Forge and Java versions for the Minecraft 1.20.2 placeholder --- forge-1.20.2/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-1.20.2/gradle.properties diff --git a/forge-1.20.2/gradle.properties b/forge-1.20.2/gradle.properties new file mode 100644 index 00000000..b51d38f2 --- /dev/null +++ b/forge-1.20.2/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.20.2 on Forge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=forge +minecraft_version=1.20.2 +minecraft_version_range=[1.20.2,1.20.3) +forge_version=48.1.0 +loader_version_range=[48,) +java_version=17 +scaffold=true From 3f6ac9aafc3c4f7bfd98e2d8fd26fd3502b2d551 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:22 +0800 Subject: [PATCH 36/82] Add the Forge 1.20.2 placeholder entry point that only logs --- .../jnhprojects/mcheli/forge/McheliForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-1.20.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java diff --git a/forge-1.20.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java b/forge-1.20.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java new file mode 100644 index 00000000..1c54f8dd --- /dev/null +++ b/forge-1.20.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.forge; + +import net.minecraftforge.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.20.2. It only proves that the module builds and loads; + * the Forge glue from forge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliForge() { + LOGGER.info("MCHeli Rework placeholder loaded on Forge for Minecraft 1.20.2; no content yet"); + } +} From cfc81160f7de99d9f2083bb15a83bef9d8e35678 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:22 +0800 Subject: [PATCH 37/82] Add the Forge 1.20.2 placeholder mod metadata --- .../src/main/resources/META-INF/mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 forge-1.20.2/src/main/resources/META-INF/mods.toml diff --git a/forge-1.20.2/src/main/resources/META-INF/mods.toml b/forge-1.20.2/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..47ec16fb --- /dev/null +++ b/forge-1.20.2/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft Forge. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="forge" + mandatory=true + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + mandatory=true + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From 10616a5cf04832548c15cc6288fac85954690b3d Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:23 +0800 Subject: [PATCH 38/82] Add the Forge 1.20.6 placeholder build --- forge-1.20.6/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 forge-1.20.6/build.gradle diff --git a/forge-1.20.6/build.gradle b/forge-1.20.6/build.gradle new file mode 100644 index 00000000..51b53eb9 --- /dev/null +++ b/forge-1.20.6/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.minecraftforge.gradle' +} + +apply from: rootProject.file('gradle/loader.gradle') + +minecraft { + mappings channel: 'official', version: minecraft_version + + runs { + configureEach { + workingDir = rootProject.layout.projectDirectory.dir("run-${minecraft_version}") + } + + register('client') + + register('server') { + args '--nogui' + } + } +} + +repositories { + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() +} + +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${minecraft_version}-${forge_version}") +} From 4b539ab2f03eb5cd3510a1a068d91df6b3ba178b Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:23 +0800 Subject: [PATCH 39/82] Pin the Forge and Java versions for the Minecraft 1.20.6 placeholder --- forge-1.20.6/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-1.20.6/gradle.properties diff --git a/forge-1.20.6/gradle.properties b/forge-1.20.6/gradle.properties new file mode 100644 index 00000000..33de24a2 --- /dev/null +++ b/forge-1.20.6/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.20.6 on Forge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=forge +minecraft_version=1.20.6 +minecraft_version_range=[1.20.6,1.20.7) +forge_version=50.2.14 +loader_version_range=[50,) +java_version=21 +scaffold=true From cb2daeb8aedee6f0bcf449d026d0fe670d0389d0 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:24 +0800 Subject: [PATCH 40/82] Add the Forge 1.20.6 placeholder entry point that only logs --- .../jnhprojects/mcheli/forge/McheliForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-1.20.6/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java diff --git a/forge-1.20.6/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java b/forge-1.20.6/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java new file mode 100644 index 00000000..4225f85c --- /dev/null +++ b/forge-1.20.6/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.forge; + +import net.minecraftforge.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.20.6. It only proves that the module builds and loads; + * the Forge glue from forge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliForge() { + LOGGER.info("MCHeli Rework placeholder loaded on Forge for Minecraft 1.20.6; no content yet"); + } +} From 59d0abfd4d194d776b89149079ad4f1cd7d45bd7 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:24 +0800 Subject: [PATCH 41/82] Add the Forge 1.20.6 placeholder mod metadata --- .../src/main/resources/META-INF/mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 forge-1.20.6/src/main/resources/META-INF/mods.toml diff --git a/forge-1.20.6/src/main/resources/META-INF/mods.toml b/forge-1.20.6/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..47ec16fb --- /dev/null +++ b/forge-1.20.6/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft Forge. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="forge" + mandatory=true + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + mandatory=true + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From af51260c3a64e8640557a06b19d76615056266e2 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:25 +0800 Subject: [PATCH 42/82] Add the Forge 1.21.11 placeholder build --- forge-1.21.11/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 forge-1.21.11/build.gradle diff --git a/forge-1.21.11/build.gradle b/forge-1.21.11/build.gradle new file mode 100644 index 00000000..51b53eb9 --- /dev/null +++ b/forge-1.21.11/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.minecraftforge.gradle' +} + +apply from: rootProject.file('gradle/loader.gradle') + +minecraft { + mappings channel: 'official', version: minecraft_version + + runs { + configureEach { + workingDir = rootProject.layout.projectDirectory.dir("run-${minecraft_version}") + } + + register('client') + + register('server') { + args '--nogui' + } + } +} + +repositories { + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() +} + +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${minecraft_version}-${forge_version}") +} From 121ce4b3cc40dd3628355696ff9f894ade4d3c10 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:25 +0800 Subject: [PATCH 43/82] Pin the Forge and Java versions for the Minecraft 1.21.11 placeholder --- forge-1.21.11/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-1.21.11/gradle.properties diff --git a/forge-1.21.11/gradle.properties b/forge-1.21.11/gradle.properties new file mode 100644 index 00000000..f5af7bee --- /dev/null +++ b/forge-1.21.11/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.21.11 on Forge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=forge +minecraft_version=1.21.11 +minecraft_version_range=[1.21.11,1.21.12) +forge_version=61.2.4 +loader_version_range=[61,) +java_version=21 +scaffold=true From 6cec94ecc30d02cfc68a3e1e97003111c6413589 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:26 +0800 Subject: [PATCH 44/82] Add the Forge 1.21.11 placeholder entry point that only logs --- .../jnhprojects/mcheli/forge/McheliForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-1.21.11/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java diff --git a/forge-1.21.11/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java b/forge-1.21.11/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java new file mode 100644 index 00000000..390995f9 --- /dev/null +++ b/forge-1.21.11/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.forge; + +import net.minecraftforge.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.21.11. It only proves that the module builds and loads; + * the Forge glue from forge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliForge() { + LOGGER.info("MCHeli Rework placeholder loaded on Forge for Minecraft 1.21.11; no content yet"); + } +} From 1ca4278a5f1753c51db297fe3037c3d9ef42510e Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:26 +0800 Subject: [PATCH 45/82] Add the Forge 1.21.11 placeholder mod metadata --- .../src/main/resources/META-INF/mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 forge-1.21.11/src/main/resources/META-INF/mods.toml diff --git a/forge-1.21.11/src/main/resources/META-INF/mods.toml b/forge-1.21.11/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..47ec16fb --- /dev/null +++ b/forge-1.21.11/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft Forge. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="forge" + mandatory=true + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + mandatory=true + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From 009dd8d22152f2b217b0400feeb01ca2926cd1c3 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:27 +0800 Subject: [PATCH 46/82] Add the Forge 1.21.5 placeholder build --- forge-1.21.5/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 forge-1.21.5/build.gradle diff --git a/forge-1.21.5/build.gradle b/forge-1.21.5/build.gradle new file mode 100644 index 00000000..51b53eb9 --- /dev/null +++ b/forge-1.21.5/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.minecraftforge.gradle' +} + +apply from: rootProject.file('gradle/loader.gradle') + +minecraft { + mappings channel: 'official', version: minecraft_version + + runs { + configureEach { + workingDir = rootProject.layout.projectDirectory.dir("run-${minecraft_version}") + } + + register('client') + + register('server') { + args '--nogui' + } + } +} + +repositories { + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() +} + +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${minecraft_version}-${forge_version}") +} From ca9282d0622ca41f1fd42dcc75de95aa5972db52 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:27 +0800 Subject: [PATCH 47/82] Pin the Forge and Java versions for the Minecraft 1.21.5 placeholder --- forge-1.21.5/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-1.21.5/gradle.properties diff --git a/forge-1.21.5/gradle.properties b/forge-1.21.5/gradle.properties new file mode 100644 index 00000000..6afab053 --- /dev/null +++ b/forge-1.21.5/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.21.5 on Forge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=forge +minecraft_version=1.21.5 +minecraft_version_range=[1.21.5,1.21.6) +forge_version=55.1.18 +loader_version_range=[55,) +java_version=21 +scaffold=true From 335d0aa9ba2c30ff5c95a903c933dcd9d4bf37c8 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:28 +0800 Subject: [PATCH 48/82] Add the Forge 1.21.5 placeholder entry point that only logs --- .../jnhprojects/mcheli/forge/McheliForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-1.21.5/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java diff --git a/forge-1.21.5/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java b/forge-1.21.5/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java new file mode 100644 index 00000000..8cb9b838 --- /dev/null +++ b/forge-1.21.5/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.forge; + +import net.minecraftforge.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.21.5. It only proves that the module builds and loads; + * the Forge glue from forge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliForge() { + LOGGER.info("MCHeli Rework placeholder loaded on Forge for Minecraft 1.21.5; no content yet"); + } +} From 96749aaff3593023bdc5a83c14f0b5dcc7bac593 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:28 +0800 Subject: [PATCH 49/82] Add the Forge 1.21.5 placeholder mod metadata --- .../src/main/resources/META-INF/mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 forge-1.21.5/src/main/resources/META-INF/mods.toml diff --git a/forge-1.21.5/src/main/resources/META-INF/mods.toml b/forge-1.21.5/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..47ec16fb --- /dev/null +++ b/forge-1.21.5/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft Forge. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="forge" + mandatory=true + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + mandatory=true + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From 72123a167b8249f5724cd13fcb40eec83b01d394 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:29 +0800 Subject: [PATCH 50/82] Add the Forge 26.1 placeholder build --- forge-26.1/build.gradle | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 forge-26.1/build.gradle diff --git a/forge-26.1/build.gradle b/forge-26.1/build.gradle new file mode 100644 index 00000000..372dd1f6 --- /dev/null +++ b/forge-26.1/build.gradle @@ -0,0 +1,33 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.minecraftforge.gradle' +} + +apply from: rootProject.file('gradle/loader.gradle') + +minecraft { + runs { + configureEach { + workingDir = rootProject.layout.projectDirectory.dir("run-${minecraft_version}") + } + + register('client') + + register('server') { + args '--nogui' + } + } +} + +repositories { + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() +} + +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${minecraft_version}-${forge_version}") +} From 4f0175f1915c30c411e42185cd60809a977c1fc1 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:29 +0800 Subject: [PATCH 51/82] Pin the Forge and Java versions for the Minecraft 26.1 placeholder --- forge-26.1/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-26.1/gradle.properties diff --git a/forge-26.1/gradle.properties b/forge-26.1/gradle.properties new file mode 100644 index 00000000..27bc7407 --- /dev/null +++ b/forge-26.1/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 26.1 on Forge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=forge +minecraft_version=26.1 +minecraft_version_range=[26.1,26.2) +forge_version=62.0.9 +loader_version_range=[62,) +java_version=25 +scaffold=true From 765a6dd6ddc620ee373ae9a78eb488a3e655fadc Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:29 +0800 Subject: [PATCH 52/82] Add the Forge 26.1 placeholder entry point that only logs --- .../jnhprojects/mcheli/forge/McheliForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-26.1/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java diff --git a/forge-26.1/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java b/forge-26.1/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java new file mode 100644 index 00000000..257d9d92 --- /dev/null +++ b/forge-26.1/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.forge; + +import net.minecraftforge.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 26.1. It only proves that the module builds and loads; + * the Forge glue from forge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliForge() { + LOGGER.info("MCHeli Rework placeholder loaded on Forge for Minecraft 26.1; no content yet"); + } +} From bef30919b0606dc666e21a952327525a6dc472d2 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:30 +0800 Subject: [PATCH 53/82] Add the Forge 26.1 placeholder mod metadata --- .../src/main/resources/META-INF/mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 forge-26.1/src/main/resources/META-INF/mods.toml diff --git a/forge-26.1/src/main/resources/META-INF/mods.toml b/forge-26.1/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..47ec16fb --- /dev/null +++ b/forge-26.1/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft Forge. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="forge" + mandatory=true + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + mandatory=true + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From c5c2333a91117d2bf44b4711bb84dd80f47b766d Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:31 +0800 Subject: [PATCH 54/82] Add the Forge 26.2 placeholder build --- forge-26.2/build.gradle | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 forge-26.2/build.gradle diff --git a/forge-26.2/build.gradle b/forge-26.2/build.gradle new file mode 100644 index 00000000..372dd1f6 --- /dev/null +++ b/forge-26.2/build.gradle @@ -0,0 +1,33 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.minecraftforge.gradle' +} + +apply from: rootProject.file('gradle/loader.gradle') + +minecraft { + runs { + configureEach { + workingDir = rootProject.layout.projectDirectory.dir("run-${minecraft_version}") + } + + register('client') + + register('server') { + args '--nogui' + } + } +} + +repositories { + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() +} + +dependencies { + implementation minecraft.dependency("net.minecraftforge:forge:${minecraft_version}-${forge_version}") +} From ee45b81c36578c230b9a5078ffc822af44932518 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:31 +0800 Subject: [PATCH 55/82] Pin the Forge and Java versions for the Minecraft 26.2 placeholder --- forge-26.2/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 forge-26.2/gradle.properties diff --git a/forge-26.2/gradle.properties b/forge-26.2/gradle.properties new file mode 100644 index 00000000..c7d56828 --- /dev/null +++ b/forge-26.2/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 26.2 on Forge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=forge +minecraft_version=26.2 +minecraft_version_range=[26.2,26.3) +forge_version=65.1.5 +loader_version_range=[65,) +java_version=25 +scaffold=true From 339532545989f70a37078399aba1e04adf826575 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:31 +0800 Subject: [PATCH 56/82] Add the Forge 26.2 placeholder entry point that only logs --- .../jnhprojects/mcheli/forge/McheliForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 forge-26.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java diff --git a/forge-26.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java b/forge-26.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java new file mode 100644 index 00000000..0bb49087 --- /dev/null +++ b/forge-26.2/src/main/java/com/jnhprojects/mcheli/forge/McheliForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.forge; + +import net.minecraftforge.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 26.2. It only proves that the module builds and loads; + * the Forge glue from forge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliForge() { + LOGGER.info("MCHeli Rework placeholder loaded on Forge for Minecraft 26.2; no content yet"); + } +} From 8c7c54d713b69fb8e8904e6de410ec53e354c116 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:32 +0800 Subject: [PATCH 57/82] Add the Forge 26.2 placeholder mod metadata --- .../src/main/resources/META-INF/mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 forge-26.2/src/main/resources/META-INF/mods.toml diff --git a/forge-26.2/src/main/resources/META-INF/mods.toml b/forge-26.2/src/main/resources/META-INF/mods.toml new file mode 100644 index 00000000..47ec16fb --- /dev/null +++ b/forge-26.2/src/main/resources/META-INF/mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="${loader_version_range}" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft Forge. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="forge" + mandatory=true + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + mandatory=true + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From 40bd4d41b7a1a01b1306a323dbdfcfc71bad299d Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:32 +0800 Subject: [PATCH 58/82] Add the NeoForge 1.20.6 placeholder build --- neoforge-1.20.6/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 neoforge-1.20.6/build.gradle diff --git a/neoforge-1.20.6/build.gradle b/neoforge-1.20.6/build.gradle new file mode 100644 index 00000000..6dded114 --- /dev/null +++ b/neoforge-1.20.6/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.neoforged.moddev' +} + +apply from: rootProject.file('gradle/loader.gradle') + +neoForge { + version = neoforge_version + + runs { + configureEach { + gameDirectory = rootProject.file("run-${minecraft_version}") + } + client { + client() + } + server { + server() + programArgument '--nogui' + } + } + + mods { + mcheli { + sourceSet sourceSets.main + } + } +} + +repositories { + mavenCentral() +} From 954943024ecb53d81187301d6fba0eb3b2a18bc9 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:33 +0800 Subject: [PATCH 59/82] Pin the NeoForge and Java versions for the Minecraft 1.20.6 placeholder --- neoforge-1.20.6/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 neoforge-1.20.6/gradle.properties diff --git a/neoforge-1.20.6/gradle.properties b/neoforge-1.20.6/gradle.properties new file mode 100644 index 00000000..14fb2f7c --- /dev/null +++ b/neoforge-1.20.6/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.20.6 on NeoForge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=neoforge +minecraft_version=1.20.6 +minecraft_version_range=[1.20.6,1.20.7) +neoforge_version=20.6.144 +loader_version_range=[20.6,) +java_version=21 +scaffold=true From d36a0bfc58c94aaf510a52c022c4b4170c110ab9 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:33 +0800 Subject: [PATCH 60/82] Add the NeoForge 1.20.6 placeholder entry point that only logs --- .../mcheli/neoforge/McheliNeoForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 neoforge-1.20.6/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java diff --git a/neoforge-1.20.6/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java b/neoforge-1.20.6/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java new file mode 100644 index 00000000..19b0ef8d --- /dev/null +++ b/neoforge-1.20.6/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.neoforge; + +import net.neoforged.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.20.6. It only proves that the module builds and loads; + * the NeoForge glue from neoforge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliNeoForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliNeoForge() { + LOGGER.info("MCHeli Rework placeholder loaded on NeoForge for Minecraft 1.20.6; no content yet"); + } +} From 6fd9954ad008454b548c09121eed05ded2ebf0fc Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:34 +0800 Subject: [PATCH 61/82] Add the NeoForge 1.20.6 placeholder mod metadata --- .../resources/META-INF/neoforge.mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 neoforge-1.20.6/src/main/resources/META-INF/neoforge.mods.toml diff --git a/neoforge-1.20.6/src/main/resources/META-INF/neoforge.mods.toml b/neoforge-1.20.6/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..2585f0b9 --- /dev/null +++ b/neoforge-1.20.6/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="[1,)" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="neoforge" + type="required" + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From 47d2610d5565de477f264d26adac4c85895650a1 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:34 +0800 Subject: [PATCH 62/82] Add the NeoForge 1.21.11 placeholder build --- neoforge-1.21.11/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 neoforge-1.21.11/build.gradle diff --git a/neoforge-1.21.11/build.gradle b/neoforge-1.21.11/build.gradle new file mode 100644 index 00000000..6dded114 --- /dev/null +++ b/neoforge-1.21.11/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.neoforged.moddev' +} + +apply from: rootProject.file('gradle/loader.gradle') + +neoForge { + version = neoforge_version + + runs { + configureEach { + gameDirectory = rootProject.file("run-${minecraft_version}") + } + client { + client() + } + server { + server() + programArgument '--nogui' + } + } + + mods { + mcheli { + sourceSet sourceSets.main + } + } +} + +repositories { + mavenCentral() +} From be672b1e7b0fd62b563f7b63a770fa51dfc6b99c Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:35 +0800 Subject: [PATCH 63/82] Pin the NeoForge and Java versions for the Minecraft 1.21.11 placeholder --- neoforge-1.21.11/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 neoforge-1.21.11/gradle.properties diff --git a/neoforge-1.21.11/gradle.properties b/neoforge-1.21.11/gradle.properties new file mode 100644 index 00000000..54840e89 --- /dev/null +++ b/neoforge-1.21.11/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.21.11 on NeoForge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=neoforge +minecraft_version=1.21.11 +minecraft_version_range=[1.21.11,1.21.12) +neoforge_version=21.11.48 +loader_version_range=[21.11,) +java_version=21 +scaffold=true From 99f9a6852dbb25f43e4050d1ebe15392215eea56 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:35 +0800 Subject: [PATCH 64/82] Add the NeoForge 1.21.11 placeholder entry point that only logs --- .../mcheli/neoforge/McheliNeoForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 neoforge-1.21.11/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java diff --git a/neoforge-1.21.11/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java b/neoforge-1.21.11/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java new file mode 100644 index 00000000..8244fd29 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.neoforge; + +import net.neoforged.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.21.11. It only proves that the module builds and loads; + * the NeoForge glue from neoforge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliNeoForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliNeoForge() { + LOGGER.info("MCHeli Rework placeholder loaded on NeoForge for Minecraft 1.21.11; no content yet"); + } +} From 279b3ce3eb6217beb15dbd1e2aa7afaa41d8bc36 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:36 +0800 Subject: [PATCH 65/82] Add the NeoForge 1.21.11 placeholder mod metadata --- .../resources/META-INF/neoforge.mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 neoforge-1.21.11/src/main/resources/META-INF/neoforge.mods.toml diff --git a/neoforge-1.21.11/src/main/resources/META-INF/neoforge.mods.toml b/neoforge-1.21.11/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..2585f0b9 --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="[1,)" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="neoforge" + type="required" + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From 74e61d197a75279383a511ed6399935f86608735 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:36 +0800 Subject: [PATCH 66/82] Add the NeoForge 1.21.5 placeholder build --- neoforge-1.21.5/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 neoforge-1.21.5/build.gradle diff --git a/neoforge-1.21.5/build.gradle b/neoforge-1.21.5/build.gradle new file mode 100644 index 00000000..6dded114 --- /dev/null +++ b/neoforge-1.21.5/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.neoforged.moddev' +} + +apply from: rootProject.file('gradle/loader.gradle') + +neoForge { + version = neoforge_version + + runs { + configureEach { + gameDirectory = rootProject.file("run-${minecraft_version}") + } + client { + client() + } + server { + server() + programArgument '--nogui' + } + } + + mods { + mcheli { + sourceSet sourceSets.main + } + } +} + +repositories { + mavenCentral() +} From 5260761c83b86bfcbbc3d3071bdbaf3801ffea5c Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:37 +0800 Subject: [PATCH 67/82] Pin the NeoForge and Java versions for the Minecraft 1.21.5 placeholder --- neoforge-1.21.5/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 neoforge-1.21.5/gradle.properties diff --git a/neoforge-1.21.5/gradle.properties b/neoforge-1.21.5/gradle.properties new file mode 100644 index 00000000..359852a0 --- /dev/null +++ b/neoforge-1.21.5/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 1.21.5 on NeoForge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=neoforge +minecraft_version=1.21.5 +minecraft_version_range=[1.21.5,1.21.6) +neoforge_version=21.5.101 +loader_version_range=[21.5,) +java_version=21 +scaffold=true From 83f6872000a933f754df99ab4865d87e61cd7559 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:37 +0800 Subject: [PATCH 68/82] Add the NeoForge 1.21.5 placeholder entry point that only logs --- .../mcheli/neoforge/McheliNeoForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 neoforge-1.21.5/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java diff --git a/neoforge-1.21.5/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java b/neoforge-1.21.5/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java new file mode 100644 index 00000000..fdc41c77 --- /dev/null +++ b/neoforge-1.21.5/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.neoforge; + +import net.neoforged.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 1.21.5. It only proves that the module builds and loads; + * the NeoForge glue from neoforge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliNeoForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliNeoForge() { + LOGGER.info("MCHeli Rework placeholder loaded on NeoForge for Minecraft 1.21.5; no content yet"); + } +} From f49f1d0cba8ba03b0f0c59bd59d184e0979847a0 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:38 +0800 Subject: [PATCH 69/82] Add the NeoForge 1.21.5 placeholder mod metadata --- .../resources/META-INF/neoforge.mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 neoforge-1.21.5/src/main/resources/META-INF/neoforge.mods.toml diff --git a/neoforge-1.21.5/src/main/resources/META-INF/neoforge.mods.toml b/neoforge-1.21.5/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..2585f0b9 --- /dev/null +++ b/neoforge-1.21.5/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="[1,)" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="neoforge" + type="required" + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From 9c338c21d94dcd68caf14d6e2be5494a0018593e Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:38 +0800 Subject: [PATCH 70/82] Add the NeoForge 26.1 placeholder build --- neoforge-26.1/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 neoforge-26.1/build.gradle diff --git a/neoforge-26.1/build.gradle b/neoforge-26.1/build.gradle new file mode 100644 index 00000000..6dded114 --- /dev/null +++ b/neoforge-26.1/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.neoforged.moddev' +} + +apply from: rootProject.file('gradle/loader.gradle') + +neoForge { + version = neoforge_version + + runs { + configureEach { + gameDirectory = rootProject.file("run-${minecraft_version}") + } + client { + client() + } + server { + server() + programArgument '--nogui' + } + } + + mods { + mcheli { + sourceSet sourceSets.main + } + } +} + +repositories { + mavenCentral() +} From dc37eb9a4b02cee6d1521bfed56b73f5226202d3 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:39 +0800 Subject: [PATCH 71/82] Pin the NeoForge and Java versions for the Minecraft 26.1 placeholder --- neoforge-26.1/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 neoforge-26.1/gradle.properties diff --git a/neoforge-26.1/gradle.properties b/neoforge-26.1/gradle.properties new file mode 100644 index 00000000..265dfcf9 --- /dev/null +++ b/neoforge-26.1/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 26.1 on NeoForge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=neoforge +minecraft_version=26.1 +minecraft_version_range=[26.1,26.2) +neoforge_version=26.1.2.126 +loader_version_range=[26.1,) +java_version=25 +scaffold=true From abd184884f94d65a5d42fec9bff4923818172033 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:39 +0800 Subject: [PATCH 72/82] Add the NeoForge 26.1 placeholder entry point that only logs --- .../mcheli/neoforge/McheliNeoForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 neoforge-26.1/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java diff --git a/neoforge-26.1/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java b/neoforge-26.1/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java new file mode 100644 index 00000000..fa74df62 --- /dev/null +++ b/neoforge-26.1/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.neoforge; + +import net.neoforged.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 26.1. It only proves that the module builds and loads; + * the NeoForge glue from neoforge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliNeoForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliNeoForge() { + LOGGER.info("MCHeli Rework placeholder loaded on NeoForge for Minecraft 26.1; no content yet"); + } +} From 941b471caab0afe7034b1caf1ec221025a3f9ab8 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:40 +0800 Subject: [PATCH 73/82] Add the NeoForge 26.1 placeholder mod metadata --- .../resources/META-INF/neoforge.mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 neoforge-26.1/src/main/resources/META-INF/neoforge.mods.toml diff --git a/neoforge-26.1/src/main/resources/META-INF/neoforge.mods.toml b/neoforge-26.1/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..2585f0b9 --- /dev/null +++ b/neoforge-26.1/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="[1,)" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="neoforge" + type="required" + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From fbc69460f362eabbb1ff35caf056955620d2cbfd Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:40 +0800 Subject: [PATCH 74/82] Add the NeoForge 26.2 placeholder build --- neoforge-26.2/build.gradle | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 neoforge-26.2/build.gradle diff --git a/neoforge-26.2/build.gradle b/neoforge-26.2/build.gradle new file mode 100644 index 00000000..6dded114 --- /dev/null +++ b/neoforge-26.2/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'java' + id 'idea' + id 'eclipse' + id 'net.neoforged.moddev' +} + +apply from: rootProject.file('gradle/loader.gradle') + +neoForge { + version = neoforge_version + + runs { + configureEach { + gameDirectory = rootProject.file("run-${minecraft_version}") + } + client { + client() + } + server { + server() + programArgument '--nogui' + } + } + + mods { + mcheli { + sourceSet sourceSets.main + } + } +} + +repositories { + mavenCentral() +} From e853d4f2fdeb271d7c6a0a4d303605448176342d Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:41 +0800 Subject: [PATCH 75/82] Pin the NeoForge and Java versions for the Minecraft 26.2 placeholder --- neoforge-26.2/gradle.properties | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 neoforge-26.2/gradle.properties diff --git a/neoforge-26.2/gradle.properties b/neoforge-26.2/gradle.properties new file mode 100644 index 00000000..2af5d6a3 --- /dev/null +++ b/neoforge-26.2/gradle.properties @@ -0,0 +1,8 @@ +# Minecraft 26.2 on NeoForge (placeholder until the port, see docs/DEVELOPMENT.md) +loader=neoforge +minecraft_version=26.2 +minecraft_version_range=[26.2,26.3) +neoforge_version=26.2.0.93 +loader_version_range=[26.2,) +java_version=25 +scaffold=true From cfecdf3e1c73cd38f0c7bcf6c6dab8cbfd6c35da Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:41 +0800 Subject: [PATCH 76/82] Add the NeoForge 26.2 placeholder entry point that only logs --- .../mcheli/neoforge/McheliNeoForge.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 neoforge-26.2/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java diff --git a/neoforge-26.2/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java b/neoforge-26.2/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java new file mode 100644 index 00000000..1f3a01b0 --- /dev/null +++ b/neoforge-26.2/src/main/java/com/jnhprojects/mcheli/neoforge/McheliNeoForge.java @@ -0,0 +1,19 @@ +package com.jnhprojects.mcheli.neoforge; + +import net.neoforged.fml.common.Mod; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Placeholder entry point for Minecraft 26.2. It only proves that the module builds and loads; + * the NeoForge glue from neoforge-26.3 replaces it when this version is ported for a final release. + */ +@Mod("mcheli") +public final class McheliNeoForge { + + private static final Logger LOGGER = LoggerFactory.getLogger("MCHeli"); + + public McheliNeoForge() { + LOGGER.info("MCHeli Rework placeholder loaded on NeoForge for Minecraft 26.2; no content yet"); + } +} From 78ca073d841b2293fe3271ebbbd862965d7bb16e Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:42 +0800 Subject: [PATCH 77/82] Add the NeoForge 26.2 placeholder mod metadata --- .../resources/META-INF/neoforge.mods.toml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 neoforge-26.2/src/main/resources/META-INF/neoforge.mods.toml diff --git a/neoforge-26.2/src/main/resources/META-INF/neoforge.mods.toml b/neoforge-26.2/src/main/resources/META-INF/neoforge.mods.toml new file mode 100644 index 00000000..2585f0b9 --- /dev/null +++ b/neoforge-26.2/src/main/resources/META-INF/neoforge.mods.toml @@ -0,0 +1,34 @@ +modLoader="javafml" +loaderVersion="[1,)" +license="${mod_license}" +issueTrackerURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge/issues" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +displayURL="https://github.com/JnH-Projects/MCHeli-Rework-Forge" +logoFile="mcheli_logo.png" +authors="${mod_authors}" +credits="EMB4 created the original MCHeli mod and all of its vehicle content. Fureniku maintains the CurseForge project." +description=''' +Helicopters, planes, tanks and vehicles for modern Minecraft. +This build is a placeholder: the port to this Minecraft version is not done yet. +A ground-up rework of MCHeli 1.0.3 by EMB4, which stopped at Minecraft 1.7.10. +The vehicles come from your own copy of the original: put MC1.7.10_mcheli_1.0.3.zip from the +MCHeli CurseForge page into the "mcheli" folder of the game directory. +''' + +[[dependencies.${mod_id}]] + modId="neoforge" + type="required" + versionRange="${loader_version_range}" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" From d179bc04204fd215df9f600ea97db6895a847c69 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:42 +0800 Subject: [PATCH 78/82] Note the placeholder modules and the new version list in the changelog --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0eb70099..df057af8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to this project are documented here. The format follows [Semantic Versioning](https://semver.org/). Pre-releases (`1.0.0-alpha.N`) mark the phases on the way to 1.0.0; see [docs/ROADMAP.md](docs/ROADMAP.md). +## [Unreleased] + +### Added + +- Placeholder loader modules for every supported version that is not ported yet: Forge, NeoForge + and Fabric on 26.2, 26.1, 1.21.11, 1.21.5 and 1.20.6, and Forge and Fabric on 1.20.2 and 1.19.4. + Each downloads its loader and only logs at startup; none of them is built by default or shipped + in a beta. See docs/DEVELOPMENT.md. + +### Changed + +- The supported version list for final releases is now 26.3, 26.2, 26.1, 1.21.11, 1.21.5, 1.21.1, + and 1.20.6 on Forge, NeoForge and Fabric, and 1.20.2 and 1.19.4 on Forge and Fabric (25 jars). 1.20.1 + is no longer planned, and older versions are no longer frozen after 1.1.0. + ## [1.1.0-beta.6] - 2026-11-01 Phase 10 of the road to 1.1.0: the rest of the equipment. Betas are not uploaded to CurseForge, From 8e3eb0b815a12573c4a89df026ede4c7b0df1704 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:43 +0800 Subject: [PATCH 79/82] List the versions 1.1.0 ships on in the README status --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 95b7cea7..503caac7 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,9 @@ textures and sounds load unchanged. > **Status:** on the way to 1.1.0, now at phase 10 (`1.1.0-beta.6`). Every helicopter, plane, > tank, car and ground vehicle can be placed, crewed and driven with the original handling, all > 229 weapons fire, and the scripted HUDs, fuel, the vehicle screen and all of the original's -> equipment are in, down to UAV stations, the drafting table and the team manager. Betas 4 to 8 -> ship the Forge 26.3 jar only; every loader and Minecraft version comes back for 1.1.0. See the +> equipment are in, down to UAV stations, the drafting table and the team manager. Betas ship the +> Forge 26.3 jar only; 1.1.0 ships on Forge and Fabric for every version from 1.19.4 to 26.3, and +> on NeoForge from 1.20.6 (see [supported versions](docs/ROADMAP.md#supported-versions)). See the > [roadmap](docs/ROADMAP.md). ## Showcase video From 0b2fabe6f8c2be3c427af689800c0feea3286fcd Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:43 +0800 Subject: [PATCH 80/82] Describe the placeholder modules and drop the 1.21.1 freeze from the architecture --- docs/ARCHITECTURE.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index a07b0e5a..0a7ca115 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -50,6 +50,11 @@ loader. The top layer is a thin module per loader and Minecraft version, which c lower layers together with its own glue into one jar. See [DEVELOPMENT.md](DEVELOPMENT.md#three-layers). +Only 26.3 and 1.21.1 have the middle layer so far. The other supported versions have placeholder +loader modules (`scaffold=true`) that compile neither lower layer: just an entry point that logs, +against that version's loader and toolchain. Porting a version means adding its +`minecraft-` folder, copying the loader glue in and dropping the flag. + The shared code reaches the loader in two ways only: - **`Platform`**, installed by the loader module before anything else runs: the game and config @@ -78,9 +83,9 @@ NeoForge rolls the camera the other way round from Forge, so its mixin negates t ### Minecraft 1.21.1 -`minecraft-1.21.1` is a copy of `minecraft-26.3` ported back, so the two read side by side. After -1.1.0 it is frozen (see [supported versions](ROADMAP.md#supported-versions)), so the copy is not -kept in step by hand beyond that. What differs: +`minecraft-1.21.1` is a copy of `minecraft-26.3` ported back, so the two read side by side. During +the betas it is not kept in step; each final release brings it, and every other +[supported version](ROADMAP.md#supported-versions), up to date again. What differs: - **Rendering.** 1.21.1 has no render states or submit step. Each renderer fills the same state object itself at the start of `render` and draws straight into the `MultiBufferSource`, so From 7baa7e85675a1058c90a7116f1a9218e43d9912d Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:44 +0800 Subject: [PATCH 81/82] Document the placeholder modules and the per-version toolchains --- docs/DEVELOPMENT.md | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index d5fa05ee..0f47e2b3 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -4,11 +4,11 @@ | Tool | Version | Notes | |------|---------|-------| -| JDK | 25 (and 21 for the 1.21.1 modules) | Gradle provisions them through the Foojay resolver if none is installed. | +| JDK | 25 (21 for 1.20.6 to 1.21.11, 17 for 1.19.4 and 1.20.2) | Gradle provisions them through the Foojay resolver if none is installed. | | Gradle | 9.8.2 | Use the wrapper (`./gradlew`). Loom 1.19 needs 9.8. | | ForgeGradle | 7.x | Forge modules. Sets up Minecraft through the Mavenizer on first build. | | ModDevGradle | 2.0.x | NeoForge modules. | -| Fabric Loom | 1.19 | Fabric modules: `net.fabricmc.fabric-loom` for 26.x, `-remap` for 1.21.1. | +| Fabric Loom | 1.19 | Fabric modules: `net.fabricmc.fabric-loom` for 26.x, `-remap` for 1.21.11 and older. | | Forge | 66.1.0 for Minecraft 26.3 | | | NeoForge | 26.3.0.99 for Minecraft 26.3 | | | Fabric | Loader 0.20.1, Fabric API 0.165.0+26.3 | | @@ -16,7 +16,9 @@ | NeoForge | 21.1.265 for Minecraft 1.21.1 | | | Fabric | Fabric API 0.116.17+1.21.1 | Loom remaps the jar, which is obfuscated on 1.21.1. | -All three use Mojang's official names, so the shared code reads the same on every loader. +All three use Mojang's official names, so the shared code reads the same on every loader. The +loader versions of the [placeholder modules](#placeholder-modules) are in their own +`gradle.properties`. The first build downloads and decompiles Minecraft once per loader, which takes a few minutes. Avoid running a second Gradle build (for example an IDE import) while that is in progress: both @@ -37,9 +39,9 @@ wait for the other process to finish and build again. Shared properties live in the root `gradle.properties`: `mod_version`, the mod metadata, the list of loader modules (`platforms`) and the library versions `common` compiles against. Each loader -module has its own `gradle.properties` with its loader, Minecraft and Java versions. During betas -4 to 8, `platforms` lists only `forge-26.3`, so CI and the release build one jar; the other modules -stay in the repository and come back to the list for 1.1.0 (roadmap phase 13). +module has its own `gradle.properties` with its loader, Minecraft and Java versions. During the +betas, `platforms` lists only `forge-26.3`, so CI and the release build one jar; the other modules +stay in the repository and come back to the list for each final release (roadmap phase 13). `mods.toml`, `neoforge.mods.toml`, `fabric.mod.json` and `pack.mcmeta` are filled in from them at build time. What every loader module shares (source folders, jar contents, manifest, file names) is in `gradle/loader.gradle`. @@ -59,6 +61,7 @@ neoforge-26.3/ NeoForge glue, plus a camera mixin fabric-26.3/ Fabric glue, plus mixins for what Fabric API has no event for minecraft-1.21.1/ the same shared code, backported to Minecraft 1.21.1 forge-1.21.1/, neoforge-1.21.1/, fabric-1.21.1/ the loader glue for 1.21.1 +-/ placeholders for the other supported versions (see below) gradle/loader.gradle what every loader module shares docs/ documentation and content format guides .github/workflows CI and release pipelines @@ -98,6 +101,31 @@ to all three loader modules, so the IDE shows it under whichever it picked; it c of them on the command line. After pulling the split, re-import the Gradle project; the old `forge-26.3` run configurations still work, the NeoForge and Fabric ones are new. +### Placeholder modules + +Every [supported version](ROADMAP.md#supported-versions) has a loader module, but only 26.3 and +1.21.1 are ported. The other 19 (`forge-`, `neoforge-` and `fabric-` for 26.2, 26.1, 1.21.11, +1.21.5 and 1.20.6, plus `forge-` and `fabric-` for 1.20.2 and 1.19.4) are placeholders: each pins +its loader, mappings and Java version, and holds only an entry point that logs a line at startup +and the mod metadata. Their `gradle.properties` sets `scaffold=true`, which tells +`gradle/loader.gradle` to leave out `common` and `minecraft-`, so they build before that +code has been ported to their version. + +They are not in `platforms`, so CI and the betas never build them. Build or run one by passing +the list on the command line: + +``` +./gradlew :forge-1.20.2:build -Pplatforms=forge-1.20.2 +./gradlew :fabric-1.19.4:runServer -Pplatforms=fabric-1.19.4 # runs from ./run-1.19.4 +``` + +Porting a version for a final release: add `minecraft-` (copied from the nearest ported +version), copy the loader glue from the ported module of the same loader, remove `scaffold=true` +and add the module to `platforms`. + +There is no `neoforge-1.20.2`: ModDevGradle needs a "moddev bundle" that NeoForge 20.2 does not +publish, so NeoForge support starts at 1.20.6, the next supported version. + `Mod/` holds the original `MC1.7.10_mcheli_1.0.3.zip`. It is git-ignored. Download it from the [MCHeli CurseForge page](https://www.curseforge.com/minecraft/mc-mods/mcheli-minecraft-helicopter-mod/files) and put it there: `runClient` and `runServer` import it into `run/mcheli/imported` through the From 306651167b8f44e77f9923a72d39ad980a16b835 Mon Sep 17 00:00:00 2001 From: jaymar921 Date: Mon, 2 Nov 2026 15:33:44 +0800 Subject: [PATCH 82/82] Rewrite the supported versions and phase 13 for the release list --- docs/ROADMAP.md | 72 +++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 01a0621c..c1f5ff22 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -12,7 +12,7 @@ tagged pre-release that installs and runs on its own. | 3 | `1.0.0-alpha.3` | Weapons and combat | Implemented, in-game test in progress | | 4 | `1.0.0-beta.1` | HUD and polish | Done | | | `1.0.0` | Release: code-only jar | Released | -| 5-13 | `1.1.0-beta.1` to `beta.9` | Content packs, NeoForge and Fabric, 1.21.1, equipment, workshop, 1.20.1 ([plan](#road-to-110)) | In progress | +| 5-13 | `1.1.0-beta.1` to `beta.9` | Content packs, NeoForge and Fabric, equipment, workshop, every release version from 1.19.4 to 26.3 ([plan](#road-to-110)) | In progress | | | `1.1.0` | Release on CurseForge | Planned | ## Phase 1: foundation and flyable helicopters @@ -139,35 +139,40 @@ Rules that hold for every beta: | 10 | `1.1.0-beta.6` | The rest of the equipment (Forge 26.3 only) | Released | | 11 | `1.1.0-beta.7` | Workshop: model, parts and tuning (Forge 26.3 only) | Planned | | 12 | `1.1.0-beta.8` | Workshop: textures, sounds and sharing (Forge 26.3 only) | Planned | -| 13 | `1.1.0-beta.9` | Every loader, 1.21.1 and 1.20.1 | Planned | +| 13 | `1.1.0-beta.9` | Every loader on every supported version, 1.19.4 to 26.3 | Planned | | | `1.1.0` | Release on CurseForge | Planned | The order is deliberate. The registry and the source split come first because everything else sits on them. Content packs come before the workshop, since the workshop's output is a pack. The loader split and 1.21.1 come right after packs, while the code is still close to 1.0.0; from then on each feature is built once in shared code and only its Minecraft glue is written per -version and loader. Betas 4 to 8 build only the Forge 26.3 jar, since six modules on three -toolchains made every build slow; phase 13 writes the glue for the rest, adds 1.20.1 and ships +version and loader. Betas build only the Forge 26.3 jar, since many modules on three toolchains +made every build slow; phase 13 writes the glue for every other version and loader and ships every jar again. ### Supported versions -MCHeli stopped at Minecraft 1.7.10. 1.1.0 is the bridge back: it runs on the versions most -players and modpacks are on today, so anyone can pick the mod up again, and then follows the -latest Minecraft. - -| Minecraft | Also runs on | Java | Forge | NeoForge | Fabric | -|-----------|--------------|------|-------|----------|--------| -| 26.3 | | 25 | yes | yes | yes | -| 1.21.1 | 1.21 | 21 | yes | yes | yes | -| 1.20.1 | 1.20 | 17 | yes | the Forge jar (NeoForge 1.20.1 is a Forge fork) | yes | - -Each major version gets its most played minor rather than its last one (1.20.6 and 1.21.11 have -few players). Nothing below 1.20. - -**After 1.1.0, the 1.20.1 and 1.21.1 builds are frozen.** They get no further fixes or features; -development continues on the latest Minecraft version only, and players are expected to move -up with it. +MCHeli stopped at Minecraft 1.7.10. Final releases (1.1.0, 1.2.0 and so on) run on a wide range +of versions, so players and modpacks can pick the mod up wherever they are. Betas are Forge 26.3 +only. + +| Minecraft | Java | Forge | NeoForge | Fabric | +|-----------|------|-------|----------|--------| +| 26.3 | 25 | yes | yes | yes | +| 26.2 | 25 | yes | yes | yes | +| 26.1 | 25 | yes | yes | yes | +| 1.21.11 | 21 | yes | yes | yes | +| 1.21.5 | 21 | yes | yes | yes | +| 1.21.1 | 21 | yes | yes | yes | +| 1.20.6 | 21 | yes | yes | yes | +| 1.20.2 | 17 | yes | no | yes | +| 1.19.4 | 17 | yes | no | yes | + +That is 25 jars per final release. NeoForge starts at 1.20.6 (ModDevGradle, which builds the +NeoForge jars, cannot set up NeoForge 1.20.2), and 1.19.4 is the oldest version. +Older versions are not frozen: every final release ships on the whole list again. Every pair +already has a Gradle module; the ones not ported yet are placeholders that only load and log +(see [DEVELOPMENT.md](DEVELOPMENT.md#placeholder-modules)). ## Phase 5: groundwork (`1.1.0-beta.1`) @@ -290,21 +295,24 @@ built here syncs to other players with no extra work. - [ ] Package browser, author credits shown in game - [ ] Operator approval before a player's new vehicle goes live on a server -## Phase 13: every loader, 1.21.1 and 1.20.1 (`1.1.0-beta.9`) +## Phase 13: every loader on every supported version (`1.1.0-beta.9`) Betas 4 to 8 ship only the Forge 26.3 jar, to keep builds fast. This phase brings the features -added since beta.3 to NeoForge, Fabric and 1.21.1, and adds 1.20.1, the largest modpack version -and the furthest from 26.3. All jars ship again from here on. - -- [ ] Every module back in `platforms`; phases 8 to 12 ported to NeoForge and Fabric on 26.3 and - to all three loaders on 1.21.1 +added since beta.3 to NeoForge, Fabric and 1.21.1, and ports the mod to the rest of the +[supported versions](#supported-versions), down to 1.19.4. All 25 jars ship from here on. + +- [x] A Gradle module for every version and loader pair, the missing ones as placeholders that + download their loader and only load and log +- [ ] Every module in `platforms`; phases 8 to 12 ported to NeoForge and Fabric on 26.3 and to all + three loaders on 1.21.1 +- [ ] `minecraft-26.2`, `minecraft-26.1`, `minecraft-1.21.11`, `minecraft-1.21.5`, + `minecraft-1.20.6`, `minecraft-1.20.2` and `minecraft-1.19.4`, each replacing its + placeholder modules with real glue - [ ] `common` compiles for Java 17 (no pattern matching `switch`, no `SequencedCollection` methods) -- [ ] 1.20.1 on Forge and Fabric. NeoForge's 1.20.1 is a fork of Forge 47, so the Forge jar is - tested there instead of built twice -- [ ] Vehicle items keep their vehicle in NBT, since data components only arrived in 1.20.5 -- [ ] Rendering, networking and registration for 1.20.1 -- [ ] Legacy importer and content packs checked on 1.20.1 +- [ ] Vehicle items keep their vehicle in NBT on 1.20.2 and 1.19.4, since data components only + arrived in 1.20.5 +- [ ] Legacy importer and content packs checked on every version - [ ] The phase 7 smoke tests for every jar ## 1.1.0 release @@ -314,7 +322,7 @@ No new features after beta.9; a `1.1.0-rc.N` follows only if beta.9 testing find - [ ] Every phase checklist done on every supported Minecraft version - [ ] A 1.0.0 world and the beta worlds load with their vehicles and items intact - [ ] A pack made in the workshop on one version loads on every other supported version -- [ ] Tag `v1.1.0` in both repositories; upload one CurseForge file per Minecraft version, with +- [ ] Tag `v1.1.0` in both repositories; upload one CurseForge file per Minecraft version and loader, with the player-facing changelog from `docs/CURSEFORGE.md` ## Open decisions