# 🎉 ExtraGreetings
一个功能丰富的 Minecraft 服务器问候插件,具有 **Folia 支持**、**Adventure API**、**MiniMessage**,并针对 **Minecraft 1.20.1+** 进行了优化。
## ✨ 特色功能
- **🎭 可定制的加入问候语** - 使用标题、副标题、操作栏、Boss 条、粒子、音效和聊天消息欢迎玩家
- **🎪 首登检测** - 对新玩家和回访玩家显示不同的问候语
- **👑 VIP 支持** - 对具有权限的 VIP 玩家显示特别问候语(现在包括退出消息!)
- **🚪 基于权限的退出消息** - VIP 和普通玩家的不同退出消息,具有不同的效果
- **⚡ Folia 兼容性** - 完全支持 Folia 的调度器
- **🎨 MiniMessage 支持** - 使用渐变、颜色和效果进行丰富的文本格式化
- **🔧 PlaceholderAPI 集成** - 支持自定义占位符
- **⏰ 冷却系统** - 使用可配置的冷却时间防止垃圾消息
- **🎯 命令执行** - 在加入/退出事件时运行命令
- **📊 内置统计数据** - 追踪玩家的加入情况和激活的功能
- **🔄 实时重新加载** - 在不重启服务器的情况下重新加载配置
- **🛠️ 配置更新器** - 自动配置更新,并具有备份系统
- **🧪 增强的测试命令** - 实际测试问候语,而不是仅仅记录
## 📋 要求
- **Minecraft 1.20.1+**
- **Folia** 或 **Paper** 服务器
- **Java 17+**
- **可选**: 用于更多占位符的 PlaceholderAPI
## ⚙️ 配置
插件会在 `plugins/ExtraGreetings/config.yml` 生成默认配置文件的。这是一个例子:
```yaml
# ExtraGreetings 配置
settings:
enableJoin: true
enableQuit: true
cooldownSeconds: 60
debug: false
joinDelay: 1
join:
firstTime:
title: "欢迎"
subtitle: "%player% 第一次加入! "
actionbar: "尽情享受吧! "
bossbar:
enable: true
text: "欢迎, %player%!"
color: BLUE
style: SOLID
duration: 10
particles:
enable: true
effect: "HEART"
count: 50
offset: {x: 0.5, y: 1.0, z: 0.5}
speed: 0.1
sound:
enable: true
effect: "ENTITY_PLAYER_LEVELUP"
volume: 1.0
pitch: 1.0
message: "[+] %player% 第一次加入!"
commands:
- "give %player% diamond 1"
- "broadcast &a欢迎新玩家 %player%!"
recurring:
title: "欢迎回来! "
subtitle: "尽情享受吧! "
message: "[+] %player% 回来了!"
vip:
enable: true
title: "VIP 欢迎! "
subtitle: "%player% VIP 的加入! "
# ...更多 VIP 设置
quit:
# VIP 退出问候语 (为具有 extragreetings.vip 权限的玩家)
vip:
message: "[VIP] %player% 离开了服务器!"
particles:
enable: true
effect: "DRAGON_BREATH"
count: 30
offset: {x: 0.5, y: 1.0, z: 0.5}
speed: 0.15
sound:
enable: true
effect: "ENTITY_ENDER_DRAGON_FLAP"
volume: 1.0
pitch: 1.2
commands:
- "say VIP %player% 离开了服务器!"
# 普通退出问候语
regular:
message: "[-] %player% 离开了服务器。"
particles:
enable: true
effect: "SMOKE_NORMAL"
count: 20
offset: {x: 0.0, y: 0.5, z: 0.0}
speed: 0.1
sound:
enable: true
effect: "ENTITY_HORSE_SADDLE"
volume: 0.8
pitch: 1.0
commands: []
```
## 🎮 命令
| 命令 | 描述 | 权限 |
|---------|-------------|------------|
| `/extragreetings` | 显示帮助菜单 | `extragreetings.admin` |
| `/extragreetings reload` | 重新加载配置 | `extragreetings.admin` |
| `/extragreetings info` | 显示插件信息 | `extragreetings.admin` |
| `/extragreetings stats` | 显示插件统计数据 | `extragreetings.admin` |
| `/extragreetings debug [on/off]` | 切换调试模式 | `extragreetings.admin` |
| `/extragreetings reset [data/cooldowns]` | 重置插件数据 | `extragreetings.admin` |
| `/extragreetings test [join/quit]` | 测试问候语(实际触发!) | `extragreetings.admin` |
| `/extragreetings update` | 更新配置到最新版本 | `extragreetings.admin` |
**别名**: `/eg`
## 🔐 权限
| 权限 | 描述 | 默认值 |
|------------|-------------|---------|
| `extragreetings.admin` | 访问管理命令 | `op` |
| `extragreetings.vip` | 接收 VIP 问候语(加入和退出) | `false` |
| `extragreetings.bypass.cooldown` | 绕过问候语冷却时间 | `op` |
## 🛠️ 配置更新器
### ✨ 特色:
- **自动更新**: 插件启动时自动检查配置
- **保留注释**: 保持所有配置注释
- **备份系统**: 在更改之前创建带有时间戳的备份
- **手动更新**: 使用 `/extragreetings update` 强制更新
- **验证**: 检查无效的音效/粒子效果
### 📁 备份位置:
备份存储在 `/plugins/ExtraGreetings/backups/config.yml.timestamp.bak`
### 🔄 工作原理:
1. **启动时**: 插件自动检查缺失的配置选项
2. **更新**: 使用默认值添加新的选项
3. **清理**: 删除过时的配置选项
4. **保留**: 保持您的所有自定义设置和注释
### 📝 控制台消息:
```
[ExtraGreetings] 添加了缺失的配置选项:quit.vip.message
[ExtraGreetings] 配置更新成功!
[ExtraGreetings] 将配置备份到:config.yml.1234567890.bak
```
## 🎨 MiniMessage 格式化
ExtraGreetings 支持完整的 MiniMessage 格式化:
```yaml
title: "欢迎"
subtitle: "%player% has joined! "
actionbar: "Enjoy your stay! "
message: "[+] %player% joined!"
```
**可用标签:**
- ``, ``, ``, ``
- ``, ``, ``, ``, etc.
- ``, ``
- ``, ``
## 🏷️ 占位符
### 内置占位符
- `%player%` - 玩家名称
- `%player_displayname%` - 玩家显示名称
- `%player_uuid%` - 玩家 UUID
- `%online_players%` - 在线玩家数量
- `%max_players%` - 最大玩家数量
- `%server_name%` - 服务器名称
- `%current_time%` - 当前时间
- `%server_uptime%` - 服务器运行时间
- `%plugin_version%` - 插件版本
### PlaceholderAPI 支持
安装 PlaceholderAPI 后,您可以使用任何可用的占位符:
- `%player_level%` - 玩家等级
- `%vault_eco_balance%` - 玩家余额
- `%luckperms_prefix%` - 玩家前缀
- 还有更多!
## 🎆 粒子效果
支持的粒子效果包括:
- `HEART`, `VILLAGER_HAPPY`, `FLAME`, `SMOKE_NORMAL`
- `EXPLOSION_LARGE`, `FIREWORKS_SPARK`, `ENCHANTMENT_TABLE`
- `SNOWFLAKE`, `WATER_BUBBLE`, `REDSTONE`
- **新**:`DRAGON_BREATH` (用于 VIP 退出问候语)
- 以及所有其他 Bukkit 粒子类型
## 🔊 音效
支持的音效包括:
- `ENTITY_PLAYER_LEVELUP`, `ENTITY_EXPERIENCE_ORB_PICKUP`
- `ENTITY_ENDER_DRAGON_GROWL`, `ENTITY_HORSE_SADDLE`
- `BLOCK_ANVIL_USE`, `ENTITY_FIREWORK_ROCKET_LAUNCH`
- **新**:`ENTITY_ENDER_DRAGON_FLAP` (用于 VIP 退出问候语)
- 以及所有其他 Bukkit 音效
## 🎯 Boss 条配置
```yaml
bossbar:
enable: true
text: "欢迎, %player%!"
color: BLUE # BLUE, RED, GREEN, YELLOW, PURPLE, PINK, WHITE
style: SOLID # SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20
duration: 10 # 持续时间(秒)
```
## 🔧 高级配置
### 自定义命令
在玩家加入或退出时执行命令:
```yaml
commands:
- "give %player% diamond 1"
- "broadcast &a欢迎 %player%!"
- "tp %player% spawn"
```
### VIP 配置
VIP 玩家的特殊问候语(加入和退出):
```yaml
vip:
enable: true
title: "VIP 欢迎! "
# 玩家需要 extragreetings.vip 权限
```
### 基于权限的退出消息
根据权限显示不同的退出消息:
- **VIP 玩家** (`extragreetings.vip`):带有龙粒子特效的特殊退出效果
- **普通玩家**:标准的退出消息
### 冷却系统
防止问候语垃圾消息:
```yaml
settings:
cooldownSeconds: 60 # 冷却时间(秒)
joinDelay: 1 # 显示问候语前的延迟
```
## 📊 统计数据
使用 `/extragreetings stats` 查看:
- 加入过的总玩家数
- 激活的冷却时间
- 激活的 Boss 条
- 插件状态
## 🧪 测试系统
### 用法:
- `/extragreetings test join` - 测试加入问候语(实际显示效果!)
- `/extragreetings test quit` - 测试退出问候语(实际显示效果!)
### 特色:
- **实际触发**: 显示真实的问候语,而不是仅仅记录
- **权限检测**: 自动检测 VIP 状态
- **反馈**: 显示正在触发哪种类型的问候语
- **错误处理**: 如果发生任何问题,将提供清晰的错误消息
## 🐛 故障排除
### 常见问题
1. **问候语不显示**: 检查配置中是否启用了加入/退出事件
2. **粒子不生成**: 验证粒子效果名称是否正确
3. **声音不播放**: 检查声音效果名称和音量设置
4. **PlaceholderAPI 不起作用**: 确保已安装并加载了 PlaceholderAPI
5. **配置没有更新**: 使用 `/extragreetings update` 强制更新
### 调试模式
启用调试模式以查看详细的日志记录:
```yaml
settings:
debug: true
```
或者使用命令:`/extragreetings debug on`
## 🔄 迁移
### 从其他问候插件
1. **停止您的服务器**
2. **删除旧插件和数据文件**
3. **安装 ExtraGreetings**
4. **使用本指南配置** 新插件
5. **启动您的服务器**
## 🤝 支持
- **Discord**: [加入我们的 Discord](https://discord.gg/WPYVPGbKZc)