Residence API 与变量文档
Residence 是一款经典的 Minecraft 领地保护插件(原作者 bekvon,现由 Zrips 维护)。玩家可自行圈地、设置权限旗帜、出租或出售领地,管理员可配置玩家组上限。插件对外提供官方 Java API(ResidenceApi 入口 + 5 大接口)、27 个事件以及 31 个内置 PlaceholderAPI 变量,并支持 Folia。
- 插件主类:
com.bekvon.bukkit.residence.Residence
- 版本线:6.x(本文基于最新发布版 6.0.2.3 源码整理)
- 硬依赖:CMILib;软依赖:PlaceholderAPI、Vault、WorldEdit、WorldGuard 等
- Folia 支持:是(plugin.yml:
folia-supported: true)
依赖引入
Residence 可通过 JitPack 引入:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.Zrips</groupId>
<artifactId>Residence</artifactId>
<version>6.0.2.3</version>
<scope>provided</scope>
</dependency>
注:如处理 ResidenceChatEvent 中的 CMIChatColor 等类型,需要同时引入 CMILib。
包名结构
| 包 |
内容 |
com.bekvon.bukkit.residence |
主类 Residence、命令与配置 |
com.bekvon.bukkit.residence.api |
官方 API:ResidenceApi 与 5 个接口 |
com.bekvon.bukkit.residence.protection |
领地核心:ClaimedResidence、ResidenceManager、FlagPermissions、ResidencePermissions、CuboidArea、PlayerManager、LeaseManager |
com.bekvon.bukkit.residence.containers |
数据容器:ResidencePlayer、Flags 等 |
com.bekvon.bukkit.residence.permissions |
权限组:PermissionGroup、PermissionManager |
com.bekvon.bukkit.residence.economy / .economy.rent |
经济:ResidenceBank、RentManager、RentedLand、RentableLand |
com.bekvon.bukkit.residence.chat |
聊天频道:ChatManager、ChatChannel |
com.bekvon.bukkit.residence.event |
全部 27 个事件 |
com.bekvon.bukkit.residence.Placeholders |
PAPI 变量实现 |
API 入口:ResidenceApi
com.bekvon.bukkit.residence.api.ResidenceApi(全静态方法):
| 方法 |
返回类型 |
实现类 |
getResidenceManager() |
ResidenceInterface |
ResidenceManager |
getPlayerManager() |
ResidencePlayerInterface |
PlayerManager |
getChatManager() |
ChatInterface |
ChatManager |
getMarketBuyManager() |
MarketBuyInterface |
TransactionManager |
getMarketRentManager() |
MarketRentInterface |
RentManager |
也可以直接使用 Residence.getInstance().getResidenceManager() 获取完整实现类;对外发布插件建议使用接口。
API 接口方法清单
1. ResidenceInterface(领地管理)
| 方法 |
说明 |
ClaimedResidence getByLoc(Location loc) |
按坐标获取领地(无则 null) |
ClaimedResidence getByName(String name) |
按名称获取领地 |
void addShop(ClaimedResidence res) / addShop(String res) |
加入商店列表 |
void removeShop(...) |
移出商店列表 |
List<ClaimedResidence> getShops() |
商店领地列表 |
boolean addResidence(String name, Location loc1, Location loc2) |
创建领地 |
boolean addResidence(String name, String owner, Location loc1, Location loc2) |
指定主人创建 |
boolean addResidence(Player player, String name, Location loc1, Location loc2, boolean resadmin) |
玩家创建(支持 resadmin) |
boolean addResidence(Player player, String name, boolean resadmin) |
用当前选区创建 |
2. ResidencePlayerInterface(玩家数据)
| 方法 |
说明 |
ArrayList<String> getResidenceList(String player) |
玩家名下领地列表 |
ArrayList<String> getResidenceList(UUID uuid) |
同上(UUID) |
ArrayList<String> getResidenceList(String player, boolean showhidden) |
可选包含隐藏领地 |
ResidencePlayer getResidencePlayer(String player) |
获取玩家包装对象 |
3. ChatInterface(领地聊天)
| 方法 |
说明 |
boolean setChannel(UUID player, String resName) |
已废弃(Deprecated) |
boolean setChannel(UUID player, ClaimedResidence res) |
加入领地聊天频道 |
boolean removeFromChannel(UUID player) |
离开频道 |
ChatChannel getChannel(String channel) |
按名称获取频道 |
ChatChannel getPlayerChannel(UUID player) |
玩家当前频道 |
4. MarketBuyInterface(领地买卖)
| 方法 |
说明 |
Map<String, Integer> getBuyableResidences() |
可购买领地 → 价格 |
void buyPlot(String areaname, Player player, boolean resadmin) |
购买 |
void removeFromSale(String areaname) |
下架 |
boolean isForSale(String areaname) |
是否在售 |
int getSaleAmount(String name) |
售价 |
boolean putForSale(String areaname, int amount) |
已废弃(Deprecated) |
boolean putForSale(ClaimedResidence res, int amount) |
上架出售 |
5. MarketRentInterface(领地租赁)
| 方法 |
说明 |
Set<ClaimedResidence> getRentableResidences() |
可租赁领地 |
Set<ClaimedResidence> getCurrentlyRentedResidences() |
出租中的领地 |
RentedLand getRentedLand(String landName) |
租赁数据 |
List<String> getRentedLands(String playerName) |
玩家租到的领地 |
void setForRent(...) |
设为出租(含 StayInMarket / AllowAutoPay 重载) |
void rent(Player, String, boolean repeat, boolean resadmin) |
租下 |
void removeFromForRent(...) / void unrent(...) |
取消出租 / 退租 |
void removeFromRent(String) / void removeRentable(String) |
移除租赁 / 可租状态 |
boolean isForRent(String) / boolean isRented(String) |
状态判断 |
String getRentingPlayer(String) |
承租人 |
int getCostOfRent(String) |
租金 |
boolean getRentableRepeatable(String) / getRentedAutoRepeats(String) |
续租 / 自动续费 |
int getRentDays(String) |
租赁天数 |
void checkCurrentRents() |
检查过期租赁 |
void setRentRepeatable(...) / setRentedRepeatable(...) |
设置续租 |
int getRentCount(UUID) / getRentableCount(UUID) |
统计(String 版已废弃) |
核心类常用方法
ClaimedResidence(protection,领地对象)
- 名称与归属:
getName()、getResidenceName()、setName(String)、getOwner()、getOwnerUUID()、isOwner(...)、isServerLand()
- 层级结构:
getParent()、getTopParent()、getTopParentName()、isSubzone()、isMainResidence()、getSubzoneDeep()
- 区域:
getMainArea()、getMainAreaName()、getArea(String)、getAreaMap()、getAreaList()、containsLoc(Location)、checkCollision(CuboidArea)、addArea(...)、replaceArea(...)、removeArea(...)
- 子领地:
addSubzone(...)、removeSubzone(...)、getSubzone(String)、getSubzoneByLoc(Location)、getSubzoneList()、getSubzonesMap()
- 权限与信任:
getPermissions()、isTrusted(Player/String/UUID)、getTrustedPlayers()
- 银行 / 价值:
getBank()、getWorth()、getWorthByOwner()
- 出售 / 出租:
isForSell()、getSellPrice()、setSellPrice(...)、isForRent()、isRented()、getRentable()、getRentedLand()
- 其他:
getCreateTime()、getTotalSize()、getXZSize()、getWorldName()、getTeleportLocation(Player)、kickFromResidence(Player)、getChunks()、remove()
- 静态:
ClaimedResidence.getByName(String)、ClaimedResidence.getByLoc(Location)
ResidenceManager(protection)
- 查询:
getByLoc(Location)、getByName(String)、getByChunk(Chunk)、getResidenceList(...)、getResidences()、getResidenceCount()
- 创建 / 删除:
addResidence(...)、removeResidence(...)、removeAllByOwner(String)
- 管理:
renameResidence(...)、giveResidence(...)、mirrorPerms(...)、checkAreaCollision(...)
- 商店:
addShop(...)、removeShop(...)、getShops()
- 统计:
getOwnedZoneCount(...)、hasMaxZones(...)
FlagPermissions / ResidencePermissions(protection)
- 枚举:
FlagState { TRUE, FALSE, NEITHER, INVALID }、FlagCombo { OnlyTrue, OnlyFalse, TrueOrNone, FalseOrNone }
- 判断:
playerHas(Player, Flags, boolean)、playerHas(Player, Flags, FlagCombo)、has(Flags, boolean)、groupHas(...)
- 静态:
FlagPermissions.has(Location, Flags, boolean)、getPerms(Location/Player/World)
- 修改:
setFlag(String, FlagState)、setPlayerFlag(...)、setGroupFlag(...)
ResidencePermissions 额外:hasResidencePermission(...)、applyTemplate(...)、applyDefaultFlags()、setOwner(...)、mirrorPlayerFlags(...)
CuboidArea(protection)
CuboidArea(Location, Location)、containsLoc(Location)、checkCollision(CuboidArea)、isAreaWithinArea(CuboidArea)、getSize()、getXSize()、getYSize()、getZSize()、getHighLoc()、getLowLoc()、getWorld()、getCost(PermissionGroup)、getChunks()
ResidencePlayer(containers)
getPlayerName()、getUniqueId()、getPlayer()、isOnline()、getResAmount()、getResList()、getMainResidence()、getMaxRes()、getMaxX()、getMaxZ()、getMaxSubzones()、getMaxSubzoneDepth()、getMaxRents()、getGroup()、canBreakBlock(...)、canPlaceBlock(...);静态:ResidencePlayer.get(Player/String/UUID)
PermissionGroup(permissions)
getMaxX()、getMaxZ()、getMaxZones()、getMaxSubzones()、getMaxSubzoneDepth()、getMaxRents()、getMaxRentDays()、getCostperarea()、getSellperarea()、canCreateResidences()、canBuyLand()、canSellLand()、hasTpAccess();静态:PermissionGroup.getGroup(Player/UUID[, world])
ResidenceBank(economy)
getStoredMoney()、getStoredMoneyFormated()、add(double)、subtract(double)、hasEnough(double)、deposit(...)、withdraw(...)
ChatChannel(chat)
getChannelName()、chat(String source, String message)、join(UUID)、leave(UUID)、hasMember(UUID)、memberCount()
租赁数据类(economy.rent)
RentedLand:字段 player、startTime、endTime、AutoPay;方法 hasValidRenter()、getRenterName()、getUniqueId()
RentableLand:字段 days、cost、AllowRenewing、StayInMarket、AllowAutoPay
EconomyInterface(economy)
getBalance(...)、canAfford(...)、add(...)、subtract(...)、transfer(from, to, amount)、getName()、format(double)
LeaseManager(protection)
leaseExpires(...)、isLeased(...)、getExpireTime(...)、setExpireTime(...)、renewArea(...)、getRenewCostD(...)、doExpirations()
事件列表(共 27 个)
事件包:com.bekvon.bukkit.residence.event。带 RESIDENCE_* 常量的事件在源码中以 super("...") 传入事件名;可取消事件继承 CancellableResidence* 系列或实现 Cancellable。
| # |
事件类 |
事件常量 |
继承 |
关键方法 |
| 1 |
ResidenceEvent |
—(基类) |
Event |
getResidence()、getMessage();静态 call/callSync/callAsync |
| 2 |
CancellableResidenceEvent |
—(基类) |
ResidenceEvent |
isCancelled()、setCancelled(boolean) |
| 3 |
CancellableResidencePlayerEvent |
—(基类) |
ResidencePlayerEvent |
isCancelled()、setCancelled(boolean) |
| 4 |
CancellableResidencePlayerFlagEvent |
—(基类) |
ResidencePlayerFlagEvent |
isCancelled()、setCancelled(boolean) |
| 5 |
ResidencePlayerEvent |
—(基类) |
ResidenceEvent |
getPlayer()、isPlayer()、isAdmin() |
| 6 |
ResidencePlayerEventInterface |
—(接口) |
— |
isAdmin()、isPlayer()、getPlayer() |
| 7 |
ResidencePlayerFlagEvent |
—(基类) |
ResidenceFlagEvent |
旗帜方法 + getPlayer() |
| 8 |
ResidenceFlagEvent |
—(基类) |
ResidenceEvent |
getFlag()、getFlagType()、getFlagTargetPlayerOrGroup() |
| 9 |
ResidenceFlagCheckEvent |
RESIDENCE_FLAG_CHECK |
ResidenceFlagEvent |
isOverriden()、overrideCheck(boolean)、getDefaultValue() |
| 10 |
ResidenceFlagChangeEvent |
RESIDENCE_FLAG_CHANGE |
CancellableResidencePlayerFlagEvent |
getNewState() |
| 11 |
ResidenceOwnerChangeEvent |
RESIDENCE_OWNER_CHANGE |
ResidenceEvent |
getNewOwner()、getNewOwnerUuid() |
| 12 |
ResidenceCreationEvent |
RESIDENCE_CREATE |
CancellableResidencePlayerEvent |
getResidenceName()、getPhysicalArea() |
| 13 |
ResidenceDeleteEvent |
RESIDENCE_DELETE |
CancellableResidencePlayerEvent |
getCause()(LEASE_EXPIRE / PLAYER_DELETE / OTHER) |
| 14 |
ResidenceRentEvent |
RESIDENCE_RENT_EVENT |
CancellableResidencePlayerEvent |
getCause()(RENT / UNRENT / RENTABLE / UNRENTABLE / RENT_EXPIRE) |
| 15 |
ResidenceAreaAddEvent |
RESIDENCE_AREA_ADD |
CancellableResidencePlayerEvent |
getResidenceName()、getPhysicalArea() |
| 16 |
ResidenceAreaDeleteEvent |
RESIDENCE_AREA_DELETE |
CancellableResidencePlayerEvent |
getCause() |
| 17 |
ResidenceChatEvent |
RESIDENCE_CHAT_EVENT |
CancellableResidencePlayerEvent |
getChatMessage() / setChatMessage()、getChatprefix() / setChatprefix() |
| 18 |
ResidenceCommandEvent |
—(Bukkit 事件) |
Event |
getCommand()、getArgs()、getSender() |
| 19 |
ResidenceChangedEvent |
RESIDENCE_CHANGE |
ResidencePlayerEvent |
getFrom()、getTo() |
| 20 |
ResidenceTPEvent |
RESIDENCE_TP |
CancellableResidencePlayerEvent |
getRequestingPlayer()、getTeleportLocation() |
| 21 |
ResidenceRenameEvent |
RESIDENCE_RENAME |
CancellableResidenceEvent |
getNewResidenceName()、setNewResidenceName()、getOldResidenceName() |
| 22 |
ResidenceSizeChangeEvent |
RESIDENCE_SIZE_CHANGE |
CancellableResidencePlayerEvent |
getOldArea()、getNewArea() |
| 23 |
ResidenceSubzoneCreationEvent |
RESIDENCE_SUBZONE_CREATE |
CancellableResidencePlayerEvent |
getResidenceName() / setResidenceName()、getPhysicalArea() / setPhysicalArea() |
| 24 |
ResidenceRaidStartEvent |
—(Bukkit 事件) |
Event |
getRes()、getAttackers()、getDefenders() |
| 25 |
ResidenceRaidPreStartEvent |
—(Bukkit 事件) |
Event |
getRes()、getAttackers()、getDefenders() |
| 26 |
ResidenceRaidEndEvent |
—(Bukkit 事件) |
Event |
getRes() |
| 27 |
ResidenceSelectionVisualizationEvent |
—(Bukkit 事件) |
PlayerEvent |
getAreas()、getErrorAreas()、isShortShow() |
Flags 权限旗帜
- 枚举类:
com.bekvon.bukkit.residence.containers.Flags
- 相关枚举:
FlagState { TRUE, FALSE, NEITHER, INVALID }、FlagCombo { OnlyTrue, OnlyFalse, TrueOrNone, FalseOrNone }、FlagMode { Player, Residence, Both }
- 工具方法:
Flags.getFlag(String)、getDesc()、getFlagMode()、isEnabled()
- 共 139 个可用 flag(已排除源码注释项 overridepvp):
anvil, admin, animalfeeding, animalgriefing, animalkilling, animals, anchor, anvilbreak, safezone, backup, bank, bed, honey, honeycomb, beacon, brew, build, burn, button, boarding, brush, cake, canimals, cartography, chorustp, chat, cmonsters, commandblock, command, container, coords, copper, copperoxidation, coraldryup, creeper, dragongrief, day, dye, damage, decay, destroy, dryup, diode, door, egg, enchant, explode, elytra, enderpearl, fallinprotection, falldamage, feed, friendlyfire, fireball, firespread, fletching, flowinprotection, flow, flowerpot, grow, glow, goathorn, golemopenchest, grindstone, harvest, hotfloor, hidden, hook, healing, iceform, icemelt, ignite, itemdrop, itempickup, jump2, jump3, keepinv, keepexp, lavaflow, leash, lever, loom, minecartsuction, mobexpdrop, mobgriefing, mobitemdrop, mobkilling, monsters, move, nametag, nanimals, nmonsters, night, nofly, fly, nomobs, note, nodurability, pressure, piston, pistonprotection, place, push, pvp, raid, rain, respawn, riding, shoot, sun, shop, snowtrail, spread, skulk, smithing, snowball, sanimals, shear, smonsters, stonecutter, subzone, title, table, tnt, tp, trade, trample, use, visualizer, vehicledestroy, vehicleplacing, witherspawn, phantomspawn, windexplode, witherdamage, witherdestruction, waterflow, wspeed1, wspeed2
常用速查:
| flag |
说明 |
| build / destroy / place |
建造破坏总开关 / 仅破坏 / 仅放置 |
| use / container |
交互总开关 / 容器使用 |
| pvp |
领地内 PvP |
| tnt / explode / creeper / fireball |
爆炸相关 |
| firespread / ignite |
火焰蔓延 / 点火 |
| mobgriefing / animalgriefing |
怪物 / 动物破坏 |
| animalkilling / mobkilling |
击杀动物 / 击杀怪物 |
| monsters / nmonsters / nomobs |
怪物生成相关 |
| itempickup / itemdrop |
拾取 / 丢弃物品 |
| move |
移动限制(禁止进出) |
| tp / enderpearl / chorustp |
传送相关 |
| bank |
领地银行存取 |
| subzone |
创建子领地 |
| admin |
修改领地 flags |
| chat / title / hidden / coords / visualizer |
聊天 / 提示 / 隐藏 / 坐标 / 粒子 |
| keepinv / keepexp / respawn |
死亡保留物品 / 经验、自动重生 |
| fly / nofly / elytra / wspeed1 / wspeed2 |
飞行与速度 |
| jump2 / jump3 |
跳跃高度 |
| day / night / sun / rain |
时间与天气 |
FlagPermissions perms = res.getPermissions();
boolean canBuild = perms.playerHas(player, Flags.build, true);
perms.setFlag("build", FlagPermissions.FlagState.FALSE);
变量(PlaceholderAPI)
注册与格式说明
- 插件内置 PAPI 扩展(
Placeholders/PlaceholderAPIHook.java),identifier 为 residence,加载后自动注册(persist: true),无需额外扩展。
- 所有变量以
%residence_ 开头;带参数变量把参数直接拼接在末尾。
- 游戏内可使用
/res placeholders 查看变量列表。
- 普通变量按玩家缓存 1000ms;带参数变量不缓存。
变量完整列表(共 31 个)
A. 玩家领地信息
| 变量 |
描述 |
%residence_user_main_name% |
玩家“主领地”名称,无则空 |
%residence_user_main_owner% |
玩家主领地所有者 |
%residence_user_amount% |
玩家拥有领地数量 |
B. 权限组与限制
| 变量 |
描述 |
%residence_user_group% |
玩家权限组名 |
%residence_user_admin% |
是否领地管理员(true/false) |
%residence_user_cancreate% |
组是否允许创建领地 |
%residence_user_maxres% |
最大领地数量 |
%residence_user_maxew% |
东西范围(minX-maxX) |
%residence_user_maxns% |
南北范围(minZ-maxZ) |
%residence_user_maxud% |
高度范围(minYSize-maxYSize) |
%residence_user_maxsub% |
最大子领地数量 |
%residence_user_maxsubdepth% |
最大子领地层级 |
%residence_user_maxrents% |
最大可租赁数量 |
%residence_user_maxrentdays% |
最长租赁天数 |
%residence_user_blockcost% |
每方块购买价格 |
%residence_user_blocksell% |
每方块出售价格 |
C. 当前所在领地(按玩家当前位置实时计算)
| 变量 |
描述 |
%residence_user_current_owner% |
当前领地所有者 |
%residence_user_current_res% |
当前领地名称(子领地含“父.子”前缀) |
%residence_user_current_resname% |
当前领地原始名称 |
%residence_user_current_bank% |
领地银行余额(无领地返回 0) |
%residence_user_current_qsize% |
领地总体积 |
%residence_user_current_ssize% |
领地水平面积(XZ) |
%residence_user_current_forsale% |
是否出售中 |
%residence_user_current_saleprice% |
出售价格 |
%residence_user_current_forrent% |
是否出租中 |
%residence_user_current_rentprice% |
租金 |
%residence_user_current_rentdays% |
租赁天数 |
%residence_user_current_rentedby% |
承租人 |
%residence_user_current_rentends% |
租赁到期时间(按配置短日期格式) |
D. 带参数变量
| 变量 |
描述 |
%residence_user_current_flag_<flag名>% |
玩家在当前领地对某 flag 的判定(TrueOrNone),返回 true/false。示例:%residence_user_current_flag_build% |
%residence_ownername_<领地名>% |
描述为“根据领地名获取领主名”,但源码实际返回领地名称;取领主名建议使用 %residence_user_current_owner% 或 %residence_user_main_owner% |
使用示例
我的领地数量: %residence_user_amount%
所在领地: %residence_user_current_res% (主人: %residence_user_current_owner%)
领地银行: %residence_user_current_bank%
建造权限: %residence_user_current_flag_build%
可租赁上限: %residence_user_maxrents%
注意事项
- 需安装 PlaceholderAPI;扩展随 Residence 自动注册。
- 普通变量有 1000ms 缓存;
current_* 变量依赖玩家在线位置。
- 布尔结果取自语言文件(默认 true/false)。
current_bank / qsize / ssize 无领地时返回 0,其余当前领地为空串。
- 变量列表与 6.0.2.3 / master 源码一致(31 项)。
代码示例
import com.bekvon.bukkit.residence.api.ResidenceApi;
import com.bekvon.bukkit.residence.containers.Flags;
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
ClaimedResidence res = ResidenceApi.getResidenceManager().getByLoc(player.getLocation());
if (res != null && res.getPermissions().playerHas(player, Flags.build, true)) {
// 玩家有权在此建造
}
@EventHandler
public void onResidenceCreate(ResidenceCreationEvent e) {
if (e.getResidenceName().equalsIgnoreCase("spawn")) {
e.setCancelled(true);
}
}
指令列表(完整)
- 主命令:
/res(别名 /residence);管理命令:/resadmin;插件管理:/resreload、/resload;领地聊天:/rc
- 支持通过
/res <命令> ? 或附加页码查看帮助(如 /res select ?、/res market ?、/res flags ?)
- 以下列表整理自插件内置帮助(Language 文件 CommandHelp 树)与 commands 包源码
1. 选区与创建
| 指令 |
说明 |
/res select [x] [y] [z] |
选区命令(以你为中心按尺寸选区) |
/res select coords |
显示选区坐标 |
/res select size |
显示选区尺寸 |
/res select auto [玩家名称] |
开启自动选区工具 |
/res select cost |
显示选区价格 |
/res select vert |
纵向扩展到最大高度和深度 |
/res select sky |
扩展到最大高度 |
/res select bedrock |
扩展到最大深度 |
/res select expand <长度> |
向面对方向扩展选区 |
/res select shift <距离> |
向面对方向平移选区 |
/res select chunk |
选择你所在的区块 |
/res select residence <领地名称> |
选择领地中一个存在的区域 |
/res select worldedit |
以 WorldEdit 当前选区作为领地选区 |
/res auto [领地名称] [范围] |
以你为中心创建可创建的最大领地 |
/res create [领地名称] |
创建领地 |
/res expand <领地名称> [长度] |
向面对方向扩展领地 |
/res contract <领地名称> [长度] |
向面对方向缩小领地 |
/res remove [领地名称] |
删除领地(需 /res confirm 确认) |
/res confirm |
确认删除指定领地 |
2. 领地信息与查询
| 指令 |
说明 |
/res info [领地名称] |
显示领地的信息(留空为当前领地) |
/res current |
显示你当前所在的领地 |
/res list <玩家名称> <页码> <世界名称> |
显示玩家的领地列表 |
/res listall <页码> <世界名称> <-a/-f> |
列出所有的领地 |
/res listhidden <玩家名称> <页码> |
列出玩家的隐藏领地 |
/res listallhidden <页码> |
列出服务器中的所有隐藏领地 |
/res sublist <领地名称> <页码> |
列出指定领地的所有子领地 |
/res check [领地名称] [权限] <玩家名称> |
查看权限状态 |
/res limits <玩家名称> |
显示你的领地限制 |
/res show <领地名称> |
显示领地的边界 |
/res compass <领地名称> |
将指南针指向领地 |
/res tool |
显示选区/查看领地信息的工具名称 |
/res material [材料ID] |
通过 ID 查看是否存在对应的材料 |
/res version |
显示领地插件版本 |
3. 区域与子领地
| 指令 |
说明 |
/res area list [领地名称] <页码> |
列出领地的区域 |
/res area listall [领地名称] <页码> |
列出领地区域的坐标和详细信息 |
/res area add [领地名称] [区域ID] |
为领地添加区域(需先选中两个选取点) |
/res area remove [领地名称] [区域ID] |
删除领地的区域 |
/res area replace [领地名称] [区域ID] |
替换领地的区域(需先选中两个选取点) |
/res renamearea [领地名称] [区域旧名称] [区域新名称] |
修改领地区域名称 |
/res subzone <领地名称> [子领地名称] |
在领地中创建子领地 |
4. 权限管理
| 指令 |
说明 |
/res set <领地名称> [权限] [true/false/remove] |
为领地设置公共权限 |
/res pset <领地名称> [玩家名称] [权限] [true/false/remove] |
为玩家设置特定权限(removeall 清除全部) |
/res gset <领地名称> [权限组] [权限] [true/false/remove] |
为权限组设置特定权限 |
/res flags ? |
查看权限(flag)列表 |
/res clearflags <领地名称> |
清除领地所有权限 |
/res reset <领地名称/all> |
将领地重置为默认权限 |
/res setall [权限] [true/false/remove] |
设置自己所有领地的公共权限 |
/res setallfor [玩家名称] [权限] [true/false/remove] |
设置指定玩家所有领地的公共权限 |
/res mirror [来源领地] [目标领地] |
克隆领地权限 |
/res pmirror [领地] [来源玩家] [目标玩家] |
克隆玩家在领地中的权限 |
/res lset <领地名称> [blacklist/ignorelist] [物品] |
物品黑名单/忽略名单(info 查看现状) |
/res lists add/remove/apply/set/pset/gset/view |
预定义权限列表管理 |
pset 支持快捷组合权限:trusted(build+use+move+container+tp)、redstone(lever+diode+button+pressure+note)、admin(领地管理)。
5. 玩家与所有权
| 指令 |
说明 |
/res padd <领地名称> [玩家名称] |
向领地添加玩家(基本权限) |
/res pdel <领地名称> [玩家名称] |
从领地删除玩家(基本权限) |
/res give <领地名称> [玩家名称] <-s> |
将领地给予指定玩家(<-s> 含子领地) |
/res rename [旧名称] [新名称] |
重命名领地 |
/res setmain <领地名称> |
设置为主领地(用于聊天前缀) |
/res message <领地名称> [enter/leave] [消息文本] |
设置进入/离开提示(变量:%player、%playerDisplay、%owner、%residence、%zone) |
/res command <领地名称> <allow/block/list> <命令> |
管理领地允许/禁止的命令 |
/res kick <玩家名称> |
将玩家踢出领地 |
/res bank [deposit/withdraw] <领地名称> [数额] |
领地银行存取(需 bank 权限) |
/res removeall [玩家名称] |
删除玩家的所有领地(需 resadmin 权限) |
/res removeworld [世界名称] <例外玩家> |
删除指定世界所有领地(仅控制台) |
/res signconvert |
转换 ResidenceSign 的告示牌 |
/res signupdate |
更新领地告示牌 |
6. 领地市场(/res market)
| 指令 |
说明 |
/res market ? |
市场帮助 |
/res market Info [领地名称] |
查看领地经济信息(出售/出租状态与价格) |
/res market list [rent/sell] |
列出正在出租/出售的领地 |
/res market sell [领地名称] [售价] |
出售领地 |
/res market buy [领地名称] |
购买领地 |
/res market unsell [领地名称] |
取消出售 |
/res market sign [领地名称] |
设置市场告示牌 |
/res market rent [领地名称] <自动续租> |
租用领地 |
/res market rentable [领地名称] [价格] [天数] <可续租> <留在市场> <可自动续租> |
将领地设为出租 |
/res market autopay [领地名称] [true/false] |
开关领地自动续租 |
/res market payrent [领地名称] |
支付租金 |
/res market confirm |
确认退租操作 |
/res market unrent [领地名称] |
退租 / 取消出租 |
7. 领地聊天(/res rc、/rc)
| 指令 |
说明 |
/res rc [领地名称] |
加入指定或当前领地的聊天频道 |
/res rc leave |
离开领地聊天频道 |
/res rc setcolor [颜色代码] |
设置频道文字颜色 |
/res rc setprefix [前缀] |
设置频道前缀 |
/res rc kick [玩家名称] |
从频道中踢出玩家 |
/rc |
聊天快捷命令(/rc l、/rc setprefix、/rc setcolor、/rc kick) |
8. 领地商店(/res shop)
| 指令 |
说明 |
/res shop list |
显示领地商店列表 |
/res shop vote <领地名称> [分数] |
为领地商店评分 |
/res shop like <领地名称> |
为领地商店点赞 |
/res shop votes <领地名称> <页码> |
列出领地商店的评分 |
/res shop likes <领地名称> <页码> |
列出领地商店的赞 |
/res shop setdesc [描述文字] |
设置商店描述(支持颜色代码,/n 换行) |
/res shop createboard [位置] |
创建商店宣传板 |
/res shop deleteboard |
移除商店宣传板 |
9. 袭击系统(Raid)
| 指令 |
说明 |
/res raid start [领地名称] <玩家名称> |
开始对领地的袭击 |
/res raid stop [领地名称] |
停止袭击 |
/res raid kick [玩家名称] |
踢出袭击参与者 |
/res raid immunity [add/take/set/clear] [领地名称/当前领地] [时长] |
设置袭击免疫 |
/res raidstatus <领地名称/玩家名称> |
查看领地袭击状态 |
/res attack [领地名称] |
开始对领地进行袭击 |
/res defend [领地名称] <玩家名称> |
加入袭击防守 |
/res leaveraid |
离开袭击 |
10. 领地租约(/res lease、/resadmin lease)
| 指令 |
说明 |
/res lease cost [领地名称] |
显示续租的价格 |
/res lease renew [领地名称] |
续租指定领地 |
/resadmin lease set [领地名称] [天数/infinite] |
设置租用时间(天数或无限) |
/resadmin lease renew <领地名称> |
续租指定或当前领地 |
/resadmin lease list <领地名称> <页码> |
显示领地的租用列表 |
/resadmin lease expires <领地名称> |
显示租约到期时间 |
/resadmin lease cost <领地名称> |
显示续租价格 |
11. 传送相关
| 指令 |
说明 |
/res tp [领地名称] |
传送到领地(需所有者或 tp 权限) |
/res tpset |
设置领地传送点(需站在领地内) |
/res tpconfirm |
忽略传送不安全的警告 |
/res unstuck |
传送到领地外面 |
/res rt <世界名称> <玩家名称> |
随机传送 |
12. 系统与管理(/resadmin 与顶层命令)
| 指令 |
说明 |
/resadmin [on/off] |
开启/关闭领地管理员模式 |
/resadmin setowner [领地名称] [玩家名称] (-keepflags) |
改变领地所有者 |
/resadmin setallowner [原拥有者] [新拥有者] (-keepflags) |
转让玩家名下所有领地 |
/resadmin server [领地名称] |
将领地设置为服务器拥有 |
/res save [领地名称] |
将领地保存为模板 |
/res restore [领地名称] [序号] |
从模板还原领地 |
/res reload [config/lang/groups/flags] |
重新加载配置/语言/组/权限 |
/res resadmin [on/off] |
管理员开关(/res 子命令形式) |
/res placeholders <parse> <placeholder> <玩家名称> |
列出并解析 Placeholder 变量 |
/resreload |
重新加载领地插件 |
/resload |
加载领地存档文件(不安全,不会先保存) |
以上为插件内置帮助树整理的全部指令;不同版本可能略有差异,以游戏内 /res ? 帮助为准。
注意事项与已知偏差
%residence_ownername_<领地名>%:描述为获取领主名,但 6.0.2.3 / master 源码实际返回领地名称(疑为源码 Bug)。
- 普通变量 1000ms 缓存;带参数变量实时计算。
current_* 系列依赖玩家在线位置,批量调用时注意。
- 布尔输出走语言文件(默认 true/false)。
- 本文档适用于 Residence 6.x;旧版(4.x 等)事件与接口可能不同。
ResidenceChatEvent 使用 CMILib 的 CMIChatColor 类型。
本文档基于 Zrips/Residence 6.0.2.3 官方源码整理。