PrivyChat

PrivyChat

这是一个Minecraft客户端,它允许你在被屏蔽的情况下发送消息消息。

社交

💬 ClientChat 系统 — 完整规范
🌐 概述

ClientChat 是一个 Minecraft 客户端侧通信系统,为游戏增加了全局和私密消息层面。

它允许使用同一模组的玩家:

  • 跨服务器通信(通过外部后端)
  • 创建私密聊天群组
  • 发送直接消息
  • 在服务器内全局广播消息

它不会修改或替换 Minecraft 服务器聊天,而是作为独立的通信网络与之并行运行。

所有通信都通过基于 WebSocket 的后端服务器处理,该服务器连接所有使用此模组的客户端。

⚙️ 核心功能
💬 全局聊天系统

一个共享的聊天层面,适用于连接到同一服务器或网络会话的所有用户。

👥 私密聊天室

玩家可以创建、加入和管理私密聊天群组。

📩 直接消息

即时向特定玩家发送私密消息。

🌍 跨服务器通信

即使玩家位于不同的 Minecraft 服务器上(只要它们连接到了后端),也能通信。

🧩 命令系统 (/chat)

所有功能都通过 /chat 命令访问。

🌍 /chat <message>
➤ 全局服务器聊天消息

向连接到相同服务器会话的所有具有 ClientChat 模组的玩家发送消息。

行为:

  • 广播给所有连接的客户端
  • 在 Minecraft 聊天中以自定义格式显示
  • 包含玩家名称前缀

示例:

/chat Hello everyone!

输出:

[Steve] Hello everyone!

🧠 /chat create <room_name>
➤ 创建私密聊天室

创建一个私密聊天室。

行为:

  • 玩家成为房间所有者
  • 房间在后端服务器上注册
  • 只有被邀请的用户才能加入

示例:

/chat create friends

📩 /chat invite <player>
➤ 邀请玩家加入当前房间

邀请一个玩家加入你当前所在的聊天室。

行为:

  • 通过后端发送邀请请求
  • 玩家收到通知
  • 玩家必须通过 /chat join 接受

示例:

/chat invite Alex

🚪 /chat join <room_name>
➤ 加入聊天室

加入一个你被邀请的房间。

行为:

  • 后端验证邀请
  • 如果有效 → 将玩家添加到房间
  • 如果未被邀请 → 错误消息

示例:

/chat join friends

响应:

✅ 成功:已加入房间
❌ 错误:你未被邀请

🚪 /chat leave
➤ 离开当前聊天室

将玩家从当前活跃的房间中移除。

行为:

  • 玩家停止接收房间消息
  • 返回全局聊天模式

示例:

/chat leave

🗣️ /chat tell <player> <message>
➤ 私密直接消息

向特定玩家发送私密消息。

行为:

  • 不受房间限制
  • 玩家无需在相同服务器上在线
  • 消息高亮显示(例如黄色或特殊格式)

示例:

/chat tell Alex hey, where are you?

输出(接收方):

[DM] Steve → You: hey, where are you?

🌐 /chat global <message>
➤ 强制全局广播

向当前服务器会话中的所有人发送消息,即使位于私密聊天室中。

行为:

  • 覆盖房间限制
  • 对该服务器中所有连接的客户端可见
  • 用于公告或紧急消息

示例:

/chat global Server restarting in 5 minutes!

🧠 系统规则
🧩 聊天模式

玩家始终处于以下状态之一:

  • 🌍 全局模式
  • 👥 房间模式
  • 🚪 无(默认后备)

🔐 权限逻辑

  • 房间需要邀请才能加入
  • 只有房间成员接收房间消息
  • 直接消息绕过所有限制
  • 全局消息始终公开

📡 消息流

  1. 玩家输入 /chat 命令
  2. 客户端模组拦截命令
  3. 消息转换为 JSON 数据包
  4. 发送到 WebSocket 服务器
  5. 服务器处理逻辑(房间、邀请、路由)
  6. 服务器广播给正确的客户端
  7. 客户端在 Minecraft 聊天界面中显示消息

🌐 后端要求

系统需要一个轻量级服务器:

  • 基于 WebSocket(推荐)
  • 处理:
    • 已连接的玩家
    • 房间
    • 邀请
    • 消息路由

没有此后端,不同玩家之间无法进行通信。

🎨 聊天呈现(客户端侧)

消息可以样式化为:

  • 🌍 全局:白色文本 + 玩家前缀
  • 👥 房间:彩色房间标签
  • 📩 DM:黄色高亮
  • 🚨 全局覆盖:红色或粗体

示例:

[GLOBAL] Steve: Hello!
[FRIENDS] Alex: yo
[DM] Steve → Alex: hi

🚀 概念总结

ClientChat 是一个 Minecraft 社交通信层面,它:

  • 在客户端侧运行
  • 通过外部服务器连接玩家
  • 添加全局聊天、房间和 DM
  • 行为类似 Minecraft 内部的轻量级 Discord