**RemmyChat** 是一个轻量级、功能丰富的 PaperMC 服务器聊天管理解决方案,通过简洁现代的设计增强了玩家的沟通。
## 概述
RemmyChat 通过时尚现代的界面改变服务器的沟通方式,同时通过 MiniMessage 格式化提供强大的自定义选项。从沉浸式范围聊天到全面的反垃圾邮件功能,RemmyChat 在简洁和功能之间取得平衡,以创造完美的聊天体验。

## 功能
- **高级 MiniMessage 格式化** — 丰富的文本,包含颜色、渐变、悬停效果和可点击元素
- **多频道系统** — 全局、本地、工作人员和交易频道,具有完全可自定义的格式
- **范围聊天** — 可配置的基于半径的本地聊天,以获得身临其境的游戏体验
- **私人消息系统** — 玩家之间的无缝沟通,带有回复功能
- **消息切换** — 允许玩家启用/禁用私人消息
- **社交间谍** — 工作人员监控玩家的私人消息
- **灵活的权限系统** — 对所有插件功能和频道的细粒度控制
- **基于组的格式化** — 基于玩家权限的不同聊天格式
- **自定义占位符** — 创建可重用的文本元素,以确保格式的一致性
- **模板系统** — 悬停模板、频道前缀和名称样式,方便配置
- **交互式元素** — 带有可自定义信息工具提示的可悬停玩家名称
- **自动 URL 检测** — 具有可配置的点击打开功能的链接格式化
- **聊天冷却** — 可配置的反垃圾邮件系统,以防止消息泛滥
- **消息持久性** — 数据库存储为玩家首选项和聊天历史记录
- **PlaceholderAPI 集成** — 无限自定义可能性
- **LuckPerms 集成** — 无缝的权限管理
- **优化性能** — 即使在繁忙的服务器上,也能实现最小的资源使用

## 符号 & Emoji 替换
RemmyChat 支持聊天消息中的自定义符号和表情符号替换。您可以在单独的 `symbols.yml` 文件中定义自己的代码(例如 :smile:、:diamond: 等)及其替换项(表情符号、文本或 MiniMessage)。 此功能适用于 Unicode 表情符号和自定义资源包纹理。

### 工作原理
- 玩家可以在聊天中键入代码,例如 `:smile:`。
- 插件将自动将其替换为您在 `symbols.yml` 中配置的内容。
- 支持不区分大小写的代码和连字符 (例如 `:smile-face:`)。
- 能够无缝地与资源包集成以使用自定义纹理和表情符号。
### 示例 `symbols.yml`
```yaml
symbols:
":smile:": "😄"
":heart:": "❤️"
":star:": "⭐"
":smile-face:": "😊"
```
您可以添加任意数量的代码。替换可以是任何字符串、表情符号或 MiniMessage 组件。 资源包纹理将为使用相应资源包的玩家正确显示。
## 开始使用
安装非常简单:
1. 下载 RemmyChat 的最新版本
2. 将 JAR 文件放在服务器的 `plugins` 文件夹中
3. 重新启动服务器
4. 配置文件将自动生成
有关详细设置说明和高级配置,请访问我们的 [官方文档](https://remmychat.noximity.com)。

## 配置
RemmyChat 的配置具有高度的灵活性,同时保持直观。以下是您可以实现的一些示例:
### 频道配置
```yaml
# 频道配置
channels:
global:
permission: "" # 空表示所有人都可以使用
radius: -1 # -1 表示全局聊天
prefix: "" # 全局没有前缀
hover: "player-info"
display-name: ""
local:
permission: "remmychat.channel.local"
radius: 100 # 以块为单位的聊天半径
prefix: "local"
hover: "local-chat"
display-name: "[Local] "
staff:
permission: "remmychat.channel.staff"
radius: -1
prefix: "staff"
hover: "staff-chat"
display-name: "[Staff] "
```
### 自定义格式
```yaml
# 使用可自定义样式的基于组的格式化
groups:
admin:
name-style: "admin"
prefix: ""
format: "%admin-hover% %player_name%: %default-message%"
vip:
name-style: "vip"
prefix: ""
format: "%vip-prefix% %player_name%: %default-message%"
```
### 交互式模板
```yaml
# 用于在格式中重用的模板
templates:
hovers:
player-info: "<#778899>玩家信息\n<#F8F9FA>姓名: <#E8E8E8>%player_name%\n<#F8F9FA>点击以发送消息"
name-styles:
default: "<#4A90E2>%player_name%"
owner: "%player_name% "
admin: "%player_name% "
```

## 命令
| 命令 | 描述 | 权限 |
|---------|-------------|------------|
| `/remchat channel ` | 在聊天频道之间切换 | `remmychat.use` |
| `/remchat reload` | 重新加载插件配置 | `remmychat.admin` |
| `/msg ` | 发送私人消息 | `remmychat.msg` |
| `/reply ` | 回复最后一条私人消息 | `remmychat.msg` |
| `/msgtoggle` | 切换接收私人消息 | `remmychat.msgtoggle` |
| `/socialspy` | 监控玩家之间的私人消息 | `remmychat.socialspy` |
## 权限
| 权限 | 描述 | 默认 |
|------------|-------------|---------|
| `remmychat.use` | 基本插件访问 | `true` |
| `remmychat.msg` | 发送私人消息 | `true` |
| `remmychat.msgtoggle` | 切换私人消息 | `true` |
| `remmychat.msgtoggle.bypass` | 绕过消息切换 | `op` |
| `remmychat.socialspy` | 使用社交间谍功能 | `op` |
| `remmychat.admin` | 管理员访问 | `op` |
| `remmychat.channel.` | 访问特定频道 | 变化 |
## 集成
### PlaceholderAPI
如果已安装 PlaceholderAPI,RemmyChat 将自动集成,允许您在聊天格式中使用任何占位符。
### LuckPerms
当检测到 LuckPerms 时,RemmyChat 可以使用权限组进行聊天格式化,从而简化了具有现有权限结构的服务器的设置。
## 供开发者使用
### 使用 Gradle 构建
本项目使用 Gradle 进行构建,需要 Java 21 或更高版本。
要构建:
```sh
./gradlew build
```
输出 JAR 将在 `build/libs` 目录中。
## 支持与开发
- **文档**: [remmychat.noximity.com](https://remmychat.noximity.com)
- **网站**: [noximity.com](https://noximity.com)
- **问题和功能请求**: 请使用我们的 GitHub 问题跟踪器
- **版本**: 1.4.7
- **许可证**: GPL-3.0