命令
通常情况下,命令不可以用于创建或设置商店。下文列出的多数命令只能给管理员使用。每个命令对应的权限节点可以在权限列表找到。
命令参数:
[可选参数]
:不一定要填入的参数。但是,部分情况下某些参数只会是可选的,例如以玩家身份执行或是看向目标商店实体时。<必选参数>
:必须填入的参数。<参数1|参数2>
:可替代参数。可以输入参数1
或者参数2
。<'文本'>
:字面意义的参数,需要将引号内的字当做参数填入。[商店名称]
:除非额外标注,否则需要看向商店实体、指定商店名称、ID 或唯一 ID。[玩家名称]
:除非额外标注,如果不指定玩家名称,则受影响目标为执行命令的玩家。[页码]
:若不填则默认为第1
页。
命令列表
/shopkeeper help
显示可用命令。玩家没有权限执行的命令会被隐藏。
/shopkeeper [商店类型] [物体类型]
在指定方块的位置创建管理员商店。
如果配置文本中启用了允许命令创建玩家商店,且未指定商店类型,同时玩家执行命令时看向容器(如箱子),则执行命令后会创建玩家商店村民实体。
/shopkeeper reload
重载插件。这会保存任何尚未保存的变动,之后再重载配置文件、
/shopkeeper notify <'trades'>
切换本次游戏登录期间交易提醒的开关。
/shopkeeper lisy [玩家名称|'admin'(管理员)|'all'(全部)] [页码]
查询玩家拥有的商店(若未指定玩家或 'admin'
以表示管理员商店),指定玩家的商店或所有管理员商店。列出的内容会分页显示。
/shopkeeper remove [商店名称]
移除指定的商店实体。你需要看向商店、指定 ID 、唯一 ID 或其名称才可移除。
/shopkeeper removeAll [玩家名称|'player'(所有玩家)|'admin'(所有管理员)]
移除指定玩家拥有的所有商店(若未指定参数),或者其他玩家的商店、所有玩家的商店、或者所有管理员商店。该命令需要通过 /shopkeeper confirm
确认操作。
/shopkeeper give [玩家名称] [数量]
给予指定玩家特定数量的商店创建物品。
/shopkeeper giveCurrency [玩家名称] ['base'|'high'] [数量]
给予指定玩家特定数量在配置文本中预先设置好的货币物品。
/shopkeeper setCurrency ['base'|'high']
将手中的物品设置为指定的货币物品。
/shopkeeper remote [商店名称] [玩家名称]
远程打开制定商店。商店可以通过名称、ID、唯一 ID 或看向实体选中。另外,如果命令执行者拥有 shopkeeper.remote.otherplayer
权限,则商店可以为其他玩家打开。
/shopkeeper edit [商店名称]
允许通过看向商店、指定 ID 或唯一 ID 的方式远程编辑它们。
/shopkeeper transfer <新拥有者>
将商店所有权转让给其他玩家。
/shopkeeper setTradePerm [商店名称] <权限节点|'-'|'?'>
设置、移除(-
)或显示(?
)管理员交易商店的权限。玩家尝试与指定商店交易时,除了插件本身的权限之外,还会额外要求通过该命令设置的权限。
你可以使用任何文本当做交易权限。例如 /shopkeeper setTradePerm Bob my.custom.permission
将会在玩家试图与名为 Bob
的商店交易时要求拥有 my.custom.permission
权限。
/shopkeeper setTradedCommand <命令|'-'|'?'>
设置设置、移除(-
)或显示(?
)商店内交易手中物品后执行的命令。
示例:/shopkeeper setTradedCommand say Hello world!
另见出售命令章节。
/shopkeeper setForHire [商店名称]
将指定商店出租。将用作租赁价格的物品放在手中并看向商店或对应商店的容器。这会允许玩家通过支付租赁费用来租借商店并管理该商店。
/shopkeeper editVillager [村民类型]
打开指定村民或流浪商人的编辑器。村民/流浪商人可以通过 UUID 或看向它选中。
Shopkeeper 快照命令
/shopkeeper snapshot list [商店名称] [页码]
列出商店的快照备份。
/shopkeeper snapshot create [商店名称] <快照名称>
创建指定名称的商店快照。名称不允许包含彩色代码或空格。
/shopkeeper snapshot remove [商店名称] <快照名称|快照 ID>
通过名称或 ID 移除指定的商店快照。
调试与辅助命令
/shopkeeper confirm
执行某些危险的操作时,插件会要求执行一次这个命令(如通过命令删除所有商店)
/shopkeeper replaceAllWithVanillaVillagers
删除所有村民商店,并将其替换为原版的无 AI 村民,几乎与插件相同。将存档转化为原版 Minecraft 时会很有用。例如在服务器关闭时,想要玩家能够下载存档并使用地图内的商店。
尚不支持实体装备,因为原版村民会在某些情况下扔掉它们的装备,且无法控制。
这个命令需要如下权限:shopkeeper.debug
、shopkeeper.remove-all.player
以及 shopkeeper.remove-all.admin
/shopkeeper cleanupCitizensShopkeepers
移除所有无效的 Citizens 商店。一般用于清理不存在对应 NPC 的商店。
/shopkeeper convertItems [玩家名称] ['all']
这个命令可以用于转化手持物品至 Spigot 的内部物品格式。该命令会将手中的物品经过 Spigot 物品序列化与解序列化,与在商店中交易或插件重载时发生的情况相同。
它可以用于手动修复那些不能用于交易(或不再)符合 Spigot 内部物品数据格式。见配置文件中 convert-player-items
设置项的注释。
在更新版的 Spigot 中,这个命令可能会失去其原有的效果,因为 Spigot 现在坚持使用最初的文本数据格式物品(物品显示名称、物品描述等)
/shopkeeper debug [选项]
切换指定调试选项或调试模式的开关。调试模式与调试选项可以在配置文本中设置。
开启调试模式后,插件会在多个情况下向控制台中输出额外信息,这可能有助于排查问题。
/shopkeeper check
显示有关载入区块、实体数量、载入商店与 AI 和重力处理时间的统计数据。
/shopkeeper debugCreateShops [商店数量|'testEqiupment'(测试装备)]
以调试目的创建商店。
- 参数
testEquipment
是固定的:为每种实体类型创建其可显示的固定装备。可用于测试哪些格子在对应实体上可见。商店实体会按列生成,从玩家当前位置开始,向玩家面朝的位置排列,间距 2 格。此时会忽略shopCount
参数。 - 其他情况下:创建指定数量的管理员商店(默认为
10
)。适合用于性能测试。商店实体会按列生成,从何玩家当前位置开始,向玩家面朝的位置排列,间距 1 格。
/shopkeeper checkitem
显示手持物品的调试信息,或者将主副手的物品进行比较。
/shopkeeper yaml
显示手中物品 Bukkit YAML 的格式序列化数据,及其在配置文件中应当使用的样式。输出会在控制台记录,便于复制(也因为其在游戏内过大而难以完整显示)
注意:物品的原 Minecraft NBT 数据可以通过 Minecraft 自带的 /data get entity @s
命令查看。
/shopkeeper testDamage [伤害值] [每刻攻击次数] [攻击持续刻数]
可用于调试大量攻击事件的性能。
/shopkeeper testSpawn [重复次数]
用于测量当前区块内重生成激活的商店实体所用时间。