Keyyyyyyyy

This modification enables keyboard repeat events functionality in Minecraft versions prior to 1.13, where this feature was originally unavailable.
Supported Versions
| Minecraft Version & Loader | Tested | Should Work |
|---|---|---|
| 1.12.2 (Forge & Fabric) | ✅ | ✅ |
| 1.11.2 (Forge & Fabric) | ✅ | ✅ |
| 1.10.2 (Forge & Fabric) | ✅ | ✅ |
| 1.9.4 (Forge) | ✅ | ✅ |
| 1.9.4 (Fabric) | ❌ | ✅ |
| 1.8.9 (Forge & Fabric) | ✅ | ✅ |
| Other versions 1.8-1.12.2 (Forge & Fabric) | ✅ | ✅ |
| Versions before 1.8 (Forge) | ❌ | ❌ |
| Versions before 1.8 (Fabric) | ❌ | ✅ |
Technical Implementation
This mod is implemented as a compact single-JAR project.
Source Code Structure
Within the at.yedel.keyyyyyyyy package, there are three main modules: common, fabric, and forge. This separation serves purely for class organization and doesn't contain special logic.
How It Works
The modification is achieved through three key transformations of the Keyboard class:
- Modifying
void enableRepeatEvents(boolean enable)to permanently activate the function - Altering
boolean areRepeatEventsEnabled()to always return true - Adjusting
boolean isRepeatEventto always return false
Although all three transformations might be redundant (especially areRepeatEventsEnabled, which isn't used in vanilla), their implementation ensures more reliable operation.
Direct ASM is used instead of Mixins because supporting the latter in older Forge versions presents complications. In Forge, ASM is applied via coremod/loading plugin, while in Fabric it's implemented through Chocohead's Fabric-ASM, which is bundled with the mod.
Building and Compatibility
Build configurations are set up for the following Forge and Fabric versions: 1.12.2, 1.11.2, 1.10.2, 1.9.4, and 1.8.9. Support for other versions is also provided, however versions below 1.8.9 are incompatible with loom, and some Forge/Fabric variants are unavailable or have preprocessor issues.
For Forge, Java 8 is recommended, while for Fabric - Java 17/21.
The mod builds JAR files for all versions, which appear nearly identical externally but have important internal differences. The published version is always built based on 1.8.9-fabric, although any Fabric JAR should function correctly.
| JAR Type | Contains mcmod.info | Contains fabric.mod.json | Fabric-ASM Properly Bundled |
|---|---|---|---|
| forge | ✅ | ✅ | ❌ |
| forge-dev | ✅ | ❌ | ❌ |
| fabric | ✅ | ✅ | ✅ |
| fabric-dev | ❌ | ✅ | ❌ |