Skip to content
@KokuuWork

KokuuWork

谷雨工坊 —— kokuu.org 背后的开发团队:Minecraft 服务端 mod 与工具链(NeoForge / Arclight)

谷雨工坊 · KokuuWork

Kotlin Minecraft NeoForge License

kokuu.org 背后的开发团队。我们运营一台 Minecraft 服务器, 也为它写真正需要的服务端工具——写完就开源,让别的服务器直接拿去用。

不做概念验证。所有项目都在几百个 mod 的大型整合包里实际运行, 每一行代码的底线都是:装上就能用,用着不出问题。


主线:Voidkit 套件(NeoForge 1.21.1)

纯服务端套件 —— 用服务端 mod 实现 Bukkit / Essentials / CMI 那一类通用服务器功能。 玩家用原版客户端进服,什么都不用装。

架构一句话:内核 + 8 个组件,每个都是独立 jar,可单独安装、单独卸载、单独发布。

组件 modId 职责 可选
voidkit 内核 voidkit_core 插件契约、服务注册表、数据存储、文本变量系统、多语言(唯一打包 Kotlin 运行时的 jar) 必装
同上 · essentials voidkit_essentials 家 / 传送点 / TPA / 管理工具 / 命令简写
同上 · display voidkit_display MOTD / TAB / 记分牌 / 聊天栏 / 公告 / 菜单
同上 · perm voidkit_perm LuckPerms 风格的组树与节点 ✅
同上 · title voidkit_title 称号 + 游戏内 GUI(支持玩家自定义)
同上 · economy voidkit_economy 货币 / 转账 / 排行 / 估值表 /sell ✅
同上 · utility voidkit_utility 清扫 + 垃圾桶 + 性能监测(TPS / MSPT / 区块热点)
同上 · web voidkit_web 管理 API 桥(全套件唯一监听端口的组件),配合 Go 管理平台 ✅

jar 粒度 ≠ 功能粒度:每个功能都是独立可关的 Feature,配置里逐个开关。

为什么敢说「少装任何一个都不会崩」

套件铁律:每个组件只依赖 voidkit_core,core + 任意组件都能单独运行。 插件之间零编译依赖(全仓 0 处跨插件 import),跨插件通信只走服务注册表。 内核不认识「家」「权限组」「称号」——它只认接口,并给每个服务准备保守的兜底:

不装 后果
perm 权限退化成「只认原版 OP」,其余照常
economy 扣款恒返回失败,表现为「暂时不能购买」而不是报错
web 服务器不监听任何端口,一行 HTTP 都不跑

大型整合包兼容性(165 mod 实测通过)

  • 零 mixin —— 全部走事件监听,不和整合包里已有的 mixin mod 争抢类改写
  • 构造期零 IO —— 配置读取推迟到服务端启动阶段,不拖累几百个 mod 的并行加载
  • 命令简写是转发不是重写 —— 行为与原版完全一致,逐条冲突保护,撞名只跳过一条
  • 温和干预默认关闭 —— 即使配置写错,最坏情况也只是清掉一些掉落物,不碰方块 / 机器 / 存档
  • 清扫 ≠ 删除 —— 掉落物收进垃圾桶(按类型聚合,超容量按价值淘汰,改名物品永不动),玩家可以 /trash 取回
更多设计细节(点开)
  • 平台适配层收口:core.api(契约层,跨平台跨版本一行不改)与 core.platform(唯一按加载器重写的层)分离,移植到 Forge / Fabric = 只重写 platform/xxx/,插件零改动
  • 配置文件按插件分家,全部带中文注释(JSONC);一份插件的配置可以整体备份、整体交接
  • 内核无 HTTP:各模块只往纯数据的 ApiRouter 挂路由,由 web 插件消费
  • 文本语法:MOTD / TAB / 聊天栏通用,支持颜色码、%变量%、可点击按钮(run: / suggest: / url: / copy:)
  • 性能监测读原版滑动平均:MSPT 直接读 vanilla 维护的值,TPS 由它反推——比数 tick 反应快得多
  • 数据放服务端根目录不放存档里:删存档重开不丢玩家档案

Voidkit Inspector · 操作审计

voidkit-inspector —— CoreProtect 风格的 方块 / 容器 / 实体操作记录,专为科技整合包设计。

普通查插件在科技包里会翻车:一条自动化产线刷几百万圆石全记进数据库, 真正的破坏行为被淹没在噪音里。Inspector 从架构上先解决「是谁干的」:

  • 来源分类是灵魂:机械臂 / 管道 / 假玩家驱动的操作自动识别、默认不记(日志里能看出 #create / #mekanism / #ae2);树叶腐烂默认不记;爆炸、苦力怕、末影人该记照记
  • 多线程读写:主线程只做 O(1) 入队,唯一写线程批量事务落库(WAL),队列满自动丢弃——绝不卡 TPS;查询走独立线程池,与写入并行
  • 嵌入式 SQLite 零配置单文件 + 复合索引 + keyset 分页:几十万条记录翻页毫秒级
  • 完整 NBT 存档模组方块实体;查询结果以箱子 GUI 展示,悬停看「谁 / 何时 / 动作 / 坐标」

Voidkit Guard · 反作弊

voidkit-guard-oss —— 客户端 Agent + 服务端校验, 同一个 jar 双端安装。七个模块:客户端完整性(进服握手 + 中途随机复检)、 封禁(IP + 机器码 + UUID 三重命中)、按需截屏取证、审计、深度扫描(进程 / 窗口 / 隐藏的作弊 jar)、 挖掘统计与战斗遥测(只告警不处置,处置权永远留给服主)。

几个我们引以为傲的设计:

  • 传输与内存:RSA-2048 握手 → AES-256-GCM 全链路;防重放 nonce 轮换;会话密钥以 XOR 混淆副本驻留堆,明文用完即擦
  • 防中间代理篡改:服务端给每次挑战签名,客户端用内置公钥环验签——剥掉检测的山寨 agent 一回包就是实锤
  • 蜜罐协议:向已验证会话随机下发真 agent 协议里不存在的诱饵消息,真 agent 静默丢弃,改过的协议壳一旦回包即篡改实锤
  • 静默反侦察:客户端零提示零日志,踢人话术只说「环境校验未通过」,真实原因只进审计——对手连自己漏在哪都不知道
  • 隐私边界写进代码:只采集反作弊最少信息;机器码只上报加盐哈希原文不出客户端;截屏只截 MC 游戏窗口;IP 归属地内置 ip2region 离线库,IP 永不出服务器
威胁模型边界(不夸大)
能做到 做不到
赶走「装个透视就进服」的绝大多数人 防不住内核级对手——那需要驱动签名,与整合包零 mixin 冲突,明确不做
让逆向成本高到不值得(签名挑战 + 随机复检 + 静默) 防不住「重写一个假 agent」——客户端在对方机器上,JVM 层物理上没有不可破解

我们宁可把边界写清楚,也不假装无所不能。


小工具

项目 说明
deathback Arclight 混合端轻量补丁:CMI 的 /back 在死亡场景失效,根因已从字节码层面定位(权限门槛导致死亡路径不写回传位置)。本插件不新增命令、不接管逻辑,只把死亡坐标补写进 CMI,让原生 /back 恢复正常

研究项目

项目 说明
arcanum-reborn 神秘时代4(Thaumcraft 4)在 Minecraft 1.20.1 (Forge) 上的非官方独立复刻。原始代码从未公开、跨 4 个 API 断代无法移植——所以是以现有技术底座重做,不是搬运。尚未获得原作者授权,非商业,当前内部开发中

工程纪律

这些原则写在每个仓库里,也写在每次评审里:

  1. 低耦合是最高原则 —— core + 任意组件单独可跑;缺了不崩(有兜底),装了不拖累别人
  2. 零配置、开箱即用 —— 智能默认值,配置是给特殊情况准备的,不是给入门者设的门槛
  3. 保守优先 —— 宁可少做事不出问题,不做激进优化;所有自动干预默认关闭、有硬边界
  4. 不说大话 —— 威胁模型、兼容性边界、已知缺陷都直接写进文档
  5. 拥抱现代技术栈 —— Kotlin 2.1、Go 单二进制、嵌入式 SQLite、Vue 3;前提是不牺牲「稳 + 轻 + 零配置」

当前状态

项目 版本 状态
voidkit v1.2.1 生产运行中(kokuu.org)
voidkit-inspector v1.2.0 生产运行中
voidkit-guard-oss 开发中 活跃开发
deathback 稳定 维护
arcanum-reborn 早期 研究中

联系

Popular repositories Loading

  1. voidkit voidkit Public

    纯服务端模组套件:多加载器(NeoForge / Forge / Fabric)· 多版本(1.20.x–1.21.x),面向几百个 mod 的大型科技整合包

    Kotlin 1

  2. .github .github Public

    关于这个

  3. deathback deathback Public

    Java

  4. voidkit-inspector voidkit-inspector Public

    Voidkit 操作审计模块 —— 来源分类 + 智能回滚五层。支持 1.21.1(NeoForge/Forge)与 1.20.1(Forge)。🛠 故障维修 QQ 群 498700382

    Kotlin

  5. voidkit-guard-oss voidkit-guard-oss Public

    Voidkit 反作弊组件 —— 客户端 Agent + 服务端校验。支持 1.21.1(NeoForge/Forge)与 1.20.1(Forge)。🛠 故障维修 QQ 群 498700382

    Kotlin

  6. tintguard tintguard Public

    让方块染色提供者不再把游戏打崩 —— 客户端 NeoForge 1.21.1 补丁,把每个 BlockColor 包成异常安全,坏掉的染色处理器(如 Waystones)不再能通过 Voxy / Roxy 打崩游戏。Client-side NeoForge 1.21.1 patch that makes every registered BlockColor exception-safe.

    Java

Repositories

Showing 7 of 7 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…