Residence 开发者 API
Residence 提供完善的开发者 API,支持自定义旗帜标志和 Bukkit 事件监听。
以下内容来源:^[raw/zrips-residence-api.md]
自定义标志
开发者可以为 Residence 添加自己的旗帜标志:
// 注册新标志
FlagPermissions.addFlag("myflag");
// 检查玩家在某位置是否有权限
Location loc = event.getBlock().getLocation();
FlagPermissions perms = Residence.getPermsByLoc(loc);
boolean hasPerm = perms.playerHas(playerName, "myflag", true);
API 管理器
| 管理器 | 获取方式 | 用途 |
|---|---|---|
| ResidenceManager | Residence.getResidenceManager() |
管理所有领地 |
| SelectionManager | Residence.getSelectionManager() |
选区控制 |
| EconomyInterface | Residence.getEconomyManager() |
经济接口 |
| ConfigManager | Residence.getConfigManager() |
配置管理 |
| PermissionManager | Residence.getPermissionManager() |
权限组管理 |
| WorldFlagManager | Residence.getWorldFlags() |
世界标志管理 |
Residence Bukkit 事件
Residence 触发多种自定义 Bukkit 事件供插件监听:
| 事件 | 触发时机 |
|---|---|
| ResidenceCreationEvent | 创建领地(可取消) |
| ResidenceDeleteEvent | 删除领地(可取消) |
| ResidenceOwnerChangeEvent | 更改所有者 |
| ResidenceFlagChangeEvent | 修改标志(可取消) |
| ResidenceFlagCheckEvent | 检查标志(可覆写返回值) |
| ResidenceTPEvent | 传送到领地 |
| ResidenceRentEvent | 租赁相关事件(可取消) |
| ResidenceRaidStartEvent | 突袭开始 |
| ResidenceRaidEndEvent | 突袭结束 |
| ResidenceChatEvent | 领地聊天消息 |
| ResidenceCommandEvent | 使用 Residence 命令 |
实用检查方法
// 检查能否放置方块
ResidencePlayer rp = Residence.getInstance().getPlayerManager().getResidencePlayer(player);
boolean canPlace = rp.canPlaceBlock(block, true);
// 检查能否破坏方块
boolean canBreak = rp.canBreakBlock(block, true);
// 检查能否伤害实体
boolean canDamage = rp.canDamageEntity(entity, true);