
KrepAPI (Plugin)
Run server commands when a player presses a key- configured in a simple YAML file, no programming required.
7
0
KrepAPI (Plugin) 1.0.1
alpha6 апреля 2026 г.IMPORTANT: Set
require-krepapitofalse- there is currently a bug related to this, but it will be fixed in the next update
Added
- Debug mode — new
debug: true/falseoption inconfig.yml; when active, all log lines are prefixed with[DEBUG]and cover the full plugin lifecycle:- Handshake flow (nonce generation,
S2C_HELLOsend, timeout scheduling). C2S_CLIENT_INFOprocessing (protocol version, mod version, capability bitfield, nonce validation, version-check result).- Binding config loading (each parsed entry with key code, command, category, override flag; final count).
S2C_BINDINGSsync (entry count, send/skip reason).C2S_KEY_ACTIONdispatch (action id, phase, sequence, cooldown check, command execution).C2S_RAW_KEYandC2S_MOUSE_ACTIONdecoding (key/scancode/button, GLFW action, modifiers).S2C_RAW_CAPTURE,S2C_INTERCEPT_KEYS,S2C_MOUSE_CAPTUREoutgoing sends (including capability gate).- Version constraint registration and cleanup on plugin disable.
- Player quit cleanup.
- Hex-dumped raw payloads (with byte length) for every incoming and outgoing plugin-message channel.
- Handshake flow (nonce generation,
/krepapicommand (permissionkrepapi.admin, default: op) with tab completion:/krepapi debug [on|off]— toggle debug logging at runtime without server restart; without argument it toggles the current state./krepapi status— global overview: debug state,require-krepapi,minimum-mod-version, loaded bindings (with key → command mapping), online/handshaked/pending player counts, and registered version constraints by plugin./krepapi status <player>— per-player detail: handshake state (complete / pending / none), capability bitfield, and decoded capability flags (e.g.MOUSE_CAPTURE)./krepapi reload— hot-reloadconfig.yml, re-parse debug flag and bindings without restart.
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.
KrepAPI (Plugin) 1.0.0
alpha5 апреля 2026 г.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.
Создатели
Детали
Лицензия:Apache-2.0
Опубликован:1 неделю назад
Обновлён:1 неделю назад

