# 🧩 DuckyZones
**创建具有强大规则和效果的自定义区域,在你的 Minecraft 世界中!**
高度可配置,效率高,非常适合自定义地图、活动或游戏玩法控制。
---
## 📦 描述
**DuckyZones** 允许你定义世界中特定的矩形区域(区域),这些区域适用特定的规则和效果。
无论你是在建造 PvP 竞技场、冒险地图还是受控环境——这个插件都能让你完全控制在定义区域内的玩家行为。
---
## ⚙️ 功能
- 🔲 使用两个角创建自定义区域
- 🌍 每个区域支持世界
- ❌ 阻止区域内的特定物品或效果
- ✅ 需要特定物品或效果才能进入
- 🪂 在区域内禁用鞘翅(自动从玩家身上移除鞘翅)
- 🧪 自动在区域内应用药水效果
- 🚫 自定义规则违规消息
- 💬 可配置的违规标题、副标题、声音等
- 📛 使用权限支持每个区域的访问限制
- 🔃 在不重启服务器的情况下轻松重新加载支持
- 🗂️ 简单的 `config.yml` 布局
- ☕ 使用 **Java 16** 构建,支持 **Minecraft 1.16.5 → 1.21+**
---
## 🛡️ 权限
| 权限节点 | 描述 |
|------------------------------------------|-------------------------------------------------------------------|
| `duckyzones.zone.` | 授予对特定区域的访问权限 |
| `duckyzones.zone..bypass` | 忽略区域内的所有限制(效果、物品等) |
| `duckyzones.zones.bypass` | 对所有区域的全局忽略 |
| `duckyzones.reload` | 允许使用 `/duckyzones reload` 重新加载插件 |
| `duckyzones.update` | 允许接收关于新插件版本的更新通知 |
> 这些权限允许更细粒度地控制谁可以进入特定区域,忽略限制或拥有特殊访问权限。
---
## 🛠️ 配置
### 📁 `config.yml`
```yaml
# 物品列表 (1.21.5) : https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
# 效果列表 (1.21.5) : https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/potion/PotionEffectType.html
zones:
spawn: # 区域名称
world: world # 区域所在的世界
corner1: world,100,64,100 # 第一个区域角
corner2: world,110,70,110 # 第二个区域角
elytra-disabled: false # 是否在区域内禁用鞘翅? 这将从玩家身上移除鞘翅
elytra-disabled-message: "鞘翅在区域内被禁用!"
blocked-items: # 玩家的物品栏中包含这些物品无法进入区域
- TNT
- ENDER_PEARL
blocked-effects: # 玩家具有这些效果无法进入区域,离开后这些效果会消失 分号表示效果等级,例如 SPEED;1 = 游戏中Speed 1,如果你想阻止所有效果等级,必须使用 ;-1
- SPEED;-1
- INVISIBILITY;1
required-items: # 只有玩家的物品栏中包含这些物品才能进入区域
- DIAMOND
- TOTEM_OF_UNDYING
required-effects: # 只有玩家具有这些效果才能进入区域,离开后这些效果会消失 分号表示效果等级,例如 SPEED;1 = 游戏中Speed 1,如果你想阻止所有效果等级,必须使用 ;-1
- NIGHT_VISION;1
zone-effects: # 进入区域后应用的效果,离开后这些效果会消失 分号表示效果等级,例如 SPEED; 1 = 游戏中Speed 1
- STRENGTH;2
min-health: 5.0 # 心脏数小于此数量的玩家无法进入
max-health: 20.0 # 心脏数等于或大于此数量的玩家无法进入
min-level: 5 # 经验等级小于此数量的玩家无法进入
max-level: 100 # 经验等级等于或大于此数量的玩家无法进入
deny-message: "&c你不能进入这个区域!" # 无法进入区域的玩家在尝试进入时,会在聊天中收到这条消息
zone-teleport-back-command: "spawn %player%" # 玩家通过传送等方式进入区域时执行的命令,例如,调用玩家的昵称,只需输入 %player%
entry-deny-title: "&c禁止进入 &4✖" # 玩家尝试进入区域但未满足要求时显示的标题
entry-deny-subtitle: "%reason%" # 玩家尝试进入区域但未满足要求时显示的副标题
entry-deny-actionbar: "&e离开该区域!" # 玩家尝试进入区域但未满足要求时显示的ActionBar
entry-deny-bossbar: "&4阻止进入区域!" # 玩家尝试进入区域但未满足要求时显示的BossBar
entry-deny-sound: ENTITY.VILLAGER.NO # 玩家尝试进入区域未满足要求时播放的声音
```