Tags
Creators
Details
All versions
1.0.0
Alpha
KrepAPI (Plugin) 1.0.07 months ago 22
Compatibility
Minecraft: Java Edition
26.1–26.1.1
1.21.4–1.21.11
Platforms
Paper
Purpur
Changes
IMPORTANT: Changes to the config file will not take effect until the server is restarted
Added
- Config-driven key bindings — define GLFW keys, display names, categories, optional vanilla override, and server commands under
bindings.<id>inconfig.yml. - Automatic KrepAPI handshake — sends
s2c_hello, validatesc2s_client_info, protocol version, and mod build requirements. - Optional enforcement —
require-krepapiandhandshake-timeout-ticksto kick players without a timely, valid client response. - Binding sync — pushes
s2c_bindingsfrom configuration after a successful handshake (and a delayed path whenrequire-krepapiis disabled). - Command execution on key press —
c2s_key_actiontriggers configured commands as the player onPHASE_PRESSonly; leading/stripped; execution scheduled on the main thread. - Per-player cooldown — wall-clock based (~250 ms) to reduce command spam from repeated packets (avoids tick APIs for broader compatibility).
versionGate(Plugin)API —KrepAPIVersionGatefor other plugins to register extra minimum client build constraints (Bukkit plugin name:KrepAPI).- Auxiliary protocol hooks —
sendRawCaptureConfig,sendInterceptKeys,sendMouseCaptureConfig, andgetClientCapabilitiesfor advanced integrations (same layout as the KrepAPI reference implementation). - Single distributable JAR — embeds the
net.shik.krepapi.protocolclasses alongside the plugin (no separate protocol JAR on the server). - Gradle composite build — resolves
net.shik:protocolfrom a sibling KrepAPI checkout (../KrepAPIby default). - Developer-oriented source — short comments on handshake, config → bindings, and key → command flow for use as a template.
Supported environments (intended)
- Paper (not Spigot-only or Sponge); Purpur and similar Paper forks are expected to work but are not separately certified.
- Minecraft / Paper game versions: 1.21.4–1.21.11 and 26.1–26.1.1 (one JAR, compiled against Paper API 1.21.4;
api-version1.21.4 inplugin.yml). - Java 21 for building; run the server with the Java version required by your Paper build.
Build / tooling
- Gradle wrapper 9.4.x — required so composite inclusion of the KrepAPI monorepo (Fabric Loom subprojects) configures correctly (Gradle 8.8 is insufficient).
- run-paper task for local smoke tests (default
minecraftVersion1.21.4).
Notes
- The
net.shik:protocoldependency version inbuild.gradlemust stay aligned withmod_versionin the sibling KrepAPI repo’sgradle.properties. - Players still need the KrepAPI Fabric mod build that matches their Minecraft client version; the plugin only handles the server side.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:fT3cXvWV:312qFBIi"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:fT3cXvWV:312qFBIi"
}


