CCORE - 客户端会话控制

CCORE - 客户端会话控制

Minecraft的先进服务端客户端限制引擎、原版HUD修改器及开发者API

CCORE - 客户端会话控制

CCORE(客户端会话控制) 是一个轻量级、服务端驱动的客户端管理引擎和开发者 API,适用于 Minecraft 1.20.1(Forge)。

专为服务器管理员、RPG 创作者和小游戏开发者设计,CCORE 提供对客户端机制、功能快捷键、物品栏访问和原版 HUD 元素的完全服务端控制,无需客户端手动配置。


🛠️ 主要特性

客户端功能限制

服务器管理员可以锁定特定的客户端快捷键和系统功能,以实现竞技公平性或沉浸式游戏体验:

  • F1(隐藏 HUD) — 阻止玩家关闭其界面。
  • F2(截图) — 在活动期间禁用客户端截图捕捉。
  • F3(调试屏幕) — 隐藏调试坐标、区块边界和信息。
  • F5(视角切换) — 强制第一人称视角(禁用 F5 相机切换)。
  • F11(全屏) — 阻止全屏切换。
  • 断开连接 / 暂停菜单 — 在战斗或关键剧情时刻阻止断开连接按钮。

物品栏与快捷栏限制

  • 禁用物品栏(E) — 以编程方式锁定玩家的物品栏访问权限。
  • 快捷栏槽位限制 — 限制可选择的快捷栏槽位数量(例如,仅允许玩家使用 1–4 个活动槽位)。

原版 HUD 变换引擎

动态隐藏、移动或缩放任意默认 Minecraft HUD 覆盖元素:

  • 支持的元素:minecraft:hotbar、minecraft:health、minecraft:armor、minecraft:food、minecraft:air_level、minecraft:experience_bar、minecraft:crosshair、minecraft:chat、minecraft:player_list、minecraft:boss_event_progress 等。

动态服务器按键绑定

将服务器命令直接绑定到客户端 GLFW 键码。当玩家按下按键时,命令将自动从他们的客户端执行。

全局服务器默认设置与实时同步

在 config/ccore/settings.json 中配置默认限制。使用 /ccore reload 将更改即时应用到所有在线玩家。


💻 服务器命令

命令需要 OP 等级 2。你可以使用 /ccore 或 /clientsession 别名。

命令 描述
/ccore reload 重新加载 config/ccore/settings.json 并将默认设置同步到所有已连接的玩家。
/ccore <targets> list 显示目标玩家当前生效的限制、HUD 设置和按键绑定。
/ccore <targets> block <f1|f2|f3|f5|f11|disconnect> <true|false> 切换特定 F 键或断开连接按钮的阻止状态。
/ccore <targets> inventory <true|false> 禁用或启用物品栏打开(E)。
/ccore <targets> hotbar <1-9> 限制可选择的快捷栏槽位(1 到 9)。
/ccore <targets> hide <overlay_id> 隐藏特定的原版 HUD 元素。
/ccore <targets> show <overlay_id> 恢复已隐藏的原版 HUD 元素的可见性。
/ccore <targets> modify <overlay_id> <offsetX> <offsetY> <scale> 偏移和缩放原版 HUD 组件。
/ccore <targets> keybind add <keycode> <command> 将键码(例如,G 对应 71)绑定到触发服务器命令。
/ccore <targets> keybind clear 清除目标的所有自定义按键绑定。

🧩 开发者 Java API(CCoreAPI)

第三方 Forge 模组和自定义服务器脚本可以直接与 net.ccore.api.CCoreAPI 交互,以编程方式控制玩家会话:

```java import net.ccore.api.CCoreAPI; import net.minecraft.server.level.ServerPlayer;

// 将相机视角锁定为第一人称(禁用 F5) CCoreAPI.setFunctionBlocked(player, "f5", true);

// 隐藏调试信息屏幕(禁用 F3) CCoreAPI.setFunctionBlocked(player, "f3", true);

// 将可用快捷栏槽位限制为前 3 个 CCoreAPI.setHotbarLimit(player, 3);

// 锁定玩家物品栏 GUI 访问(禁用 E 键) CCoreAPI.setInventoryDisabled(player, true);

// 从 HUD 隐藏原版饥饿值条 CCoreAPI.setOverlayHidden(player, "minecraft:food", true);

// 重新定位和缩放原版生命值条(X+20,Y-10,缩放 1.2 倍) CCoreAPI.modifyOverlay(player, "minecraft:health", 20.0f, -10.0f, 1.2f);