KOKOTO WebChat (Fabric, Forge)

KOKOTO WebChat (Fabric, Forge)

跨平台Minecraft网页聊天,带地图/独立界面,私聊与群组,安全中继,筛选,富媒体,通知,以及Bukkit/Paper配套插件集成。

KOKOTO WebChat

BlueMapWebChat → KOKOTO WebChat 过渡

自 5.0.0 起,BlueMapWebChat 已更名为 KOKOTO WebChat。 此次 5.0.0 版本发布可能暂时保留在现有的 BlueMapWebChat 列表上,以便 4.7.0 的安装能够发现桥接升级。如果由于无法无缝重命名而导致该列表日后被弃用,新的 KOKOTO WebChat 地址将在此页面顶部标注,后续版本将迁移至该地址。

现有的 BMWC 4.x 服务器数据/配置可由 KWC 5.0.0 导入;原始 BMWC 数据目录将保留不动,作为迁移/回滚来源。

CurseForge 打包说明: 现有的 BlueMapWebChat 页面是一个 Bukkit 插件项目。Bukkit 5.0.0 桥接属于此页面。仅当 CurseForge 接受此项目所需的加载器/类元数据时,Fabric/NeoForge/Forge 文件才应附加在此处;否则,它们将在关联的 KOKOTO WebChat Mods 列表上线后从该列表发布。此打包拆分(如果需要)不会改变 KWC 版本或产品标识。

KOKOTO WebChat 是一个服务端 Minecraft 网页聊天,支持 Bukkit/Paper/Spigot 1.18–26.2(Java 17)、Fabric 精确目标 1.18.2–26.2、NeoForge 精确目标 1.20.2–26.2 以及 Forge 精确目标 1.18.2–26.2;模组加载器目标根据 Minecraft 版本选择 Java 17/21/25。它可以作为独立网页聊天运行,或嵌入到受支持的地图前端,包括 BlueMap、squaremap、Dynmap、Pl3xMap、LiveAtlas、uNmINeD 和 Minecraft Overviewer。核心聊天功能无需客户端模组。

5.0.0 新特性

5.0.0 是迄今为止 KWC/BMWC 架构最大的一次扩展:

  • Bukkit/Paper/Spigot + Fabric + NeoForge + Forge 发布矩阵:1 个 Bukkit 构件加上 16 个 Fabric、12 个 NeoForge 和 16 个 Forge 精确目标构件
  • 独立于地图的部署,支持 BlueMap、squaremap、Dynmap、Pl3xMap、LiveAtlas、uNmINeD、Minecraft Overviewer 以及独立网页客户端
  • 支持 Unicode 的审核/内容过滤,包含屏蔽/遮罩/替换、批量词表、自定义规则、反规避匹配和 Web 管理测试
  • 按账户的 UI 配置文件和通知偏好,改进桌面/移动端通知分离,以及管理员 Discord 关键词提醒
  • 长历史/富媒体滚动稳定性,使用统一的确定性虚拟滚动生命周期处理图片、GIF、视频、音频、YouTube/iframe 和链接预览
  • 扩展的多服务器私信/群组/中继可靠性,投递/已读状态、精确服务器+UUID 路由和重试安全持久化
  • ImageEmojis-Bero 和 SimpleNicks-Bero 部署指南,用于 Bukkit/Paper 系列服务器上的共享表情资源/资源包托管和昵称显示集成

主要特性

  • 游戏与网页双向聊天,支持关联 Minecraft 账户和可选游客聊天
  • BlueMap 附加组件 + 独立页面,支持深色/浅色/高对比度 UI、画中画、可拖拽/调整大小窗口、搜索、回复、置顶和虚拟滚动
  • 1对1 私信,支持本地和跨服务器收件人、精确服务器+UUID 路由、重试安全投递、未读/已读状态和游戏/网页共享线程
  • 群组聊天室,支持公开/私密可见性、邀请、密码、保留期限、未读计数、投递重试保护和成员管理
  • 签名服务器间中继,适用于多服务器社区,包括全网状或中心辐射布局、HMAC 认证、跳数限制、去重、服务器徽章和来源过滤
  • DiscordSRV 集成,附带 Discord 媒体缓存和可选的表情链接增强
  • 上传和富预览,支持图片、视频、音频、YouTube/Shorts,可选 TikTok 和 X/Twitter 嵌入
  • 确定性长历史虚拟滚动,覆盖图片、GIF、视频、音频、YouTube/iframe 和链接预览,并在媒体尺寸稳定时进行滚动锚点校正
  • 支持 Unicode 的内容过滤,适用于公开/群组聊天和可选私信,包含屏蔽/遮罩/替换、批量词表、自定义规则、反规避匹配和 Web 管理测试
  • 自定义表情管理,支持管理员多文件上传,以及可选的 ImageEmojis-Bero Bukkit/Paper 集成,使用相同的 plugins/KOKOTO-WebChat/emojis 目录;其资源包 HTTP 端口仍为独立的面向客户端的服务
  • SimpleNicks-Bero 昵称集成,在 Bukkit/Paper 系列服务器上通过 player-display.mode: "display-name" 实现,而 KWC 保留真实的关联账户身份
  • 可配置消息标记,如 :enter: / :newline: / :tab:,支持管理员本地化别名和可打印的自定义替换
  • Web 推送 / 关键词通知 和管理员更新通知
  • 按账户的视觉 UI 配置文件,以及登录用户账户同步的关键词/通知偏好;设备本地窗口状态和推送端点保持本地存储
  • 管理员 Discord 关键词提醒,由 KWC 负责匹配/去重和 DiscordSRV 逻辑频道选择
  • 管理和审核工具,用于消息隐藏、置顶、游客/IP 禁言、会话撤销、自定义表情管理和私聊元数据
  • 可选的只读私信和群聊内容审计,仅针对明确列入白名单的高级管理员;两者默认禁用,每次审计页面读取都会记录日志
  • 内置界面语言:英语、韩语、日语、简体中文

私信与投递可靠性

跨服务器私信目标通过 服务器 ID + 玩家 UUID 识别,因此本地玩家不会与另一服务器上的同名玩家混淆。远程消息在目标确认存储之前保持待处理状态。失败或不确定的发送可通过持久的中继/客户端消息 ID 重试,而不会重复发送方或接收方记录。

私信和群聊消息状态以紧凑形式显示在时间戳旁边。正常成功投递为静默状态;仅在需要时显示待处理或失败的投递状态。私信消息在收件人阅读前显示简短未读标签,阅读后显示 。群组消息显示未读消息的收件人数,全部已读后变为

多服务器中继

可选中继支持多个 KOKOTO WebChat 服务器之间的公开聊天和私信路由。中继请求采用 HMAC-SHA256 签名,并包含重放保护、时间戳验证、中继 ID 去重、跳数限制和来源跟踪。支持直连和中心辐射拓扑。

对于跨服务器私信投递/已读确认,每个参与服务器都应运行相同版本的当前 KOKOTO WebChat 版本。

管理员私聊审计

私信内容不会自动暴露给普通管理员。可选的审计访问要求在 private-chat-super-admins 中指定准确的 Minecraft 名称/UUID 并且启用相应的功能开关:

direct-message:
  admin-audit:
    enabled: false

group-chat:
  admin-audit:
    enabled: false

审计视图为只读。群组审计不会加入聊天室,也不影响已读/未读状态。每次审计页面读取都会记录操作者和分页元数据,而不会将消息内容复制到审计日志中。

部署

全新配置默认禁用插件主开关,以便运营者在启用之前审查存储、认证、上传、保留期限和 Web 暴露。随附的 config.yml 是唯一的迁移模板。在实际版本迁移时,KOKOTO WebChat 首先从最新的内置默认配置启动,然后叠加从现有 config.yml 中读取的运营者值;旧注释、排序、空行布局和缩进不会保留。迁移前会备份先前固定的旧配置(无 _auto_migration 标记的文件)。迁移后的文件标记为 <version>_auto_migration;在该标记存在期间,启动/重载会重复相同的内置默认重建过程并叠加当前值,使新增设置和内置注释/布局保持最新。完全相同的版本标记会阻止同版本重写。config-reference-<version>.yml 仅是管理员可读的内置默认配置的精确副本,不是迁移输入。旧生成的参考/迁移文件会自动删除。/kchat reload 在停止活动服务之前验证编辑后的 YAML;无效 YAML 将被拒绝,因此之前的运行配置、界面语言和服务保持活动状态。内置的 UTF-8 入门过滤词列表(韩语、英语、日语和简体中文)在入门列表标记不存在时初始化一次;现有或已禁用的文件将被保留,初始化后管理员删除的文件不会被恢复。

对于公开部署,建议将 BlueMap 和 KOKOTO WebChat 放在 Caddy 或 Nginx 的 HTTPS 之后。

可选集成

  • BlueMap(Bukkit 以及 Fabric/NeoForge 和 Forge 26.1.2/26.2 上的 BlueMapAPI)
  • squaremap 和 Dynmap 文件系统 Web 适配器
  • Bukkit/Paper 系列和 Fabric 上的 Pl3xMap
  • LiveAtlas、uNmINeD 和 Minecraft Overviewer 静态 Web 适配器
  • Bukkit 上的 DiscordSRV
  • Bukkit/Paper 系列服务器上的 ImageEmojis-Bero(共享 KWC 表情路径 + 运行时字形解析);一般 ImageEmojis 操作遵循上游插件文档
  • Bukkit/Paper 系列服务器上通过 Bukkit 显示名称实现的 SimpleNicks-Bero;一般 SimpleNicks 操作遵循上游插件文档
  • Web 推送通知

有关完整配置、反向代理、中继、安全、迁移和故障排除指南,请参阅随附的 README 和 docs/ 文件夹。

AI 辅助声明

生成式 AI 被用作开发助手,用于代码审查、实现和补丁、文档起草以及多语言翻译。项目需求、架构/设计决策、集成、测试、兼容性验证、发布验证和最终验收均由人工指导和审查。AI 辅助输出在纳入之前经过审查和验证。