From dec7e61c21b0dbac2d887d4d9148cd31b43d9651 Mon Sep 17 00:00:00 2001 From: FabLrc Date: Sat, 9 May 2026 02:23:05 +0200 Subject: [PATCH 1/4] fix: update Modrinth projectId to border-quest --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 45c0ae9..4320be9 100644 --- a/build.gradle +++ b/build.gradle @@ -50,7 +50,7 @@ jar { modrinth { token = System.getenv("MODRINTH_TOKEN") - projectId = "borderquest" + projectId = "border-quest" versionNumber = project.version versionType = "release" uploadFile = remapJar From 65e85be2486a51964de77e71f763fa8443cd7c3e Mon Sep 17 00:00:00 2001 From: FabLrc Date: Sat, 9 May 2026 02:30:57 +0200 Subject: [PATCH 2/4] fix: update output paths and versioning in documentation and build configuration --- AGENTS.md | 9 +++++++-- README.md | 26 ++++++++++++++++++++++++-- build.gradle | 2 +- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d1820f0..030f874 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Border Quest — Agent Instructions -Server-side Fabric mod for Minecraft 1.21. Single-module Gradle project. +Server-side Fabric mod for Minecraft 1.21.11. Single-module Gradle project. ## Build @@ -10,7 +10,7 @@ java -jar gradle/wrapper/gradle-wrapper.jar build ``` Requires Java 21. -Output: `build/libs/border-quest-.jar` (version from `gradle.properties`, or override with `-Pmod_version=X.Y.Z`). +Output: `build/libs/border-quest--.jar` (version from `gradle.properties`, or override with `-Pmod_version=X.Y.Z`). No test, lint, or typecheck commands exist. @@ -18,6 +18,11 @@ CI: - `build.yml` runs on all branches/PRs (compile check, no release) - `release.yml` triggers on tag `v*` → builds, creates GitHub Release, publishes to Modrinth +Branches: +- `develop` — main dev branch (no releases) +- `1.21.11` — stable branch for Minecraft 1.21.11 releases +- Tags created on version branches only (`git tag vX.Y.Z` from `1.21.11`) + ## Source layout ``` diff --git a/README.md b/README.md index e5b4838..c643222 100644 --- a/README.md +++ b/README.md @@ -309,12 +309,34 @@ Back up this file if you want to preserve progress between map resets. ```bash git clone cd border-quest-mod -./gradlew build -# Output: build/libs/border-quest-mod-x.x.x.jar +# macOS / Linux : +java -jar gradle/wrapper/gradle-wrapper.jar build +# Windows : +gradlew build +# Output: build/libs/border-quest--.jar ``` **Requirements:** Java 21, internet access (to download Fabric Loom and BlueMap API). +Override the mod version for testing: +```bash +java -jar gradle/wrapper/gradle-wrapper.jar build -Pmod_version=1.1.0 +``` + +This project uses **separate branches per Minecraft version**: +- `develop` — main development branch (no releases) +- `1.21.11` — stable releases for Minecraft 1.21.11 +- `1.22`, etc. — future Minecraft version support + +Releases are triggered by **git tags** on a version branch: +```bash +git checkout 1.21.11 +git tag v1.1.0 +git push origin v1.1.0 +``` + +This builds, creates a GitHub Release, and publishes to Modrinth automatically. + Dependencies at a glance: | Artifact | Scope | Purpose | diff --git a/build.gradle b/build.gradle index 4320be9..76b520c 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ version = project.findProperty('mod_version') ?: project.mod_version ?: '0.0.0-d group = project.maven_group base { - archivesName = project.archives_base_name + archivesName = "${project.archives_base_name}-${project.minecraft_version}" } repositories { From 079bb50fc292a72d5660a19c8f13745a7e67548e Mon Sep 17 00:00:00 2001 From: FabLrc Date: Sat, 9 May 2026 02:36:21 +0200 Subject: [PATCH 3/4] feat: add changelog generation and update AGENTS.md instructions --- .github/workflows/release.yml | 16 ++++++++++++- AGENTS.md | 1 + CHANGELOG.md | 44 +++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7540182..8f40522 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,12 +32,26 @@ jobs: - name: Build run: .\gradlew.bat build -Pmod_version="$env:MOD_VERSION" + - name: Extract changelog for this version + shell: pwsh + run: | + $v = $env:MOD_VERSION + $escaped = $v -replace '\.', '\.' + $content = Get-Content CHANGELOG.md -Raw + $pattern = "## \[$escaped\].*?(?=\r?\n## \[|\z)" + $match = [regex]::Match($content, $pattern, [System.Text.RegularExpressions.RegexOptions]::Singleline) + if ($match.Success) { + $match.Value.Trim() | Set-Content release_body.md + } else { + "Border Quest v$v" | Set-Content release_body.md + } + - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: tag_name: ${{ github.ref_name }} name: "v${{ env.MOD_VERSION }}" - body: "Border Quest v${{ env.MOD_VERSION }}" + body_path: release_body.md files: build/libs/*.jar draft: false prerelease: false diff --git a/AGENTS.md b/AGENTS.md index 030f874..72a658f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -53,6 +53,7 @@ server/ # actual server runtime - Commands use Fabric API's `CommandRegistrationCallback`. All start with `/bq`. - Gson serialization for both config and saved state. Config auto-generated on first server start. - Recipe locking via `unlockRecipes` per stage. Uses 4 inner mixin classes in `RecipeLockMixin.java` targeting `CraftingScreenHandler`, `PlayerScreenHandler`, `AbstractFurnaceBlockEntity`, and `ServerPlayNetworkHandler`. The `ServerRecipeManager` API (not `RecipeManager`) is used for recipe lookup: `getFirstMatch()` and `get(NetworkRecipeId)`. +- **Update `CHANGELOG.md`** with every user-facing change. Follow the existing format and add a new `## [Unreleased]` section if none exists. ## gradle.properties diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0b6e115 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,44 @@ +# Changelog + +All notable changes to this project are documented here. +The format is based on [Keep a Changelog](https://keepachangelog.com/). + +## [1.1.0] — 2026-05-09 + +### Added + +- **Recipe locking**: Lock specific item recipes behind configurable stages. + Each stage has an `unlockRecipes` list. Recipes are cumulative — at stage N, + all recipes from stages 0 through N are unlocked. Covers crafting table, + player inventory (2×2), furnace/blast furnace/smoker, and recipe book. +- **Dynamic versioning**: Version is now set via git tags (`vX.Y.Z`). + Local builds use the `gradle.properties` fallback. +- **Separate branches per Minecraft version**: `develop` (main development), + `1.21.11` (stable releases), plus future version branches. +- **CI workflows**: + - `build.yml` — compiles on every push/PR (all branches, no release). + - `release.yml` — triggered by tags `v*`; builds, creates a GitHub Release, + and publishes to Modrinth automatically. +- **JAR naming**: Includes both the mod version and the Minecraft version + (`border-quest--.jar`). +- **AGENTS.md** — instruction file for AI agents working in this repo. + +### Changed + +- **Build system**: Replaced `build.bat` with direct `gradlew.bat` calls in CI. + Removed `build.bat` and `install.bat`. +- **Documentation**: README updated with build instructions, branch strategy, + and recipe locking documentation. + +## [1.0.0] — 2026-05-09 + +### Added + +- Base mod: progressive world border, altar system, stage rewards, + dimension locks, donation leaderboard, altar particles, chat announcements, + HUD sidebar. +- Map integrations: BlueMap, Dynmap, JourneyMap, Xaero's Minimap & World Map + (reflection-based). +- Discord webhook on stage completion. +- Fully configurable via `config/borderquest.json`. +- Server-side only (no client installation required). From 99bb02e610f121a59c4d46f6ca764bfd4e1c7459 Mon Sep 17 00:00:00 2001 From: FabLrc Date: Sat, 9 May 2026 11:12:59 +0200 Subject: [PATCH 4/4] feat: update README.md to include Modrinth badges for version, downloads, and game versions --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c643222..32b2542 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Border Quest +[![Modrinth Version](https://img.shields.io/modrinth/v/border-quest?label=Modrinth&logo=modrinth)](https://modrinth.com/project/border-quest) +[![Modrinth Downloads](https://img.shields.io/modrinth/dt/border-quest?label=downloads&logo=modrinth)](https://modrinth.com/project/border-quest) +[![Modrinth Game Versions](https://img.shields.io/modrinth/game-versions/border-quest?label=game%20versions&logo=modrinth)](https://modrinth.com/project/border-quest) + A **server-side Fabric mod** for Minecraft 1.21 that turns your world border into a cooperative progression challenge. Players collect resources, donate them to **altars**, and unlock an ever-growing world — stage by stage.