ArcartXAreaManager:区域管理器
区域管理器API
ArcartXAreaManager
- 区域管理器负责管理ArcartX的自定义区域,支持区域的增删查操作。
- 通过
ArcartXAPI.getAreaManager()获取。 - 内部使用Chunk索引优化查询性能,支持区域优先级。
worldKey(worldName)
- 计算世界名对应的区域索引键。对以
dungeon_开头的世界名会做归一化处理(截取中间段并转小写),其余情况直接转小写返回。
- 参数:
worldName: String — 世界名称 - 返回值:
String— 归一化后的世界索引键 - 调用示例
indexArea(area)
- 将一个区域按其覆盖的 Chunk 范围加入内部索引,供后续按位置快速查询。通常在区域加载时由内部调用,一般无需手动调用。
- 参数:
area: Area — 要建立索引的区域对象 - 返回值:无
- 调用示例
getArea(location)
- 获取指定位置所在的区域,如果有多个重叠区域则返回优先级最高的
- 参数:
location: Location — Bukkit位置对象 - 返回值:
Area?— 区域对象,可能为null - 调用示例
getArea(name)
- 按名称获取区域
- 参数:
name: String — 区域名称 - 返回值:
Area?— 区域对象,可能为null - 调用示例
addArea(name, loc1, loc2)
- 添加一个新区域,两个位置必须在同一个世界
- 参数:
name: String — 区域名称loc1: Location — 对角位置1loc2: Location — 对角位置2
- 返回值:无
- 调用示例
如果两个位置不在同一个世界,或者已存在同名区域,会抛出 IllegalArgumentException。
addArea(player, name, loc1, loc2)
- 添加一个新区域,带玩家消息反馈
- 参数:
player: Player — 接收反馈消息的玩家name: String — 区域名称loc1: Location — 对角位置1loc2: Location — 对角位置2
- 返回值:无
- 调用示例
removeArea(name)
- 移除指定名称的区域,同时删除对应的配置文件
- 参数:
name: String — 区域名称 - 返回值:无
- 调用示例
