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, 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 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 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 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 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}" +} 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 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"); + } +} 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}" + } +} 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}" +} 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 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"); + } +} 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}" + } +} 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}" +} 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 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"); + } +} 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}" + } +} 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}" +} 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 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"); + } +} 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}" + } +} 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}" +} 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 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"); + } +} 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}" + } +} 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}" +} 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 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"); + } +} 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}" + } +} 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}" +} 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 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"); + } +} 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}" + } +} 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}") +} 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 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"); + } +} 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" 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}") +} 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 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"); + } +} 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" 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}") +} 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 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"); + } +} 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" 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}") +} 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 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"); + } +} 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" 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}") +} 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 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"); + } +} 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" 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}") +} 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 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"); + } +} 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" 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}") +} 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 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"); + } +} 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" 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 { 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() +} 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 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"); + } +} 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" 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() +} 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 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"); + } +} 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" 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() +} 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 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"); + } +} 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" 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() +} 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 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"); + } +} 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" 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() +} 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 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"); + } +} 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"