# TSLzone - 区域伤害插件
TSLzone 是一个专为 Folia 1.21+ 服务器设计的区域伤害插件,允许服务器管理员创建指定区域,在设定的伤害值和频率下持续对区域内的实体造成伤害。
## ✨ 特点
- 🎯 **精准区域控制** - 通过点选系统精准定义伤害区域
- ⚡ **Folia 兼容** - 针对 Folia 1.21+ 服务器端优化,支持多线程架构
- 🔧 **灵活配置** - 可自定义伤害值和伤害频率
- 💾 **数据持久化** - 所有区域配置自动保存,服务器重启后自动恢复
- 🛡️ **安全限制** - 区域大小限制防止服务器性能问题
- 🎨 **消息自定义** - 全面的自定义消息系统
- 🔄 **热重载** - 支持配置文件热重载,无需重启服务器
## 🚀 快速开始
### 安装步骤
1. 下载`TSLzone-1.0.jar`插件文件
2. 将插件文件放入服务器`plugins`文件夹
3. 重启服务器或使用`plugman`加载插件
4. 插件将自动生成配置文件
### 基本使用流程
1. **设置点选** - 使用`/tzone pos1`和`/tzone pos2`设置区域的两个对角点
2. **创建区域** - 使用`/tzone create <区域名称> <伤害值> <频率>`创建区域
3. **启动区域** - 使用`/tzone start <区域名称>`开始对区域内的实体造成伤害
4. **管理区域** - 使用各种命令管理已创建的区域
## 📋 命令详情
### 基本命令
- **主命令**:`/tslzone`或`/tzone`
- **权限**:`tslzone.use`(基本使用) /`tslzone.admin`(管理功能)
### 选择命令
```
/tzone pos1 # 设置选择中的第一个点 (当前玩家位置)
/tzone pos2 # 设置选择中的第二个点 (当前玩家位置)
```
### 区域管理命令
```
/tzone create <区域名称> <伤害值> <频率> # 创建新的区域
/tzone start <区域名称> # 开始对指定区域造成伤害
/tzone stop <区域名称> # 停止在指定区域内的伤害
/tzone remove <区域名称> # 删除指定的区域
/tzone list # 列出所有区域和它们的状态
```
### 系统命令
```
/tzone reload # 重新加载所有配置文件
/tzone help # 显示帮助信息
```
## 🎮 使用示例
### 创建一个伤害区域
1. 首先移动到区域的一个角落并执行:
```
/tzone pos1
```
2. 移动到区域的对角位置并执行:
```
/tzone pos2
```
3. 创建一个区域(名为“danger_zone”,每次造成2点伤害,每5秒执行一次):
```
/tzone create danger_zone 2 5
```
4. 启动区域:
```
/tzone start danger_zone
```
现在,任何进入该区域的生物每5秒钟会受到2点伤害!
### 管理现有区域
- 查看所有区域:
```
/tzone list
```
- 临时停止一个区域:
```
/tzone stop danger_zone
```
- 重新启动该区域:
```
/tzone start danger_zone
```
- 完全删除该区域:
```
/tzone remove danger_zone
```
## ⚙️ 配置文件
### data.yml
区域数据自动保存在`plugins/TSLzone/data.yml`中,包括:
- 区域坐标信息
- 伤害设置
- 频率设置
- 激活状态
示例配置:
```yaml
zones:
danger_zone:
pos1:
world: world
x: 100.0
Y: 64.0
from: 200.0
pos2:
world: world
x: 150.0
and: 80.0
from: 250.0
damage: 2.0
frequency: 5
active: true
```
### messages.yml
自定义所有插件消息,支持颜色代码:
```yaml
# 颜色代码: &0-&9, &a-&f, &l(粗体), &o(斜体), &n(下划线), &m(删除线), &k(打码), &r(重置)
zone:
create:
success: "&a 区域创建成功 &e'%s' &a!"
success-info: "&e 伤害: &7%s &e| 频率: &7%s 秒"
```
## 🔒 权限系统
| 权限节点 | 描述 | 默认值 |
|---------|------|------|
| `tslzone.use`| 基本使用权限 (pos1, pos2, list) | OP |
| `tslzone.admin`| 管理员权限 (create, start, stop, remove, reload) | OP |
### 权限配置示例 (LuckPerms)
```
# 给玩家基本权限
/lp user <玩家名称> permission set tslzone.use true
# 给管理员全部权限
/lp user <管理员> permission set tslzone.admin true
```
## 🛡️ 安全与限制
### 区域大小限制
- **最大区域**: 500×500×500 块
- **目的**: 防止过大的区域影响服务器性能
- **检查时机**: 区域创建时自动检查
### 性能优化
- 使用 Folia 的区域调度器,确保线程安全
- 智能实体检测,只处理区域内的生物
- 异常处理机制,防止插件崩溃
## 🔧 故障排除
### 常见问题
**Q:创建区域失败,提示“区域过大”**
A:确保所选区域不超过 500×500×500 块。 可以使用`/tzone list`检查区域大小。
**Q:区域内没有造成伤害**
A:检查区域是否已启动 (`/tzone list`检查状态),确保区域内有生物实体。
**Q:服务器重启后区域消失**
A:检查`plugins/TSLzone/data.yml`文件是否存在以及是否可读写。
**Q:命令没有权限**
A:确保拥有`tslzone.use`或`tslzone.admin`权限。
### 调试信息
启用调试模式可以查看详细日志:
1. 查看服务器控制台输出
2. 检查插件是否正确加载
3. 使用`/tzone reload`重新加载配置文件
## 📝 更新日志
### V1.0.0
- ✨ 初始版本发布
- ✅ 完整的区域管理系统
- ✅ Folia 1.21+ 全面兼容
- ✅ 自定义消息系统
- ✅ 数据持久化支持
## 🤝 支持与反馈
如果在使用过程中遇到问题或有改进建议,请:
1. 检查本文档的故障排除部分
2. 确保您使用的是 Folia 1.21+ 服务器
3. 联系插件开发者报告问题
## 📄 许可协议
本插件受 MIT 许可协议约束,允许免费使用、修改和分发。
---
**感谢使用 TSLzone!** 🎉
*让您的服务器区域管理更简单、更高效!*