Youth_NOW 发表于 3 天前

[优化|管理|世界]🔒WorldLimit v1.0|多版本兼容(1.8-1.20+)·智能准入系统·异步不卡服·支持PAPI变量解析

本帖最后由 Youth_NOW 于 2025-2-19 12:49 编辑

# WorldLimit 使用文档

## 插件介绍
WorldLimit 是一个功能强大的世界访问控制插件,通过多种条件组合来限制玩家进入特定世界。插件采用模块化设计,支持多版本兼容,并提供丰富的自定义选项。

## 功能特点
- 多版本支持 (1.8-1.20+)
- 异步处理机制
- 多语言支持 (en_US, zh_CN, ja_JP)
- 变量解析引擎 (支持 PlaceholderAPI)
- 丰富的条件类型
- 性能监控系统
- 异常自动处理

## 依赖
- 必需
- Spigot/Paper 1.8+
- 可选
- PlaceholderAPI (推荐,用于变量支持)

## 安装步骤
1. 下载插件jar文件
2. 放入服务器的 plugins 文件夹
3. 重启服务器
4. 配置文件会自动生成

## 权限节点
```yaml
worldlimit.admin:
description: 允许使用所有WorldLimit命令
default: op

worldlimit.debug:
description: 允许使用调试命令
default: op

worldlimit.bypass:
description: 允许绕过世界访问限制
default: op
```

## 命令系统
### 基础命令
- `/wl reload` - 重载配置
- `/wl add <世界名> <类型> [参数]` - 添加世界访问条件
- `/wl remove <世界名> <序号>` - 移除指定条件
- `/wl list [世界名]` - 查看世界条件列表
- `/wl info <世界名>` - 查看世界详细信息
- `/wl lang <list|set|default>` - 语言设置
- `/wl debug <选项>` - 调试工具

### 条件类型命令示例
```
/wl add world_nether item DIAMOND_SWORD 1 "§6下界之剑"
/wl add world_nether permission worldlimit.world.nether
/wl add world_nether variable %player_level% >= 10
/wl add world_nether cooldown 300
```

## 配置文件
### config.yml
```yaml
# 插件语言设置 (支持: en_US, zh_CN, ja_JP)
language: zh_CN

# 调试模式
debug: false

# 版本适配器设置
version:
show_info: true
force_enable: false

# 缓存设置
cache:
variable_duration: 1000
variable_enabled: true
```

### world_rules.yml
```yaml
worlds:
world_nether:
    enabled: true
    message:
      deny: "&c你不能进入这个世界!"
      cooldown: "&e你需要等待 {time} 秒才能再次进入!"
    conditions:
      - type: item
      item: "DIAMOND_SWORD:0"
      amount: 1
      name: "§6下界之剑"
      lore:
          - "§7这把剑可以让你"
          - "§7进入下界"
      message: "&c你需要一把下界之剑才能进入!"
      
      - type: permission
      permission: "worldlimit.world.nether"
      message: "&c你没有权限进入这个世界!"
      
      - type: variable
      variable: "%player_level%"
      operator: ">="
      value: 10
      message: "&c你需要达到10级才能进入!"
      
      - type: cooldown
      time: 300
      permission_bypass: "worldlimit.bypass.cooldown"
      message: "&e你需要等待 {time} 秒才能再次进入!"
```

## 条件类型说明
### 1. 物品检查 (item)
检查玩家是否持有特定物品
```yaml
type: item
item: "物品ID:数据值"
amount: 数量
name: "物品名称" (可选)
lore: [描述行1, 描述行2] (可选)
message: "失败提示"
```

### 2. 权限检查 (permission)
检查玩家是否拥有特定权限
```yaml
type: permission
permission: "权限节点"
message: "失败提示"
```

### 3. 变量检查 (variable)
检查变量值是否满足条件
```yaml
type: variable
variable: "%变量名%"
operator: "运算符"
value: "目标值"
message: "失败提示"
```

支持的运算符:
- `==` 等于
- `!=` 不等于
- `>` 大于
- `<` 小于
- `>=` 大于等于
- `<=` 小于等于
- `range` 范围检查

### 4. 冷却检查 (cooldown)
设置进入世界的冷却时间
```yaml
type: cooldown
time: 冷却时间(秒)
permission_bypass: "绕过权限" (可选)
message: "失败提示"
```

## 内置变量
- `%player_health%` - 玩家当前生命值
- `%player_max_health%` - 玩家最大生命值
- `%player_food%` - 玩家饥饿值
- `%player_level%` - 玩家经验等级
- `%player_exp%` - 玩家经验值
- `%player_world%` - 玩家当前世界
- `%player_gamemode%` - 玩家游戏模式
- `%player_flying%` - 玩家飞行状态

## 注意事项
1. 版本兼容
   - 插件会自动检测服务器版本并使用适当的适配器
   - 如果遇到版本兼容问题,会自动降级到基础模式

2. 性能优化
   - 启用变量缓存可以提高性能
   - 异步处理机制确保不会影响主线程

3. 错误处理
   - 插件包含自动错误处理机制
   - 会自动隔离问题变量
   - 可通过调试命令查看详细信息

4. 配置文件
   - 修改配置后需要使用 `/wl reload` 重载
   - 建议在修改前备份配置文件

5. 多语言支持
   - 可以为每个玩家设置不同的语言
   - 语言文件支持UTF-8编码

## 常见问题
1. Q: 为什么某些变量无法使用?
   A: 确保已安装PlaceholderAPI并且变量提供者插件正常运行。

2. Q: 如何添加自定义变量?
   A: 可以通过PlaceholderAPI添加,或开发插件实现VariableProvider接口。

3. Q: 条件检查失败没有提示?
   A: 检查条件配置中的message字段是否正确设置。

4. Q: 如何禁用某个世界的限制?
   A: 在world_rules.yml中将对应世界的enabled设置为false。

## 技术支持
如果遇到问题,可以:
1. 使用 `/wl debug` 命令收集调试信息
2. 检查服务器控制台的错误日志
3. 确保使用最新版本的插件

## 更新日志
### v1.0.0
- 实现版本隔离系统
- 添加配置管理系统
- 实现变量解析引擎
- 完成世界访问检测核心
- 添加管理员指令系统
- 实现异步处理管道
- 添加异常监控层
- 完成多语言支持
PS:不经常逛论坛,有问题请联系:484305752
如果你觉得插件不错的话,不妨支持一下作者!
https://afdian.com/a/thewindrises
页: [1]
查看完整版本: [优化|管理|世界]🔒WorldLimit v1.0|多版本兼容(1.8-1.20+)·智能准入系统·异步不卡服·支持PAPI变量解析