Skip to content

区域目录

AchieveMaster 的区域系统主要给这两类触发器用:

  • REGION_ENTER
  • REGION_LEAVE

当前实现同时支持:

  • config.yml -> custom-regions 里的旧写法
  • regions/ 文件夹下的独立区域文件
  • WorldGuard 区域(写成 wg:区域名

真正推荐长期维护的,是 regions/ 目录。

首次启动后的默认行为

如果 plugins/AchieveMaster/regions/ 不存在,当前区域监听器会:

  1. 自动创建这个目录
  2. 自动写入 _示例区域.yml
  3. 自动写入 _多区域示例.yml

以下划线 _ 开头的文件不会被正式加载,只当示例使用。

单区域文件

最推荐的方式是一个文件只写一个区域。

yaml
id: "spawn"
name: "主城"
world: "world"
x1: -100
y1: 0
z1: -100
x2: 100
y2: 256
z2: 100

几个规则:

  • 文件名默认会当区域 ID
  • 如果文件里自己写了 id,会优先用 id
  • name 是显示名,不影响触发器真正匹配的 ID

多区域文件

如果你想把一组区域放在同一个文件里,也支持:

yaml
regions:
  主城:
    name: "主城区域"
    world: "world"
    pos1: "0,0,0"
    pos2: "100,256,100"

  矿洞:
    name: "矿洞区域"
    world: "world"
    x1: 200
    y1: 0
    z1: 200
    x2: 300
    y2: 64
    z2: 300

坐标写法

当前实现支持两种:

写法 1:分开写

yaml
x1: -100
y1: 0
z1: -100
x2: 100
y2: 256
z2: 100

写法 2:字符串坐标

yaml
pos1: "-100,0,-100"
pos2: "100,256,100"

两种效果一样。

在成就里怎么引用

自定义区域直接写区域 ID:

yaml
trigger:
  type: REGION_ENTER
  条件:
    区域ID: "spawn"

WorldGuard 区域写成:

yaml
trigger:
  type: REGION_ENTER
  条件:
    区域ID: "wg:spawn"

使用建议

  • 区域少量时也可以先用 custom-regions,但长期项目还是建议统一到 regions/
  • 能一文件一地区域时,就别硬塞很多区域进一个文件,后面维护更轻松。
  • 区域 ID 一旦被成就广泛引用,就尽量不要乱改。
  • 大型服如果本来就有完整的 WorldGuard 区域体系,可以直接用 wg: 接,不一定非得重复定义一遍。

常见问题

为什么我的区域文件没生效

先检查:

  • 文件名是不是以下划线 _ 开头
  • 是不是 .yml 文件
  • 改完后有没有执行 /ach reload
  • 坐标格式是不是写错了

REGION_ENTER 一直不触发

先确认:

  • 玩家是不是从区域外进入到区域内
  • world 名是否写对
  • 填的是不是区域 ID,而不是显示名 name

TQ Minecraft Server Plugin Docs