Imported from NekotineMC/NekotineCore (
AGENTS.md). Install upstream withnpx skills add NekotineMC/NekotineCore. Copyright stays with the author.
NekotineCore
Utility library for PaperMC plugins (French README and Javadoc), consumed as source — Vi6Clean pulls it in as a git submodule plus a Gradle composite build. Java 25, Gradle 9.4.1 wrapper, paper-api is compileOnly and there is no paperweight. Nothing is published; distribution is the repository itself.
Policy
- Never push to
devdirectly — branch, push, open a PR. Agents may push their own branches and open PRs, but never merge one; a human reviews first. - Commit messages follow the Conventional Commits specification:
type(scope): short subject,!before the colon for breaking changes.
Where things are
- Own repository:
github.com/NekotineMC/NekotineCore, default branchdev. - Dependency injection:
fr.nekotine.core.ioc.Ioc.resolve(...);NekotinePlugin.setupModules()reflects overfr.nekotine.coreforIPluginModuleimplementations, so adding one auto-registers it — there is no wiring file to edit. - README.md is the module inventory with status marks;
.github/holds French issue templates and no workflows — there is no CI, so verify locally. - Vi6Clean (the parent) shades this library and relocates
fr.nekotine.coretofr.nekotine.vi6clean.nekotinecore— package moves break the consumer at compile time.
Running and verifying
- Build requires JDK 25 — toolchain is fixed at 25 and no toolchain resolver is configured; use the wrapper (
./gradlew,gradlew.baton Windows). Baregradlewrunsout=spotlessApply+shadowJar. gradlew buildrunscheck, which includesspotlessCheck— formatting drift and wildcard imports fail it.- JUnit 5 is configured but every file under
src/testis fully commented out —gradlew testpasses while running zero tests; revive a commented file rather than trusting the green run. - Dependency locking is on: run
gradlew --write-locksafter changing dependencies, plain resolution fails otherwise.
Conventions that differ from defaults
- Spotless also runs
removeUnusedImports()here, unlike the parent repository. - French and English are used interchangeably — either is fine; don't translate existing text.
