InputEngine
ModrinthInputEngine is a cross-platform project designed to capture custom keystrokes from the Minecraft client and transmit them seamlessly to the server.
InputEngine
A seamless cross-platform bridge capturing custom keystrokes from the Minecraft client to the server!📖 Overview
InputEngine is a powerful utility mod/plugin designed to capture custom keystrokes from the Minecraft client and transmit them instantly to the server. It allows server-side plugins to react seamlessly to custom client-side keybinds (e.g., Skill 1, Dodge, Open Custom Menu).
This project acts as a two-part bridge: a Client Mod (Fabric/NeoForge) and a Server Plugin (Spigot/Paper).
✨ Features
- 🎮 Client-Side Keybinding: Registers custom keybinds on the client. Fully supports both Fabric and NeoForge.
- ⚡ Network Bridge: Sends efficient, lightweight payloads to the server whenever a bound key is pressed or released.
- 🌍 Vanilla Server Compatible: The networking channel is optional on the client. You can safely keep the mod installed while joining vanilla servers without being disconnected!
- 🛠️ Server-Side API: Exposes a custom Spigot Event (
PlayerKeyPressEvent) for developers so your server-side plugins can easily listen and react to player inputs.
📥 Installation
InputEngine requires both a server-side plugin and a client-side mod to function correctly.
For Players (Client)
- Download the correct version for your mod loader (Fabric or NeoForge).
- Place the downloaded
.jarfile into your Minecraft client'smods/folder. - Fabric Users: Ensure you have the Fabric API installed.
For Server Owners (Plugin)
- Download the Spigot release file.
- Place it in your Spigot/Paper server's
plugins/folder. - Restart your server.
💻 For Developers (API Usage)
If you are developing a Bukkit/Spigot plugin and want to react to a player's key press, you can easily use the API!
Listen to the PlayerKeyPressEvent:
import dev.darkblade.mod.input_engine.server.api.PlayerKeyPressEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class MyPluginListener implements Listener {
@EventHandler
public void onPlayerKeyPress(PlayerKeyPressEvent event) {
if (event.isPressed()) {
event.getPlayer().sendMessage("You pressed: " + event.getAction().name());
} else {
event.getPlayer().sendMessage("You released: " + event.getAction().name());
}
}
}
📜 License
This project is open-source and available under the MIT License.

Kommentare 0
Noch keine Kommentare. Sei der Erste, der seine Meinung teilt.