Skip to content
Jake Moore edited this page Aug 31, 2026 · 2 revisions

KamiCommonNMS

The version-specific half of KamiCommon, published to repo.luxiouslabs.net as com.kamikazejam.kamicommon:spigot-nms. It carries an implementation of every version-sensitive capability for every supported Minecraft release and picks one at runtime from the version the running server reports.

This wiki is for contributors: somebody adding a Minecraft version, adding a capability, or trying to work out why the repository is shaped the way it is.

Consumer documentation lives in the KamiCommon wiki

Anything a caller can see is documented there, not here.

Two wikis describing the same API is how they end up disagreeing. If a change is visible from NmsAPI, it belongs in that wiki as well as in the code.

What this wiki covers

Page What it answers
Dispatch How a server version becomes an implementation, and why the ladder is the only authority on version coverage
Modules and Java Floors Why the version modules target different JVMs, and how to read a failure that names one
The Relocated Adventure Why a copy of Adventure ships as a jar inside the jar, and why nothing outside can reach it
The v_latest Canary Why a module exists that most ladders never dispatch to, and what deleting it would cost
What The Checks Cover What each verify-* task asserts, and the line between packaging and behaviour
Adding a Minecraft Version The walkthrough, in order, and how to tell whether it worked

Read the file, not this page

Floors, version ranges, module inventories and dependency pins move. They are not repeated here or on any other page, because a page that lists thirty numbers is wrong within two releases and everything else on it becomes suspect. The files that hold them:

What Where
The Java floor of every version module gradle/module-floors.properties
The module list settings.gradle.kts
Which modules ship reobfuscated and which ship plain plainVersions and reobfVersions in core/build.gradle.kts
The published version, the newest Paper dev bundle, and the shared dependency pins build.gradle.kts
Which module serves a given Minecraft version, per capability the ladders, described in Dispatch

The source is heavily commented, and the comments carry the reasoning behind decisions that look arbitrary from outside. Prefer them to inference.

Building

Use sh gradlew. The wrapper script is tracked mode 644, so ./gradlew fails.

gradle build runs every verification task. Continuous integration builds twice, once with MC_SERVER_NEWEST_API=false and once with true, which swaps the generic server API that :api and :core compile against between the oldest supported release and the newest Paper. Both must pass.

Behaviour is not checked by the build. See What The Checks Cover for what is checked where.

Clone this wiki locally