SAKChat

SAKChat

一个模块化、完全且易于配置的轻量级客户端Fabric模组,用于过滤、个性化及自动化聊天。享受吧 :D

自动化

大家好!

当我在玩《我的世界》时,我发现聊天功能仿佛还停留在2011年:相比游戏本身的复杂性,聊天系统极其简陋。当我寻找修复这个问题的模组时,找到的要么是轻量却没什么用、还强迫我为了兼容性多装5个模组并从整合包中移除7个的模组,要么就是一些庞大笨重、需要花2小时才能理解和配置的巨型模组。因此我决定开发这个模组,为原版《我的世界》聊天功能添加我所缺失的特性。SAKChat是一个模块化、轻量级的Fabric客户端模组,旨在过滤、个性化和自动化聊天功能。

它可以通过游戏内GUI(使用ModMenu或输入/sakchat gui)或直接编辑JSON文件进行完全配置。(提醒一下:如果你破坏了JSON语法,模组会安全地将文件重置为默认值,请小心!)。希望你们喜欢!:D

由于它是100%客户端模组,它在任何地方都适用:单人游戏、多人游戏和Realms。服务器甚至不会知道你正在运行它。

此模组未经允许绝不会存储或向开发者或第三方发送个人数据。 需要Fabric API和Cloth Config API

模式与模块

触发器(Triggers)

对特定聊天关键词或正则表达式的反应。

支持正则表达式/文本匹配,区分大小写/不区分大小写。 操作:

  • 声音提醒
  • 消息高亮
  • 快捷栏HUD弹窗
  • 吐司通知
  • 黑名单
  • 冷却时间以防止聊天刷屏
  • 匹配时可选的自动运行快捷指令

快捷指令(Shortcuts)

即时发送指令或文本。 支持按键绑定和占位符。

可选参数位置通过%定义(额外参数追加到末尾)

翻译(Translations)

使用API提供商(Google或自定义)自动翻译聊天消息。

占位符(Placeholders)

实时获取游戏数据并将其注入到消息或快捷指令中。

玩家数据:生命值、饥饿值、护甲值、精确坐标和朝向 技术信息:服务器IP、FPS、操作系统和内存使用情况 快捷指令集成

聊天记录器(Chat Recorder)

将原始的、未经过滤的聊天历史按世界/服务器记录到minecraft/sakchat/records/中,支持两种格式:txt(便于快速方便使用)和jsonl(此处保存带有颜色和图形细节的消息,你可以在游戏中使用/sakchat display打开它)

反人肉搜索与反泄露(Anti-Doxxing & Anti-Leak)

阻止传入/传出文本中的电子邮件、IP地址、电话号码和坐标。 对于传出文本,你可以通过在消息开头加上#leak#来单次绕过此功能。

主播模式(Streamer Mode)

用户名遮挡(不影响包含你用户名的触发器被激活)。

聊天静音(Mute Chat)

启用后完全隐藏聊天。 这不影响其他模块正常工作。 发送消息(非命令)将被阻止。

消息如何处理?

传入文本

聊天数据包 -> 聊天静音 -> 记录引擎 -> 主播模式 -> 反人肉搜索 -> 触发器引擎 -> 操作 [声音提醒 -> HUD弹窗 -> 吐司 -> 快捷指令 -> 黑名单 -> 高亮] -> 聊天显示

传出文本

聊天输入 -> 聊天静音* -> 反泄露 -> 占位符引擎 -> 快捷指令 -> 聊天数据包

*对于传出文本,聊天静音若启用则阻止发送消息,但允许发送命令

当传入消息被修改时,你仍然可以通过悬停[⏎]前缀查看原始消息,阅读.txt记录或使用/sakchat display查看格式化后的.jsonl文件

配置文件

所有内容都存放在.minecraft/config/sakchat/目录下:

  • triggers.json
  • shortcuts.json
  • config.json

正则表达式的编译和配置的加载/保存是在游戏加载或配置文件编辑时异步执行的,因此你不会体验到任何游戏卡顿

重要命令

  • /sakchat help — 显示命令列表
  • /sakchat gui — 直接打开配置设置
  • /sakchat save — 强制将当前设置保存到磁盘
  • /sakchat display [可选:相对于minecraft/sakchat/records的路径] — 显示游戏内聊天的格式化记录(如果未提供路径则打开最新记录),需要启用聊天记录器!
  • /sakchat reload — 强制模组从磁盘重新导入文件(仅限开发模式)
  • /sakchat modes <模式> toggle <true/false> — 切换模式开关
  • /sakchat modules <模块> toggle <true/false> — 切换模块开关
  • /sc <id> [参数...] — 立即运行自定义快捷指令

发现bug了?觉得我缺少某个功能?别害羞,在GitHub上开个issue吧,我会尽快回复!