Skip to content

Configuration

EntityParrot_ edited this page Feb 3, 2019 · 1 revision

通常情况下, 默认配置就已经提供了使Shopkeepers安装好就可以直接使用的配置合理值. 如果你想要做一些修改, 应该保留原有的注释, 上面有你需要的帮助信息.

然而, 当插件添加缺失的配置选项时(通常是因为插件更新), 所有注释都会被删掉. 你依然可以在这里找到默认的配置文件, 格式化你的配置文件同时还能找回所有注释.

或者, 也可以在这里这里找到一份实时更新的配置文件.

如果自定义配置后遇到了问题, 试试看使用默认配置时问题是否还存在.

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# Shopkeepers 配置文件
# Wiki 文档: https://github.com/Shopkeepers/Shopkeepers-Wiki/wiki/Configuration
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 决定是否需要迁移配置文件. 请不要手动修改!
config-version: 1
# 进入插件的调试模式.
debug: false
# 是否匿名报告插件使用信息到 https://bStats.org
# 所有上传的信息都可以在这里看到:
# https://bstats.org/plugin/bukkit/Shopkeepers
enable-metrics: true

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# Shopkeeper 数据
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 保存的数据文件所使用的编码格式. 如果为空, 将会使用你系统的默认编码.
# 如果你保存文件时遇到问题, 比如特殊字符不能正确保存,
# 试试把这个配置选项设置为 'UTF-8'.
file-encoding: "UTF-8"
# 是否在每次编辑完成一个 Shopkeeper 后立即保存数据文件.
# 如果禁用, 将会每5分钟/插件关闭时保存一次数据.
# 如果你的服务器拥有很多玩家/Shopkeeper,
# 出于性能考虑还是关闭这个选项比较好.
save-instantly: true

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 插件兼容性
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 插件是否应定期验证当前应该生成的所有 Shopkeeper 实体是否实际存在.
# 在你遇到 Shopkeeper 实体莫名其妙消失的问题时应该尝试启用该配置选项.
enable-spawn-verifier: false
# 如果启用, Shopkeepers 会尝试绕过阻止生成Shopkeeper实体的插件
# (比如. 领地保护插件).
bypass-spawn-blocking: true
# 如果启用, Shopkeepers 会尝试绕过阻止与Shopkeeper实体交互的插件.
bypass-shop-interaction-blocking: false

# 如果启用, 玩家会仅允许在拥有建筑权限或设置了 'allow-shop' 的 WorldGuard 区域创建商店.
enable-world-guard-restrictions: false
# 如果启用(同时还需要启用 enable-world-guard-restrictions 配置选项),
# 玩家仅允许在设置了 'allow-shop'的 WorldGuard区域内设置商店,
# 然而, 玩家仍然需要箱子的使用权限才能完成商店配置.
# 同时如果他们不能在此区域内防止箱子的话,
# 就需要有其他人提前配置好商店箱子,
# 并且需要禁用 require-chest-recently-placed 配置选项.
require-world-guard-allow-shop-flag: false
# 如果启用, 玩家只能在被 Towny 指定为商业区的地方创建商店.
enable-towny-restrictions: false

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 创建商店 (或删除商店)
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 用于创建玩家商店的工具.
shop-creation-item: VILLAGER_SPAWN_EGG
# 商店创建工具的显示名. 设置空值以忽略.
shop-creation-item-name: ""
# 商店创建工具的Lore. 设置空值以忽略.
shop-creation-item-lore: []
# 是否阻止商店创建工具的正常使用. 拥有忽略权限(通常是管理员)的玩家可以忽略此设置.
prevent-shop-creation-item-regular-usage: false
# 当点击商店删除按钮后, 是否返还商店创建工具.
deleting-player-shop-returns-creation-item: false

# 是否允许玩家使用 /shopkeeper 命令创建商店.
create-player-shop-with-command: false

# 创建玩家商店时选定的箱子是否要求是近期放置的.
require-chest-recently-placed: true
# 玩家商店可以放置离商店供货箱的最远距离.
# 这个值不能超过50.
max-chest-distance: 15
# 是否阻止玩家商店供货箱被破坏.
# 建议启用此选项.
protect-chests: true
# 是否在商店供货箱被破坏后删除该玩家商店.
delete-shopkeeper-on-break-chest: false

# 默认情况下玩家可以创建的商店数量最大值.
# 设置为 0 来允许玩家创建无数个商店.
max-shops-per-player: 0
# 一个权限节点列表, 可用于显式设置特定玩家或玩家组可以拥有的最大商店数.
# 使用 shopkeeper.maxshops.<数量> 权限节点来使用这一特性.
max-shops-perm-options: 5,15,25

# 如果启用(即设置大于0的值), 每次插件启动时, Shopkeepers 都会检查并删除不活跃玩家的商店.
# 此项配置选项决定距离玩家上次登录多少天后将玩家视为不活跃状态.
player-shopkeeper-inactive-days: 0

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 商店(实体)类型
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 一个可以被作为 Shopkeeper 实体的生物类型清单.
# 不支持在此处向默认值添加新的生物类型,
# 因为一些生物类型可能会不正常工作或者造成各种各样的问题.
enabled-living-shops:
- VILLAGER
- COW
- MUSHROOM_COW
- SHEEP
- PIG
- CHICKEN
- OCELOT
- RABBIT
- WOLF
- SNOWMAN
- IRON_GOLEM
- POLAR_BEAR
- BLAZE
- SILVERFISH
- SKELETON
- STRAY
- WITHER_SKELETON
- SPIDER
- CAVE_SPIDER
- CREEPER
- WITCH
- ENDERMAN
- ZOMBIE
- ZOMBIE_VILLAGER
- PIG_ZOMBIE
- HUSK
- GIANT
- GHAST
- SLIME
- MAGMA_CUBE
- SQUID
- EVOKER
- VEX
- VINDICATOR
- ILLUSIONER
- PARROT
- TURTLE
- PHANTOM
- COD
- SALMON
- PUFFERFISH
- TROPICAL_FISH
- DROWNED
- DOLPHIN

# 在旧的 Shopkeepers 实体行为管理模式下, Shopkeepers 实体可以被推走,
# 并且它们的 AI 和重力由 Minecraft 负责处理.
# 而在新的 Shopkeepers 实体行为管理模式下, 它们的所有原生 AI 都被禁用,
# 并且重力和行为等由插件负责处理.
use-legacy-mob-behavior: false
# Shopkeepers 实体是否受重力影响.
disable-gravity: false
# 一个以玩家为圆心, 区块为单位的范围, 范围内的 Shopkeepers 实体将会受到重力影响.
# 设定的值过高可能对性能由负面影响.
# 如果设置在服务器的实体跟踪范围之下, 将会使玩家能够看到在半空中漂浮的 Shopkeepers 实体, 
# 直到玩家足够接近它们(并使它们受到重力影响).
# 设置为0将会使 Shopkeepers 实体即使和玩家在同一区块, 也无法受到重力影响.
# 如果重力选项被禁用, 或使用旧的 Shopkeepers 实体行为管理模式, 那么此配置选项没有任何作用.
gravity-chunk-range: 4

# 是否允许怪物型 Shopkeeper 实体发出声音.
silence-living-shop-entities: true

# 是否为怪物型 Shopkeeper 实体显示头顶民牌.
show-nameplates: true
# 是否一直显示头顶名牌. 如果禁用, 头顶名牌仅会在玩家直视 Shopkeeper 实体后显示.
# 请注意: 自 Minecraft 1.8以后, 此配置选项可能不再有效.
always-show-nameplates: false
# 头顶名牌的前缀(方便与玩家区分开).
nameplate-prefix: "&a"

# 是否允许创建 Citizen(NPC)商店. 需要前置插件 Citizens.
enable-citizen-shops: false

# 是否允许创建牌子商店
enable-sign-shops: true
# 是否允许创建立牌商店(与之对应的是挂墙牌子商店).
enable-sign-post-shops: true
# 牌子商店第一行显示的内容.
sign-shop-first-line: "[SHOP]"

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 命名
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 插件使用正则表达式来验证商店的显示名. 
# 想要了解更多关于正则表达式的信息请查阅此 Java 文档:
# https://docs.oracle.com/javase/9/docs/api/java/util/regex/Pattern.html
# 这里有一些示例:
# * "[A-Za-z0-9 ]{3,25}": 默认值. 允许输入数字和字母, 要求 3 到 25 个字符长.
# * "[A-Za-z0-9& ]{3,25}": 和默认值一样, 但是允许输入颜色代码符号.
# * ".*": 允许输入任何内容.
name-regex: "[A-Za-z0-9 ]{3,25}"
# 能否通过物品来重命名玩家商店.
# 这将会隐藏编辑器的重命名按钮.
naming-of-player-shops-via-item: false
# 是否允许重命名玩家型NPC(Citizen) Shopkeepers 实体.
# 默认情况下这种类型的商店会被命名为主人的名字.
allow-renaming-of-player-npc-shops: false

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 编辑器菜单
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 编辑器菜单的标题.
editor-title: "Shopkeeper Editor"

# 编辑器中用于表示 "重命名此商店" 按钮的物品(类型).
# 同时指定重命名工具(如果启用)
name-item: NAME_TAG
# 重命名工具所需的指定Lore. 设置空值以忽略.
name-item-lore: []

# 玩家商店的编辑器是否包含打开商店库存箱的选项.
# 请注意: 这将会覆盖编辑器的重命名按钮!
enable-chest-option-on-player-shop: false
# 编辑器中用于表示 "打开商店库存箱" 按钮的物品(类型).
chest-item: CHEST

# 编辑器中用于表示 "删除此商店" 按钮的物品(类型).
delete-item: BONE

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 非 Shopkeepers 村民
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 是否禁用和常规村民的交易行为.
disable-other-villagers: false
# 是否禁止生成常规村民.
block-villager-spawns: false
# 是否可以租用常规村民.
hire-other-villagers: false

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 出租
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 在玩家商店中用于表示 "出租此商店" 按钮的物品(类型),
# 以及雇佣非 Shopkeepers 村民所花费的物品(类型).
hire-item: EMERALD
# 雇佣所需的物品的显示名. 设置空值以忽略.
hire-item-name: ""
# 雇佣所需的物品的Lore. 设置空值以忽略.
hire-item-lore: []
# 雇佣一名非 Shopkeepers 村民的花费.
hire-other-villagers-costs: 1
# 当玩家的商店正在出租时, 箱子容器的标题.
for-hire-title: "For Hire"
# 租用一个商店时, 租下的玩家是否需要拥有创建该类型商店的权限.
hire-require-creation-permission: true

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 交易
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 是否阻止玩家与自己的 Shopkeeper 交易.
# 建议启用此选项.
prevent-trading-with-own-shop: true
# 启用此选项后, Shopkeeper无法在其主人在线的情况下交易.
# 这可能在希望强制玩家与其他在线玩家直接交易的角色扮演(RPG)服务器中很有用.
prevent-trading-while-owner-is-online: false
# Minecraft 在某些情况下允许使用不完全匹配的物品来交易
# (举个例子. 带有额外数据的物品可以用来交易).
# 启用此选项后 Shopkeepers 将会在玩家提供的物品完全匹配交易要求物品后才完成交易.
use-strict-item-comparison: false
# 是否在插件文件夹中记录所有通过 Shopkeepers 完成的交易为一份 .csv 文件.
# 请注意: 目前此功能可能不适用于系统商店, 所以不要依赖于使用它来检查系统商店的交易正确性!
enable-purchase-logging: false

# 应从玩家商店收入中回收的营业额百分比(收税).
tax-rate: 0
# 在计算玩家商店交易税时是向上舍入(true)还是向下舍入(false).
tax-round-up: false

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 货币
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

# 玩家商店中使用的货币物品类型.
currency-item: EMERALD
# 货币(物品)的显示名. 设置空值以忽略.
currency-item-name: ""
# 货币(物品)的Lore. 设置空值以忽略.
currency-item-lore: []

# 当玩家没有设置价格时的占位符.
zero-currency-item: BARRIER
# 无价格占位符的显示名. 设置空值以忽略.
zero-currency-item-name: ""
# 无价格占位符的Lore. 设置空值以忽略.
zero-currency-item-lore: []

# 第二种, 更高面值, 用于玩家交易商店的第二价格栏的货币物品类型.
# 设置为 'AIR' 来禁用第二货币.
high-currency-item: EMERALD_BLOCK
# 高面值货币(物品)的显示名. 设置空值以忽略.
high-currency-item-name: ""
# 高面值货币(物品)的Lore. 设置空值以忽略.
high-currency-item-lore: []

# 高面值货币相对于低面值货币的价值.
high-currency-value: 9
# 只有当商品的价格超过此值时自动使用高面值货币.
high-currency-min-cost: 20

# 当玩家没有设置高面值价格要求时的占位符.
high-zero-currency-item: BARRIER
# 高面值价格占位符的显示名. 设置空值以忽略.
high-zero-currency-item-name: ""
# 高面值价格占位符的Lore. 设置空值以忽略.
high-zero-currency-item-lore: []

# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
# 插件消息文本
# *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

language: en

msg-creation-item-selected: |
    &aRight-click to select the shop type.
    &aSneak + right-click to select the object type.
    &aRight-click a chest to select it.
    &aThen right-click a block to place the shopkeeper.

msg-button-name: "&aSet Shop Name"
msg-button-name-lore:
- Lets you rename
- your shopkeeper
msg-button-chest: "&aView Chest Inventory"
msg-button-chest-lore:
- Lets you view the inventory
- your shopkeeper is using
msg-button-type: "&aChoose Appearance"
msg-button-type-lore:
- Changes the look
- of your shopkeeper
msg-button-delete: "&4Delete"
msg-button-delete-lore:
- Closes and removes
- this shopkeeper
msg-button-hire: "&aHire"
msg-button-hire-lore:
- Buy this shopkeeper

msg-trading-title-prefix: "&2"
msg-trading-title-default: "Shopkeeper"

msg-selected-sell-shop: "&aSelling shopkeeper selected (sells items to players)."
msg-selected-buy-shop: "&aBuying shopkeeper selected (buys items from players)."
msg-selected-trade-shop: "&aTrading shopkeeper selected (trades items with players)."
msg-selected-book-shop: "&aBook shopkeeper selected (sells books)."

msg-selected-living-shop: "&aYou selected: &f{type}"
msg-selected-sign-shop: "&aYou selected: &fsign shop"
msg-selected-citizen-shop: "&aYou selected: &fcitizen npc shop"

msg-selected-chest: "&aChest selected! Right-click a block to place your shopkeeper."
msg-must-select-chest: "&7You must right-click a chest before placing your shopkeeper."
msg-no-chest-selected: "&7The selected block is not a chest!"
msg-chest-too-far: "&7The shopkeeper's chest is too far away!"
msg-chest-not-placed: "&7You must select a chest you have recently placed!"
msg-chest-already-in-use: "&7Another shopkeeper is already using the selected chest!"
msg-no-chest-access: "&7You cannot access the selected chest!"
msg-too-many-shops: "&7You have too many shops!"
msg-no-admin-shop-type-selected: "&7You have to select an admin shop type!"
msg-no-player-shop-type-selected: "&7You have to select a player shop type!"
msg-shop-create-fail: "&7You cannot create a shopkeeper there."

msg-type-new-name: "&aPlease type the shop's name into the chat.\n  &aType a dash (-) to remove the name."
msg-name-set: "&aThe shop's name has been set!"
msg-name-has-not-changed: "&aThe shop's name has not changed."
msg-name-invalid: "&aThat name is not valid!"

msg-shop-type-disabled: "&7The shop type '{type}' is disabled."
msg-shop-object-type-disabled: "&7The shop object type '{type}' is disabled."
msg-must-target-chest: "&7You have to target a chest."
msg-unused-chest: "&7No shopkeeper is using this chest."
msg-not-owner: "&7You are not the owner of this shopkeeper."
msg-owner-set: "&aNew owner was set to &e{owner}"

msg-trade-perm-set: "&aThe shop's trading permission has been set!"
msg-trade-perm-removed: "&aThe shop's trading permission has been removed!"
msg-trade-perm-view: "&aThe shop's current trading permission is '&e{perm}&a'."

msg-must-hold-hire-item: "&7You have to hold the required hire item in your hand."
msg-set-for-hire: "&aThe Shopkeeper was set for hire."
msg-hired: "&aYou have hired this shopkeeper!"
msg-missing-hire-perm: "&7You do not have the permission to hire shopkeepers."
msg-cant-hire: "&7You cannot afford to hire this shopkeeper."
msg-cant-hire-shop-type: "&7You do not have the permission to hire this type of shopkeeper."
msg-villager-for-hire: "&aThe villager offered his services as a shopkeeper in exchange for &6{costs}x {hire-item}&a."

msg-missing-trade-perm: "&7You do not have the permission to trade with this shop."
msg-missing-custom-trade-perm: "&7You do not have the permission to trade with this shop."
msg-cant-trade-while-owner-online: "&7You cannot trade while the owner of this shop ('{owner}') is online."

msg-sell-shop-created: |
    &aShopkeeper created!
    &aAdd items you want to sell to your chest, then
    &aright-click the shop while sneaking to modify costs.
msg-buy-shop-created: |
    &aShopkeeper created!
    &aAdd one of each item you want to buy to your chest, then
    &aright-click the shop while sneaking to modify costs.
msg-trade-shop-created: |
    &aShopkeeper created!
    &aAdd items you want to sell to your chest, then
    &aright-click the shop while sneaking to modify costs.
msg-book-shop-created: |
    &aShopkeeper created!
    &aAdd written books and blank books to your chest, then
    &aright-click the shop while sneaking to modify costs.
msg-admin-shop-created: |
    &aShopkeeper created!
    &aRight-click the shop while sneaking to modify trades.

msg-list-admin-shops-header: "&9There are &e{shopsCount} &9admin shops: &e(Page {page} of {maxPage})"
msg-list-player-shops-header: "&9Player '&e{player}&9' has &e{shopsCount} &9shops: &e(Page {page} of {maxPage})"
msg-list-shops-entry: "  &e{shopSessionId}) &7{shopName}&r&8at &7({location})&8, type: &7{shopType}&8, object type: &7{objectType}"

msg-removed-admin-shops: "&e{shopsCount} &aadmin shops were removed."
msg-removed-player-shops: "&e{shopsCount} &ashops of player '&e{player}&a' were removed."
msg-removed-all-player-shops: "&aAll &e{shopsCount} &aplayer shops were removed."

msg-confirm-remove-admin-shops: "&cYou are about to irrevocable remove all admin shops!"
msg-confirm-remove-own-shops: "&cYou are about to irrevocable remove all your shops!"
msg-confirm-remove-player-shops: "&cYou are about to irrevocable remove all shops of player &6{player}&c!"
msg-confirm-remove-all-player-shops: "&cYou are about to irrevocable remove all player shops of all players!"

msg-confirmation-required: "&7Please confirm this action by typing &6/shopkeepers confirm"
msg-confirmation-expired: "&cConfirmation expired."
msg-nothing-to-confirm: "&cThere is nothing to confirm currently."

msg-no-permission: "&cYou don't have the permission to do that."

msg-command-unknown: "&cUnknown command '&e{command}&c'!"
msg-command-argument-unexpected: "&cUnexpected argument '&e{argument}&c'."
msg-command-argument-missing: "&cMissing argument '&e{argumentFormat}&c'."
msg-command-argument-invalid: "&cInvalid argument '&e{argument}&c'."
msg-command-player-argument-missing: "&cNo player specified for '&e{argumentFormat}&c'."
msg-command-player-argument-invalid: "&cNo player found for '&e{argument}&c'."
msg-command-shop-type-argument-invalid: "&cUnknown shop type '&e{argument}&c'."
msg-command-shop-object-type-argument-invalid: "&cUnknown shop object type '&e{argument}&c'."
msg-command-shopkeeper-argument-invalid: "&cNo shopkeeper found for '&e{argument}&c'."

msg-command-help-title: "&9***** &8[&6Shopkeepers v{version}&8] &9*****"
msg-command-help-usage-format: "&e{usage}"
msg-command-help-description-format: "&8 - &3{description}"

msg-command-description-shopkeeper: "Creates a shopkeeper."
msg-command-description-help: "Shows this help page."
msg-command-description-reload: "Reloads this plugin."
msg-command-description-debug: "Toggles debug mode on and off."
msg-command-description-list: "Lists all shops for the specified player, or all admin shops."
msg-command-description-remove: "Removes all shops for the specified player, all players, or all admin shops."
msg-command-description-remote: "Remotely opens a shop."
msg-command-description-transfer: "Transfers the ownership of a shop."
msg-command-description-settradeperm: "Sets, removes (-) or displays (?) the trading permission."
msg-command-description-setforhire: "Sets one of your shops for sale."