Skip to content

Release 3.18.1#3001

Merged
tastybento merged 18 commits into
masterfrom
develop
Jul 1, 2026
Merged

Release 3.18.1#3001
tastybento merged 18 commits into
masterfrom
develop

Conversation

@tastybento

Copy link
Copy Markdown
Member

Release 3.18.1 — a maintenance release.

Included

Compatibility

  • ✔️ Paper Minecraft 1.21.5 – 26.2
  • ✔️ Java 25+

No locale, config, or breaking changes.

Full Changelog: 3.18.0...3.18.1

🤖 Generated with Claude Code

https://claude.ai/code/session_0153KLwL66bB31pTc4BtsTMd

tastybento and others added 18 commits June 27, 2026 17:24
Added workflow_dispatch to allow manual publishing with version input.
publish.yml calls the shared publish-platforms.yml reusable workflow, whose
java_version input defaults to 21. BentoBox now compiles to Java 25 for the
Minecraft 26.x line, so the publish build failed at :compileJava. Pass
java_version: "25" so the platform publish builds on the right JDK.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Align the CurseForge publish target list with the supported range
(1.21.5 - 26.2) documented in the release notes and the Modrinth list.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Modrinth workflow rebuilt the shaded jar from source on every publish, so
any third-party dependency-repo outage (e.g. repo.fancyplugins.de) failed the
build and blocked Modrinth even though the release already has a good jar
attached. Replace the JDK setup / Gradle build with a gh release download of
BentoBox-<tag>.jar into build/libs, where the publish step already expects it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Now that the shared publish-platforms.yml supports use_release_asset, opt in so
the CurseForge/Hangar publish downloads the jar already attached to the GitHub
release instead of rebuilding from source. This makes publishing immune to
third-party dependency-repo outages (e.g. repo.fancyplugins.de) that were
failing the build step.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Served its purpose: identified that plugin uploads need gameVersionTypeID 1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pin bentoboxworld/.github publish-platforms.yml to commit
e0c5d98f5e6ef9ea7c9a28afad05f4c07bcde898 (Sonar githubactions:S7637) and set the
Hangar slug "bentobox" so core releases publish to Hangar alongside CurseForge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Picks up the split into independent CurseForge and Hangar jobs so neither
platform can block the other.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…3.18.1)

componentToLegacy walked the component tree and emitted a style transition
once per text node, then appended the node's content verbatim. When that
content spanned newlines, the colour/format code was written only before the
first line. Legacy lore/text is split on '\n' downstream (each line becomes a
separate tooltip line) and a colour code only applies to the end of its line,
so every line after the first rendered in the default colour.

Re-emit the active style after each newline: colour first (a colour code
clears decorations in vanilla), then any active decorations. So
"<gray>a\nb" now serialises to "§7a\n§7b" and each split line keeps its
colour. Fixes multi-line names and lore across all addons.

Adds LegacyToMiniMessageTest#testColourCarriesAcrossNewlines and
#testColourAndBoldCarryAcrossNewlines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Jyeq1kNrXsAkNssTCTyqZ
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Dependency resolution intermittently failed in CI with
"Could not resolve us.dynmap:DynmapCoreAPI:3.4". Root cause was
repository query order, not missing artifacts: Gradle queries every
repo in declaration order for each artifact, and repo.fancyplugins.de
returning HTTP 520 (a 5xx = hard error) aborted resolution before the
authoritative Dynmap/MomiRealms repos were ever reached.

Scope each vendor group to its authoritative repo with exclusiveContent
so fragile hosts are never queried for groups they don't host, and one
host's outage can no longer cascade into unrelated groups:

- us.dynmap        -> repo.mikeprimm.com
- net.momirealms   -> repo.momirealms.net
- lol.pyr          -> repo.pyr.lol
- de.oliver        -> repo.fancyinnovations.com (migrated from the now
                      offline repo.fancyplugins.de)
- com.github.puregero (MultiLib) -> Clojars (its com.github.* group was
                      falling through to a jitpack 404)

Verified with `gradlew dependencies --refresh-dependencies`: all
previously-failing artifacts resolve, no FAILED entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0153KLwL66bB31pTc4BtsTMd
…-resolution

build: scope vendor repos to fix flaky dependency resolution
Fix multi-line lore/text losing colour after the first line
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@tastybento tastybento merged commit df77301 into master Jul 1, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant