跳转至

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);

相关页面