- NextGens is a public Minecraft Spigot/Paper plugin. The
masterbranch is built with Java 21 and Maven; treat thejava.versionin the checked-out branch'spom.xmlas authoritative for branch-specific work. - The build uses Maven Shade. The distributable plugin is the versioned
target/NextGens-*.jar; never delivertarget/original-NextGens-*.jar. - The repository includes optional integrations with several other plugins. Preserve existing hooks and their provided/soft-dependency behavior unless the task explicitly changes them.
plugin.ymldeclares Folia support. Use the existing MDLibExecutorManagerpatterns for scheduled or asynchronous work instead of introducing unsafe Bukkit scheduler or blocking main-thread work.
- Start every task by checking
git status, the current branch, and the diff against the requested base branch. Preserve all pre-existing changes. - Treat the base branch selected or named by the user as controlling. Do not silently switch, rebase, or retarget work between
master,moises, or another branch. - For a new public change that is intended for the normal release line, use a short-lived
codex/<type>-<slug>branch or Codex worktree based onmaster. Continue branch-specific fixes from the branch the user names. - Inspect representative nearby code before editing and follow its naming, formatting, command, configuration, and manager/listener patterns.
- Make the narrowest change that satisfies the requested behavior. Do not refactor unrelated code or update unrelated dependencies.
- When behavior is configurable, keep the bundled YAML defaults, config loading/reload behavior, messages, placeholders, and documentation consistent.
- Do not commit, push, open or merge a pull request, tag a release, publish an artifact, or rewrite history unless the user explicitly asks for that action.
- Never force-push.
- On Windows PowerShell, build with
./mvnw.cmd -B -ntp verify. - On Linux or macOS, build with
./mvnw -B -ntp verify. - The project currently has no automated test sources. A successful Maven build proves compilation and packaging, not Minecraft, Folia, database, hook, or gameplay behavior.
- After a code or resource change:
- Run the Maven verification build.
- Confirm exactly one primary versioned JAR exists after excluding
original-*and*-shaded.jarhelper files. - Confirm the distributable JAR contains
plugin.yml. - Run
git diff --check, inspect the complete diff, and report the finalgit status.
- Report Maven model, repository metadata, and shade overlap warnings separately from build failures. Do not modify dependencies merely to silence an unrelated warning.
- When asked for a test JAR, provide the primary shaded artifact and state its filename, size, and SHA-256 checksum. Do not claim server or gameplay verification unless it was actually performed.
- Look first for item or generator duplication, data loss, unsafe async Bukkit access, reload inconsistencies, permission bypasses, incompatible hook behavior, and configuration migrations that break existing servers.
- Verify that commands enforce their intended permissions and that player-facing behavior still works for existing configuration files.
- Keep public API and persistent-data changes backward compatible unless a breaking change is explicitly requested and documented.