▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/KrepAPI (Mod)
KrepAPI (Mod)

KrepAPI (Mod)

Fabric client bridge for servers: custom key bindings synced from the host, optional raw-key hooks for addons, and a handshake so Paper/Fabric servers can require this mod. Install only on servers that use KrepAPI. Needs Fabric API.

59
0

KrepAPI (Mod) mc26.x-1.3.0

alpha11 апреля 2026 г.

Added

Client update checks, download flow, and in-game update UI

  • UpdateChecker (both fabric-1-21 and fabric-26-1): On client startup, asynchronously fetches .system/mod/versions.json from GitHub, resolves the latest mod version and the JAR filename for the running Minecraft version, compares semver against the installed mod using KrepapiBuildVersion (:protocol), and loads every listed version’s changelog markdown from .system/mod/changelog/{version-with-dashes}.md into versionList + allChangelogs for the menu.
  • UpdateDownloader: On explicit user action only, downloads the update JAR over HTTP into mods/KrepAPI-update-{latestVersion}.jar with a volatile progress field; guards against overlapping downloads; surfaces errors without crashing the client.
  • /krepapi menu: Client command to open the update / changelog screen at any time.
  • KrepapiUpdateToast: One-time toast when an update is available; opens the menu (no direct download from the toast).
  • KrepapiUpdateHud: Optional [KrepAPI ↑] indicator when an update is available; click opens the menu (no direct download from the HUD).

Fabric 1.21.x — MoulConfig update menu

  • MoulConfig (modern-1.21.11) is bundled via GradleUp Shadow: dependency is relocated to net.shik.krepapi.deps.moulconfig, kotlin-stdlib is included for MoulConfig’s Kotlin internals, and a hand-authored META-INF/services/...IMinecraft entry points at the relocated platform class (Shadow does not rewrite service files by default).
  • Access widener (krepapi.accesswidener): Merged the subset of MoulConfig widener entries that validate on Minecraft 1.21.11 with official Mojang mappings so the shaded UI can render without IllegalAccessError.
  • Screen: KrepapiMenuScreen builds a MoulConfig GuiComponent tree (outer VANILLA panel, light header strip, full-width rule, two DARK_RECT columns). Left: “Changelogs” header, magenta underline, dashed separator, clickable version rows (cyan + underline when selected). Right: gray subtitle, scaled headline “Changelog entries for v…”, and formatted markdown body (yellow #, magenta ##, green ###, gray bullets; first top-level bullet after a ## section highlighted in white to match the reference layout).
  • Headline scaling: Dynamic min(2×, fit-to-width) so long titles are not clipped inside the scroll viewport (fixes truncated v1. style glitches).
  • ModMenu: modImplementation ModMenu 17.0.0-beta.2, dedicated KrepapiModMenuEntryKrepapiModMenuIntegration config screen factory; fabric.mod.json extended with custom.modmenu (homepage, issues, GitHub link, update_checker).
  • Helper UI types in net.shik.krepapi.client.ui.KrepapiMenuComponents: FullWidthRuleComponent, VersionNavRow, ChangelogHeadlineComponent, StatusBadgeComponent.

Fabric 26.1.x — Vanilla update menu

  • KrepapiMenuScreen26: Same update semantics and markdown presentation using vanilla Screen widgets (no MoulConfig / Shadow on this loader).

Structured debug logging (optional)

  • Paper (KrepapiPaperPlugin) and Fabric server networking: when debug-logging / JVM flag / marker file enables it, append NDJSON-style lines for handshake, disconnects, version kicks, and mouse/key events to a timestamped file under the server’s KrepAPI data folder.

Fixed

  • Menu state: selectedVersion is only reset when missing from the remote versionList (or initially unset), so reopening the menu keeps the user’s chosen changelog version.
  • Changelog headline: Avoids fixed 2× scale that exceeded the scroll clip and cut off the version suffix; headline now scales to the available width (up to 2×).
  • Layout: Header row width accounts for panel insets so the top bar, rule, and body columns stay aligned at the designed inner width.

Changed

  • fabric-1-21/build.gradle: GradleUp Shadow plugin, shadowModImpl / shadowImpl configurations, remapJar input from shadowJar; Maven Central for Kotlin; ModMenu and MoulConfig coordinates as used at build time.
  • fabric.mod.json (1.21): contact, custom.modmenu, entrypoints.modmenu via KrepapiModMenuEntry; mixin / client resource layout adjusted (e.g. consolidated krepapi.mixins.json, removed redundant client mixin descriptor where applicable).
  • fabric-26-1: Aligns fabric.mod.json, mixin config, and access widener with the split client/main setup used for the update UI.
  • gradle.properties: mod_version set to 1.3.0 for this release line.
  • Paper: Minor config.yml / KrepapiPaperVersionGate / KrepapiPaperPlugin tweaks for default minimum mod build alignment with the published mod.
  • :protocol tests: KrepapiBuildVersionTest, KrepapiVersionPolicyTest, KrepapiVersionRequirementTest updated for current version policy behavior.
  • Repository hygiene: .gitignore entries for editor-generated *Edit conflict* / *Name clash* duplicate source files.

Documentation

  • Remote versions.json and changelog paths remain documented in-repo under .system/mod/ for the update checker URLs used by the client.

KrepAPI (Mod) mc1.21-1.3.0

alpha11 апреля 2026 г.

Added

Client update checks, download flow, and in-game update UI

  • UpdateChecker (both fabric-1-21 and fabric-26-1): On client startup, asynchronously fetches .system/mod/versions.json from GitHub, resolves the latest mod version and the JAR filename for the running Minecraft version, compares semver against the installed mod using KrepapiBuildVersion (:protocol), and loads every listed version’s changelog markdown from .system/mod/changelog/{version-with-dashes}.md into versionList + allChangelogs for the menu.
  • UpdateDownloader: On explicit user action only, downloads the update JAR over HTTP into mods/KrepAPI-update-{latestVersion}.jar with a volatile progress field; guards against overlapping downloads; surfaces errors without crashing the client.
  • /krepapi menu: Client command to open the update / changelog screen at any time.
  • KrepapiUpdateToast: One-time toast when an update is available; opens the menu (no direct download from the toast).
  • KrepapiUpdateHud: Optional [KrepAPI ↑] indicator when an update is available; click opens the menu (no direct download from the HUD).

Fabric 1.21.x — MoulConfig update menu

  • MoulConfig (modern-1.21.11) is bundled via GradleUp Shadow: dependency is relocated to net.shik.krepapi.deps.moulconfig, kotlin-stdlib is included for MoulConfig’s Kotlin internals, and a hand-authored META-INF/services/...IMinecraft entry points at the relocated platform class (Shadow does not rewrite service files by default).
  • Access widener (krepapi.accesswidener): Merged the subset of MoulConfig widener entries that validate on Minecraft 1.21.11 with official Mojang mappings so the shaded UI can render without IllegalAccessError.
  • Screen: KrepapiMenuScreen builds a MoulConfig GuiComponent tree (outer VANILLA panel, light header strip, full-width rule, two DARK_RECT columns). Left: “Changelogs” header, magenta underline, dashed separator, clickable version rows (cyan + underline when selected). Right: gray subtitle, scaled headline “Changelog entries for v…”, and formatted markdown body (yellow #, magenta ##, green ###, gray bullets; first top-level bullet after a ## section highlighted in white to match the reference layout).
  • Headline scaling: Dynamic min(2×, fit-to-width) so long titles are not clipped inside the scroll viewport (fixes truncated v1. style glitches).
  • ModMenu: modImplementation ModMenu 17.0.0-beta.2, dedicated KrepapiModMenuEntryKrepapiModMenuIntegration config screen factory; fabric.mod.json extended with custom.modmenu (homepage, issues, GitHub link, update_checker).
  • Helper UI types in net.shik.krepapi.client.ui.KrepapiMenuComponents: FullWidthRuleComponent, VersionNavRow, ChangelogHeadlineComponent, StatusBadgeComponent.

Fabric 26.1.x — Vanilla update menu

  • KrepapiMenuScreen26: Same update semantics and markdown presentation using vanilla Screen widgets (no MoulConfig / Shadow on this loader).

Structured debug logging (optional)

  • Paper (KrepapiPaperPlugin) and Fabric server networking: when debug-logging / JVM flag / marker file enables it, append NDJSON-style lines for handshake, disconnects, version kicks, and mouse/key events to a timestamped file under the server’s KrepAPI data folder.

Fixed

  • Menu state: selectedVersion is only reset when missing from the remote versionList (or initially unset), so reopening the menu keeps the user’s chosen changelog version.
  • Changelog headline: Avoids fixed 2× scale that exceeded the scroll clip and cut off the version suffix; headline now scales to the available width (up to 2×).
  • Layout: Header row width accounts for panel insets so the top bar, rule, and body columns stay aligned at the designed inner width.

Changed

  • fabric-1-21/build.gradle: GradleUp Shadow plugin, shadowModImpl / shadowImpl configurations, remapJar input from shadowJar; Maven Central for Kotlin; ModMenu and MoulConfig coordinates as used at build time.
  • fabric.mod.json (1.21): contact, custom.modmenu, entrypoints.modmenu via KrepapiModMenuEntry; mixin / client resource layout adjusted (e.g. consolidated krepapi.mixins.json, removed redundant client mixin descriptor where applicable).
  • fabric-26-1: Aligns fabric.mod.json, mixin config, and access widener with the split client/main setup used for the update UI.
  • gradle.properties: mod_version set to 1.3.0 for this release line.
  • Paper: Minor config.yml / KrepapiPaperVersionGate / KrepapiPaperPlugin tweaks for default minimum mod build alignment with the published mod.
  • :protocol tests: KrepapiBuildVersionTest, KrepapiVersionPolicyTest, KrepapiVersionRequirementTest updated for current version policy behavior.
  • Repository hygiene: .gitignore entries for editor-generated *Edit conflict* / *Name clash* duplicate source files.

Documentation

  • Remote versions.json and changelog paths remain documented in-repo under .system/mod/ for the update checker URLs used by the client.

KrepAPI (Mod) mc26.x-1.2.0

alpha5 апреля 2026 г.

Added

Server-driven mouse capture (Fabric client + Fabric/Paper server reference)

  • New custom payload / plugin message channels:
    • krepapi:s2c_mouse_capture — enable or configure capture (enabled, flags, consumeVanilla).
    • krepapi:c2s_mouse_action — client reports button presses/releases, scroll deltas, and optionally normalized cursor position on each forwarded event.
  • Flags (combine with bitwise OR): mouse buttons (left/right/middle via GLFW button id), scroll wheel, optional cursor on events (cursor as 0–1 in scaled window coordinates).
  • Capability SERVER_MOUSE_CAPTURE in c2s_client_info. Reference implementations only send s2c_mouse_capture if the client advertised this bit, so older KrepAPI clients without mouse support are not sent an unregistered payload.
  • Wire format is defined in ProtocolMessages (same bytes on Fabric custom play payloads and Paper sendPluginMessage); c2s_mouse_action is self-describing so Paper can decode without remembering prior S2C state.
  • Client: MouseCaptureState, MouseMixin on MouseHandler (onButton with MouseButtonInfo, onScroll), same eligibility gate as raw keyboard capture (in play, network handler present, player or screen open).
  • Server: Fabric — KrepapiFabricServerNetworking.registerMouseActionListener, sendMouseCaptureConfig, getClientCapabilities; handshake entry stores the client capability bitmask after a successful c2s_client_info. Paper — outgoing/incoming channel registration, KrepapiPaperPlugin.sendMouseCaptureConfig, getClientCapabilities, session capability map, debug logging for mouse actions.

Build version requirement expressions (legacy / ranges)

  • KrepapiVersionRequirement parses minimum-mod-version / Fabric minimumModVersion / plugin registrations: bare X.Y.Z remains >= (compatible); also X.Y.Z>, =X.Y.Z, <X.Y.Z, X.Y.x / X.Y.*, two-part X.Y for a minor line; middle wildcards (1.x.2) are rejected.
  • KrepapiVersionPolicy evaluates the intersection of all requirements; KrepapiKickReasons.forVersionCheckFailure formats kicks. s2c_hello.minModVersion is a summary (max floor if all are minima, else joined specs).
  • Paper: invalid minimum-mod-version disables the plugin on enable; invalid combined requirements kick on join with a misconfiguration message. Fabric: logs invalid default settings at register; per-join validation with the same kick text.

Minecraft 26.1 Fabric build (:fabric-26-1)

  • Second Fabric artifact from the same repo: KrepAPI-mc26.1 (mod id still krepapi), targeting 26.1–26.1.1, Loader 0.18.6, Fabric API 0.144.3+26.1, net.fabricmc.fabric-loom 1.15-SNAPSHOT (unobfuscated game; no remapJar), Java 25 toolchain.
  • Source tree is a fork of the 1.21 module with 26.1-specific wiring: PayloadTypeRegistry.clientboundPlay / serverboundPlay, KeyMappingHelper.registerKeyMapping (fabric-key-mapping-api-v1).

Fixed

overrideVanilla server bindings vs. player keybinds

  • Vanilla blocking for overrideVanilla previously compared each key event only to the defaultKey from s2c_bindings. After rebinding in Minecraft’s controls, the wrong key (or no key) could still be consumed or missed.
  • The client now keeps a list of actionIds with overrideVanilla and, on every key event, resolves the current KeyMapping and uses KeyMapping.matches(KeyEvent) so suppression follows the live binding (KrepapiKeyPipeline).
  • ServerBindingManager.applyBindings registers all server KeyMappings before applying the override list, so lookups are always valid when the list is installed.

Changed

  • Two-part requirement strings: A value with exactly two numeric segments (e.g. 1.2) is now a minor line (1.2.x), not a shorthand for >= 1.2.0. Use 1.2.0 or 1.2.0> for a minimum floor.

Gradle layout

  • Fabric mod for 1.21.4–1.21.11 lives in fabric-1-21KrepAPI-mc1.21 JAR (remapped Loom as before). Root project is an aggregator; run gradlew build to produce both Fabric JARs plus protocol and paper-plugin.
  • Gradle Wrapper updated to 9.4.0 (recommended for Loom 1.15 / 26.1).

Build targets (this repository)

  • Fabric fabric-1-21 (KrepAPI-mc1.21): Minecraft 1.21.11, Fabric Loader 0.18.2, Fabric API 0.139.4+1.21.11, net.fabricmc.fabric-loom-remap 1.14-SNAPSHOT, official Mojang mappings (loom.officialMojangMappings()), Java 21. fabric.mod.json range >=1.21.4 <=1.21.11.
  • Networking (Fabric 1.21): play payloads use CustomPacketPayload, CustomPacketPayload.Type, and StreamCodec on RegistryFriendlyByteBuf (Mojang names; not Yarn CustomPayload / PacketCodec / RegistryByteBuf).
  • Paper reference plugin: paper-api 1.21.11-R0.1-SNAPSHOT, plugin.yml api-version: '1.21.11', default minimum mod build tracks the mod (see gradle.properties mod_version).
  • Server-driven keys on 1.21.x use KeyBindingHelper.registerKeyBinding (net.fabricmc.fabric.api.client.keybinding.v1).

Documentation

  • docs/protocol.md — wire format, channels, build requirement expressions, kick reasons, minModVersion summary semantics.
  • docs/client-api.md — mouse capture, intercept keys, handshake fields, Fabric server settings, fabric.mod.json depends, version API examples.
  • docs/paper-plugin.md — config examples, versionGate, capabilities / sendMouseCaptureConfig, Gradle note.

KrepAPI (Mod) mc1.21-1.2.0

alpha5 апреля 2026 г.

Added

Server-driven mouse capture (Fabric client + Fabric/Paper server reference)

  • New custom payload / plugin message channels:
    • krepapi:s2c_mouse_capture — enable or configure capture (enabled, flags, consumeVanilla).
    • krepapi:c2s_mouse_action — client reports button presses/releases, scroll deltas, and optionally normalized cursor position on each forwarded event.
  • Flags (combine with bitwise OR): mouse buttons (left/right/middle via GLFW button id), scroll wheel, optional cursor on events (cursor as 0–1 in scaled window coordinates).
  • Capability SERVER_MOUSE_CAPTURE in c2s_client_info. Reference implementations only send s2c_mouse_capture if the client advertised this bit, so older KrepAPI clients without mouse support are not sent an unregistered payload.
  • Wire format is defined in ProtocolMessages (same bytes on Fabric custom play payloads and Paper sendPluginMessage); c2s_mouse_action is self-describing so Paper can decode without remembering prior S2C state.
  • Client: MouseCaptureState, MouseMixin on MouseHandler (onButton with MouseButtonInfo, onScroll), same eligibility gate as raw keyboard capture (in play, network handler present, player or screen open).
  • Server: Fabric — KrepapiFabricServerNetworking.registerMouseActionListener, sendMouseCaptureConfig, getClientCapabilities; handshake entry stores the client capability bitmask after a successful c2s_client_info. Paper — outgoing/incoming channel registration, KrepapiPaperPlugin.sendMouseCaptureConfig, getClientCapabilities, session capability map, debug logging for mouse actions.

Build version requirement expressions (legacy / ranges)

  • KrepapiVersionRequirement parses minimum-mod-version / Fabric minimumModVersion / plugin registrations: bare X.Y.Z remains >= (compatible); also X.Y.Z>, =X.Y.Z, <X.Y.Z, X.Y.x / X.Y.*, two-part X.Y for a minor line; middle wildcards (1.x.2) are rejected.
  • KrepapiVersionPolicy evaluates the intersection of all requirements; KrepapiKickReasons.forVersionCheckFailure formats kicks. s2c_hello.minModVersion is a summary (max floor if all are minima, else joined specs).
  • Paper: invalid minimum-mod-version disables the plugin on enable; invalid combined requirements kick on join with a misconfiguration message. Fabric: logs invalid default settings at register; per-join validation with the same kick text.

Minecraft 26.1 Fabric build (:fabric-26-1)

  • Second Fabric artifact from the same repo: KrepAPI-mc26.1 (mod id still krepapi), targeting 26.1–26.1.1, Loader 0.18.6, Fabric API 0.144.3+26.1, net.fabricmc.fabric-loom 1.15-SNAPSHOT (unobfuscated game; no remapJar), Java 25 toolchain.
  • Source tree is a fork of the 1.21 module with 26.1-specific wiring: PayloadTypeRegistry.clientboundPlay / serverboundPlay, KeyMappingHelper.registerKeyMapping (fabric-key-mapping-api-v1).

Fixed

overrideVanilla server bindings vs. player keybinds

  • Vanilla blocking for overrideVanilla previously compared each key event only to the defaultKey from s2c_bindings. After rebinding in Minecraft’s controls, the wrong key (or no key) could still be consumed or missed.
  • The client now keeps a list of actionIds with overrideVanilla and, on every key event, resolves the current KeyMapping and uses KeyMapping.matches(KeyEvent) so suppression follows the live binding (KrepapiKeyPipeline).
  • ServerBindingManager.applyBindings registers all server KeyMappings before applying the override list, so lookups are always valid when the list is installed.

Changed

  • Two-part requirement strings: A value with exactly two numeric segments (e.g. 1.2) is now a minor line (1.2.x), not a shorthand for >= 1.2.0. Use 1.2.0 or 1.2.0> for a minimum floor.

Gradle layout

  • Fabric mod for 1.21.4–1.21.11 lives in fabric-1-21KrepAPI-mc1.21 JAR (remapped Loom as before). Root project is an aggregator; run gradlew build to produce both Fabric JARs plus protocol and paper-plugin.
  • Gradle Wrapper updated to 9.4.0 (recommended for Loom 1.15 / 26.1).

Build targets (this repository)

  • Fabric fabric-1-21 (KrepAPI-mc1.21): Minecraft 1.21.11, Fabric Loader 0.18.2, Fabric API 0.139.4+1.21.11, net.fabricmc.fabric-loom-remap 1.14-SNAPSHOT, official Mojang mappings (loom.officialMojangMappings()), Java 21. fabric.mod.json range >=1.21.4 <=1.21.11.
  • Networking (Fabric 1.21): play payloads use CustomPacketPayload, CustomPacketPayload.Type, and StreamCodec on RegistryFriendlyByteBuf (Mojang names; not Yarn CustomPayload / PacketCodec / RegistryByteBuf).
  • Paper reference plugin: paper-api 1.21.11-R0.1-SNAPSHOT, plugin.yml api-version: '1.21.11', default minimum mod build tracks the mod (see gradle.properties mod_version).
  • Server-driven keys on 1.21.x use KeyBindingHelper.registerKeyBinding (net.fabricmc.fabric.api.client.keybinding.v1).

Documentation

  • docs/protocol.md — wire format, channels, build requirement expressions, kick reasons, minModVersion summary semantics.
  • docs/client-api.md — mouse capture, intercept keys, handshake fields, Fabric server settings, fabric.mod.json depends, version API examples.
  • docs/paper-plugin.md — config examples, versionGate, capabilities / sendMouseCaptureConfig, Gradle note.

KrepAPI 1.1.0

alpha4 апреля 2026 г.

What's New

Raw Keyboard Capture (SERVER_RAW_CAPTURE — capability bit 1 << 2)

Servers can now instruct the client to forward raw GLFW keyboard events (key code, scancode, action, modifier mask, monotone sequence number) back to the server via the new c2s_raw_key packet.

The server sends s2c_raw_capture with a RawCaptureConfig that specifies:

  • modeOFF (0), ALL (1), or WHITELIST (2, only keys in the key list are forwarded)
  • consumeVanilla — whether the client should suppress Minecraft's own handling of captured keys
  • whitelistKeys — list of GLFW key codes (max 256) used when mode is WHITELIST

New Fabric server-side API in KrepapiFabricServerNetworking:

  • sendRawCaptureConfig(ServerPlayerEntity, RawCaptureConfig) — push a capture config to a specific player
  • registerRawKeyListener(RawKeyListener) / unregisterRawKeyListener(RawKeyListener) — subscribe to incoming c2s_raw_key events with per-listener isolation (exceptions are caught and logged per listener)

Client-side state is managed by the new RawCaptureState class. Capture is cleared automatically on disconnect.

Hardcoded-Key Intercept (INTERCEPT_KEYS — capability bit 1 << 3)

Servers can now suppress specific vanilla key behaviors that are not exposed through KeyMapping — keys like Escape, F3, Tab, F1, and F5 that Minecraft handles internally.

The server sends s2c_intercept_keys with a list of InterceptEntry records, each containing a slot ID and a blockVanilla flag:

Slot constantKeyVanilla behaviour blocked
INTERCEPT_SLOT_ESCAPE (0)EscapeOpens game/pause menu
INTERCEPT_SLOT_F3 (1)F3Toggles debug HUD
INTERCEPT_SLOT_TAB (2)TabShows player list
INTERCEPT_SLOT_F1 (3)F1Toggles HUD visibility
INTERCEPT_SLOT_F5 (4)F5Cycles perspective / chunk reload

An empty entry list clears all intercepts. Maximum 32 entries per sync.

Two new mixins implement the Escape suppression specifically: GameMenuScreenMixin cancels the keyPressed handler in GameMenuScreen, and MinecraftClientMixin cancels openGameMenu — both guard behind InterceptKeyState.blockVanillaForSlot. F3/Tab/F1/F5 are handled inside the existing KeyboardMixin path via InterceptKeyState.shouldConsumeVanillaKey.

Client-side state is managed by the new InterceptKeyState class. Intercepts are cleared automatically on disconnect.

Key Release and Repeat Events for Bound Keys

KrepapiKeyPipeline previously only dispatched events for GLFW_PRESS (action == 1). It now also dispatches for GLFW_REPEAT and GLFW_RELEASE on bound keys.

A new OVERRIDE_HELD_KEYS set tracks which keys are currently held with an active binding so that repeat and release events are only forwarded if the press was already consumed — preventing orphaned release events from leaking through. The held-key set is cleared on disconnect and when server overrides are reset.

This is a wire-transparent change (no new packets), but it is a behaviour change for existing listeners: handlers that only expected press events will now also receive repeat and release.

New Protocol Messages and Packet Types

Three new packet channels are registered in KrepapiNetworking and PayloadTypeRegistry:

ChannelDirectionPayload class
s2c_raw_captureS2CKrepapiRawCaptureS2CPayload
s2c_intercept_keysS2CKrepapiInterceptKeysS2CPayload
c2s_raw_keyC2SKrepapiRawKeyC2SPayload

The :protocol module gains four new record types (RawCaptureConfig, RawKeyEvent, InterceptEntry, InterceptKeysSync) and the corresponding encode* / decode* pairs in ProtocolMessages, with explicit size caps and input validation on decode.

Unit Tests for New Protocol Messages

ProtocolMessagesTest gains four new tests covering the new encode/decode pairs:

  • rawCaptureConfigRoundTrip — full roundtrip including whitelist keys
  • rawKeyEventRoundTrip — all five fields preserved
  • interceptKeysSyncRoundTrip — multi-entry list and blockVanilla flag
  • encodeRawCaptureRejectsTooManyKeys — verifies the 256-key hard cap is enforced at encode time

Notes

  • KrepAPI is client-side only and compatible with vanilla servers. A 1.0.x client simply won't advertise the new capability bits — the new features are silently skipped, nothing breaks.
  • Developers building on KrepAPI: check the client-advertised protocolVersion in the handshake before sending s2c_raw_capture or s2c_intercept_keys to ensure the client supports them.
  • Install a Fabric API build that matches the Minecraft version.

KrepAPI (for developers)

  • Build version (Fabric mod release / c2s_client_info.modVersion, gradle.propertiesmod_version): 1.1.0
  • Wire protocol version (KrepapiProtocolVersion.CURRENT, protocolVersion in s2c_hello / c2s_client_info): 2 — bumped because two new S2C packet channels and one new C2S packet channel were added. A 1.0.x client simply won't advertise the new capability bits (SERVER_RAW_CAPTURE, INTERCEPT_KEYS) and will not receive the new packets — nothing breaks. For developers building on top of KrepAPI: check the client-advertised protocolVersion before sending 1.1.0-only packets.

Совместимость

Minecraft: Java Edition

26.1.x1.21.x

Платформы

Поддерживаемые окружения

Клиент

Создатели

Детали

Лицензия:Apache-2.0
Опубликован:2 недели назад
Обновлён:6 дней назад
Главная