Skip to content

feat(paper): bundle plugin-grounds-platform v0.1.0#90

Merged
hbrombeer merged 1 commit intomainfrom
feat/paper-bundle-grounds-platform-plugin
May 5, 2026
Merged

feat(paper): bundle plugin-grounds-platform v0.1.0#90
hbrombeer merged 1 commit intomainfrom
feat/paper-bundle-grounds-platform-plugin

Conversation

@hbrombeer
Copy link
Copy Markdown
Member

Summary

Adds the in-pod platform-context plugin to every `paper` image build. At runtime the plugin reads the four `GROUNDS_*` env vars that grounds-forge 1.9.0+ sets on Minecraft deploys and:

  • replaces the default MOTD with `\n§8via Grounds`,
  • polls `GET /v1/projects//whitelist` every 30s with the workload-scoped token and reconciles Paper's `whitelist.json`.

If the env vars are missing (older forge, non-MC pod) the plugin logs one WARN and stays inert — user gameplay isn't affected.

Distribution choice

`plugin-grounds-platform` ships as a public GitHub Release asset, not GitHub Packages Maven, so this PR fetches it with a direct `curl` rather than through `download-plugins.sh`. That avoids requiring a `github_token` secret for the artifact and keeps the plugin reachable from forks of this repo. Once the plugin starts publishing to GHCR Maven the curl step can collapse into the `PLUGINS` list above.

The version is exposed as `GROUNDS_PLATFORM_PLUGIN_VERSION` so a future bump is a one-line change.

Test plan

  • After CI builds the image, push from `grounds-push/sample` (`grounds push push --target=dev`) and verify in the Paper console:
    • `Started platform plugin successfully (projectId=..., forgeUrl=..., pollSeconds=30)`
    • The MOTD shown to a connecting client is the project name with `via Grounds` underneath.
    • `POST /v1/projects//whitelist {minecraftName: "Notch"}` then within 30s: `Whitelist add applied (uuid=..., username=Notch)` in the console; `Notch` can join.

🤖 Generated with Claude Code

Adds the in-pod platform-context plugin to every paper image build.
At runtime it reads the GROUNDS_* env vars that grounds-forge 1.9.0+
sets on Minecraft deploys and:

  - replaces the default MOTD with `<project name>\n§8via Grounds`
  - polls GET /v1/projects/<id>/whitelist every 30s with the workload-
    scoped token and reconciles Paper's whitelist.json

Distributed as a public GitHub Release asset rather than GitHub
Packages Maven, so we curl it directly here (one extra step in the
build's RUN block) instead of going through download-plugins.sh.
That avoids needing a github_token secret for the artifact and keeps
the plugin reachable from forks of this repo. Once plugin-grounds-
platform starts publishing to GHCR Maven the curl step can collapse
into the PLUGINS list above.

The version is exposed as a build arg (GROUNDS_PLATFORM_PLUGIN_VERSION)
so a follow-up bump is a one-line change here.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hbrombeer hbrombeer merged commit f0526fd into main May 5, 2026
5 checks passed
@hbrombeer hbrombeer deleted the feat/paper-bundle-grounds-platform-plugin branch May 5, 2026 19:16
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