输入引擎

输入引擎

InputEngine是一个跨平台项目,旨在从Minecraft客户端捕获自定义按键操作,并将其无缝传输至服务器。

游戏机制

InputEngine

一个无缝跨平台桥梁,可从 Minecraft 客户端捕获自定义按键并将其发送到服务器!

📖 概述

InputEngine 是一个强大的实用模组/插件,旨在从 Minecraft 客户端捕获自定义按键并将其即时传输到服务器。它允许服务器端插件无缝响应客户端自定义按键绑定(例如,技能 1、闪避、打开自定义菜单)。

该项目由两部分组成:一个客户端模组(Fabric/NeoForge)和一个服务器插件(Spigot/Paper)。

✨ 特性

  • 🎮 客户端按键绑定:在客户端注册自定义按键绑定。完全支持 Fabric 和 NeoForge。
  • ⚡ 网络桥接:当绑定的按键被按下或释放时,向服务器发送高效、轻量级的数据包。
  • 🌍 兼容原版服务器:网络通道在客户端是可选的。你可以安全地将模组安装在客户端,同时加入原版服务器而不会被断开连接!
  • 🛠️ 服务器端 API:为开发者提供了一个自定义 Spigot 事件(PlayerKeyPressEvent),以便服务器端插件能轻松监听并响应玩家输入。

📥 安装

InputEngine 需要同时安装服务器端插件和客户端模组才能正常工作。

针对玩家(客户端)

  1. 下载适用于你的模组加载器(Fabric 或 NeoForge)的正确版本。
  2. 将下载的 .jar 文件放入 Minecraft 客户端的 mods/ 文件夹。
  3. Fabric 用户: 请确保已安装 Fabric API。

针对服务器管理员(插件)

  1. 下载 Spigot 发布文件。
  2. 将其放入 Spigot/Paper 服务器的 plugins/ 文件夹。
  3. 重启你的服务器。

💻 针对开发者(API 使用)

如果你正在开发一个 Bukkit/Spigot 插件并希望响应玩家的按键操作,你可以轻松使用此 API!

监听 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("你按下了:" + event.getAction().name());
        } else {
            event.getPlayer().sendMessage("你释放了:" + event.getAction().name());
        }
    }
}

完整示例见示例插件和API 文档

📜 许可

本项目是开源项目,采用 MIT 许可证。