• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

ProtectionStones

From Minecraft插件百科
Jump to: navigation, search
Icon-info.png
本条目已有一定量的内容,但仍需完善

欢迎参与本条目的完善工作

你可以从以下几个方面入手

  • 参阅格式化手册,并对该页面进行相应格式排版工作;
  • 日常检查是否内容有更新版本并更新该页面;
  • 修复该页面中已出现/潜在的问题
保护石
ProtectionStones logo.png
中文名保护石
外文名ProtectionStones
作者AxelDios
插件类型Spigot / CraftBukkit
最新版本1.9j
兼容服务端Spigot/Paper (1.13+)
前置插件WorldGuard, WorldEdit
源地址https://dev.bukkit.org/projects/protectionstones

简介

ProtectionStones是一个功能强大,自定义性很强的领地插件
★ 包括但不仅限于:
操作简单,适合新手,免除圈地麻烦
自由出租、出售,自由交易领地
多领地合并,管理更方便
领地税收,还原国家级待遇
自由添加保护石
自由更改获得方式,要求资金
可自定义配方,且可以多层升级
点击式更改权限,免除指令麻烦
......

原文

Ever needed an easy, yet powerful way to prevent grief, and protect a certain area?

This plugin allows players to protect land using a block that they place down. It creates a WorldGuard region at a set radius (configurable) around where the block is placed. The plugin also allows players to add and remove people to the region, as well as set flags (defined in the config).

前置要求

插件 版本 需求性
WorldGuard 7+ 必须
WorldEdit 7+ 必须
Vault * 可选(没有的话无法使用经济相关系统)
PlaceholderAPI * 可选

安装

确保你已经把上面的必须前置安装完之后再进行这一步
下载插件并放到你的plugins文件夹下,运行服务器生成配置文件
添加新的保护石:打开plugins/ProtectionStones/blocks,复制默认保护石文件block1.toml,按照原有格式自行更改,然后保存退出
配置权限:各种默认权限决定玩家创建后默认可以做的事,ProtectionStones采用的是worldguard的保护机制,这意味着起保护作用的是worldguard,所以你可以设置的权限也是worldguard,具体可以参考这里
★另外,ProtectionStones支持worldguard的flag(权限)相关的拓展
原文

To install ProtectionStones, make sure youhave the requirements above already installed. You can simply just add theplugin to the plugins folder, and it will generate the default configuration.

Adding new blocks:
To add new protection blocks, go intoplugins/ProtectionStones/blocks, and copy and paste the default block1.tomlfile and rename it (ex. block2.toml). Then, you have to change the"type" and "alias" fields in the new  block config, sincethere cannot be duplicates.

Configuring flags:
Flags allow for customisation of regionbehaviour. ProtectionStones uses WorldGuard flags, meaning that WorldGuard isactually doing the protecting, not ProtectionStones. You can view the list ofWorldGuard flags here.

It is also possible to use other pluginsthat add flags to WorldGuard, such as WorldGuard Extra Flags and use them inProtectionStones.

Permissions:
The permission list is on the wiki:https://github.com/espidev/ProtectionStones/wiki/Permissions. By default, nopermissions are given to players, so you have to add them explicitly. You canalso view the recommended   permissions to give for commands here.

Other Recommendations:
WorldGuard by default prevents hoppers fromgoing between regions. I recommend setting "ignore-hopper-item-move-events"in WorldGuard's config to false to fix this.

If you want to protect against water andlava flow, you can set "high-frequency-flags" and"protect-against-liquid-flow" to true in WorldGuard's config.

WorldGuard config: https://worldguard.readthedocs.io/en/latest/config/

Default Config Files:
Wiki:https://github.com/espidev/ProtectionStones/wiki/Configuration

Translated Versions of messages.yml:
Interested in having the plugin messages ina different language? Users have contributed translated versions of themessages.yml file. Contact me if you want to supply a messages.yml file in adifferent language!
https://github.com/espidev/ProtectionStones/wiki/Translated-messages.yml

指令大全

普通指令

指令 权限 描述
ps get [block] protectionstones.get 获得一个保护石(扣除金币,需要设置)
ps give [block] [player] protectionstones.give 给与一个保护石(不扣除金币)
ps info [members|owners|flags] protectionstones.info 所有者| 权限
ps add|remove [playername] protectionstones.members 增加/删除一位成员
ps addowner|removeowner [playername] protectionstones.owners 增加/删除一位所有者
ps flag [flag] [value|null|default] protectionstones.flags 设为领地权限
ps rent [lease|rent|stopleasing|stoprenting] protectionstones.rent 租赁/出租/停止租赁/停止出租
ps tax protectionstones.tax 税收相关指令
ps buy protectionstones.buysell 购买你所在的领地
ps sell [price|stop] protectionstones.buysell 出售你所在的领地并设定价格/停止出售领地
ps hide protectionstones.hide 隐藏保护石
ps unhide protectionstones.unhide 取消隐藏保护石
ps setparent [region|none] protectionstones.setparent 为当前区域设置父级,不懂查这里
ps name [name|none] protectionstones.name 为领地设置名称/取消名称
ps home [name|id (可选)] protectionstones.home 传送回领地
ps sethome protectionstones.sethome 设置领地家传送地点
ps tp [id| player] [num (optional)] protectionstones.tp 传送到某个领地/某个玩家的领地
ps toggle protectionstones.toggle 开启/关闭保护石放置提示信息
ps view protectionstones.view 开启/关闭保护石放置提示信息
ps unclaim protectionstones.unclaim 放弃/删除领地
ps priority [number|null] protectionstones.priority 设置领地优先级
ps region [list|remove|disown] [player] protectionstones.region 管理指令,不建议给玩家使用指令查询或者编辑其他玩家或者自己领地的相关信息
ps list [playername (optional)] protectionstones.list 列出你/其他玩家所拥有的的领地
ps count [playername (optional)] protectionstones.count 列出你/其他玩家所拥有的的领地数量
ps merge protectionstones.merge 与邻近领地合并


管理员指令

指令 权限 描述
ps admin help protectionstones.admin 查看管理帮助菜单
ps admin version protectionstones.admin 查看插件当前版本
ps admin hide|unhide protectionstones.admin 取消隐藏当前世界所有保护石
ps admin cleanup remove [days] [world (console)] protectionstones.admin 清理掉长期不上线玩家的领地(天数自定义)以及没有所有人的领地
ps admin cleanup disown [days] [world (console)] protectionstones.admin 清理掉长期不上线玩家的领地(天数自定义)
ps admin flag [world] [flag] [value|null|default] protectionstones.admin 给当前世界上所有领地设置权限
ps admin lastlogon [player] protectionstones.admin 获取玩家上次登陆时间
ps admin lastlogons protectionstones.admin 列出所有玩家最后一次登录的信息
ps admin stats [player (optional)] protectionstones.admin 显示插件统计数据
ps admin recreate protectionstones.admin 重新创建所有领地(用于配置文件更改时)
ps admin settaxautopayers protectionstones.admin 为所有没有税收的领地增加自动收税系统
ps admin forcemerge [world] protectionstones.admin 对某个世界上所有重叠的为同一所有者的领地进行合并
ps admin changeblock [world] [fromblockalias] [toblockalias] protectionstones.admin 将某个世界某种保护石更换为另一种保护石
ps admin fixregions protectionstones.admin 使用此指令修复当前世界所有错误的领地,在出错的时候很有用
ps reload protectionstones.admin 重载插件配置文件

权限

本插件没有默认权限,需要手动给予,各位服主参考下面自行斟酌是否给予权限

权限 描述 是否推荐给玩家
protectionstones.create 允许玩家创建领地
protectionstones.destroy 允许玩家删除领地(会删除保护石)
protectionstones.merge 允许玩家合并领地
protectionstones.unclaim 允许玩家取消领地(会保留保护石)
protectionstones.view 允许玩家使用/ps view
protectionstones.info 允许玩家使用/ps info
protectionstones.info.others 允许玩家在其他玩家的领地使用/ps info
protectionstones.get 允许玩家使用/ps get. 否,除非你已经设置了价格
protectionstones.give 允许玩家使用/ps give (以管理员权限给予保护石).
protectionstones.count 允许玩家使用/ps count.
protectionstones.count.others 允许玩家使用/ps count [player].
protectionstones.list 允许玩家使用/ps list.
protectionstones.list.others 允许玩家使用/ps list [player]
protectionstones.hide 允许玩家隐藏保护石
protectionstones.unhide 允许玩家取消隐藏保护石
protectionstones.setparent 允许玩家使用/ps setparent
protectionstones.setparent.others 允许玩家对其他玩家领地使用/ps setparent
protectionstones.name 允许玩家使用/ps name
protectionstones.home 允许玩家使用/ps home
protectionstones.sethome 允许玩家使用/ps sethome
protectionstones.tp 允许玩家使用/ps tp
protectionstones.tp.bypasswait 允许玩家使用/ps home以及/ps tp时无视等待时间
protectionstones.tp.bypassprevent 无视配置文件的设置: prevent_teleport_in
protectionstones.priority 允许玩家设置领地优先级
protectionstones.owners 允许玩家增加/删除所有者(允许玩家使用/ps info owners)
protectionstones.members 允许玩家增加/删除成员(允许玩家使用/ps info members)
protectionstones.flags 允许玩家设置领地权限
protectionstones.flags.edit.[flag] 设置为false时禁止掉玩家对某个特定权限的设定权限(例: protectionstones.flags.edit.tnt)以便禁止玩家修改某项设定(此项权限会覆盖 allowed_flags 的设定) 自行斟酌
protectionstones.buysell 允许玩家使用 /ps buy 以及 /ps sell.
protectionstones.tax 允许玩家使用/ps tax
protectionstones.rent 允许玩家使用/ps rent
protectionstones.toggle 允许玩家切换保护石提示信息
protectionstones.region 允许玩家使用/ps region
protectionstones.adjacent.x 设置玩家最大可拥有的不相邻领地数目(此项设置要求regions_must_be_adjacent为true) -1表示无限个 自行斟酌
protectionstones.admin 允许使用/ps admin 以及/ps reload
protectionstones.limit.x 设置玩家最大可以拥有的领地数量,x只能是整数,如果不想限制,就不要给予这类权限 自行斟酌
protectionstones.limit.alias.x 设置玩家最多可以自定义多少个领地的别名,x只能是整数,如果不想限制,就不要给予这类权限 自行斟酌
protectionstones.superowner 允许玩家覆盖所有者权限,设置成自己的领地(类似setowner作用)

变量

引用

一共有两种引用领地的方法

%protectionstones_currentregion_...% - 当前玩家所在领地
%protectionstones_region_[identifier]_...% - 通过名称/ID搜索到的领地

下面是...部分可以填入的参数

参数 描述
owners List of owners, separated by comma and space.
members List of members, separated by comma and space.
name The name of the region, or the id if there isn't one set.
id The id of the region.
type The block type of the region.
alias The region's alias type.
is_hidden Whether or not the protection block is hidden.
home_location The location of the region's home.
is_for_sale Whether or not the region is for sale.
rent_stage The rent stage of the region.
landlord The region's landlord if it is being rented out.
rent_period The period for rent payments.
rent_amount The amount tenants pay per rent period.
sale_price The price as to which the region is on sale for.
tax_owed How much tax is unpaid for this region.
tax_autopayer The region's configured autopayer.
flags The list of flags of the region.
flags_[flag] Where [flag] is the name of the flag you want to get the value of.

PAPI变量

据作者所说,所有配置都可以显示为PAPI变量,引用他们的办法就是在通用引用变量后面加上这个部分的参数。 比如说你要引用某种保护石的价格,那就就是%protectionstones_config_block_[alias]_block_data_price%。 alias指保护石的名称,格式基本相同,举一反三即可。

全局配置变量

引用方法:

%protectionstones_config_...%

特殊格式变量:

%protectionstones_config_economy_max_rent_period_pretty%
%protectionstones_config_economy_min_rent_period_pretty%

保护石配置变量

引用方法:

%protectionstones_config_block_[alias]_...%
%protectionstones_currentregion_config_...%
%protectionstones_region_[identifier]_config_...%

可以填入的参数:

economy_tax_period_pretty
economy_tax_payment_time_pretty

玩家变量

引用方法:

%protectionstones_currentplayer_...%

可以填入的参数

global_region_limit	当前玩家所在领地最大人数,-1表示无限制
region_limit_[alias]	特定类型保护块的最大限制 (用保护石名称替换[alias])

配置文件

config.toml

(对于版本2.7.0-2020.4.4)

# 不要更改配置文件版本,除非你知道你在做什么!
config_version = 12
uuidupdated = true

# ---------------------------------------------------------------------------------------
# 保护石配置
# 方块配置已经移到 blocks 文件夹下了
# 如果要创建新的保护石方块,复制 block1.toml 重命名然后按照原格式修改即可
# 如果你的配置文件看起来比较乱可能是因为配置文件的逐步更新,如果想调整回来考虑用默认配置文件(汉化会掉)
# 如果你需要默认配置,可以去 https://github.com/espidev/ProtectionStones/tree/master/src/main/resources 查看
# ---------------------------------------------------------------------------------------

# 防止保护石的冷却时间 (单位:秒) 设置 -1 禁用此项
placing_cooldown = -1

# 设置为 true 将不会阻止服务器通过UUID缓存启动
# 在缓存加载完成之前/ps add 和 /ps remove 指令在离线模式(offline)下将会失效
async_load_uuid_cache = false

# 是否允许领地有相同的名字 (相关指令/ps name).
# 如果设置为 true ,允许玩家创建相同名称的领地,但必须在领地名称后面增加数字
allow_duplicate_region_names = false

# /ps view 指令的冷却间隔
# 可以防止滥用指令导致的滞后
ps_view_cooldown = 10

# 保护石插件的基础指令 (如果指令冲突时可以更改这里,比如和plotsquared就冲突)
base_command = "ps"

# 命令别称
aliases = [
    "pstone",
    "protectionstone",
    "protectionstones"
]

# 当你删除领地的时候,如果你的背包满了,是否将物品丢出来 (相关指令/ps unclaim)
# 设置为 false 时,如果背包已满,将会阻止你删除领地,并发送提示信息
drop_item_when_inventory_full = true

# 放置新的保护石是否必须与玩家已经拥有的保护石的范围相邻或者重叠
# 这项设置可以让世界变得更简洁并且减少分散的居住点
# 玩家可以创建最多不相邻的领地数量的权限为 protectionstones.region.adjacent.x (默认值:1 设置-1无视此项)
# 当然如果你有权限 protectionstones.admin 也可以绕过 :)
regions_must_be_adjacent = false

# 是否允许玩家将新领地与老的领地合并创建一个新的更大的领地(重叠情况下)
# 拥有权限 protectionstones.admin 可以将任意领地合并(包括其他玩家的!)
# 合并区域需要权限 protectionstones.merge 才能使用 (相关指令/ps merge)
# 注意: 由于WorldGuard插件的限制,合并区域将会自动忽略Y周范围,更改为0-255
# 因为多边形区域只能是二维的,不能是三维
allow_merging_regions = true

# 是否允许合并的区域中间有一部分区域不受保护
# 只会在合并过程中生效,不会影响已经合并且中间有未领地域的领地
allow_merging_holes = true

[economy]
    # 设置租用价格限制. 设置为-1禁用此项
    max_rent_price = -1.0
    min_rent_price = 1.0

    # 设置租用支付租金的间隔,单位秒 (86400 秒 = 1 天). 设置-1禁用此项
    max_rent_period = -1
    min_rent_period = 1

    #是否开启领地税收
    # 税收配置可以在每个保护块的配置文件更改
    # 是否启用 tax相 关指令
    # 如果你有自己的领地,你可以给每一个领地设置一个"自动玩家"(指自动收取税收的玩家
    # 可以通过指令 /ps admin settaxautopayers 设置,这将更新服务器中所有的领地
    tax_enabled = true

    # 未缴纳税收时,是否在玩家加入游戏时通知他们
    tax_message_on_join = true

message.yml

(对于版本2.7.0-2020.4.4)

cooldown: '&6警告: &7请等待 %time% 秒之后再放置保护石!'
no_such_command: '&c指令无效. 请使用 /ps help 查看帮助'
no_access: '&c您不能这么做.'
no_room_in_inventory: '&c您的背包没有足够的空间.'
no_room_dropping_on_floor: '&c您的背包空间不足,已将保护石散落在地面上'
invalid_block: '&c无效的保护石.'
not_enough_money: '&c您没有足够的钱! 您需要 %price%.'
paid_money: '&b您支付了 $%price%.'
invalid_world: '&c无效世界.'
must_be_player: '&c只有玩家才能执行这个命令.'
go_back_page: 返回上一页.
go_next_page: 前往下一页.
help: |-
  &8&m=====&r 保护石 帮助菜单 &8&m=====
  &b> &7/ps help
help_next: '&7使用 /ps help %page% 查看下一页帮助!'
command_requires_player_name: '&c此命令需要输入玩家名称.'
no_permission_toggle: '&c您没有权限使用切换指令的权限.'
no_permission_create: '&c您没有权限防置保护石.'
no_permission_destroy: '&c您没有权限破坏保护石'
no_permission_members: '&c您没有使用成员命令的权限.'
no_permission_owners: '&c您没有使用所有者命令的权限.'
no_permission_admin: '&c您没有使用该命令的权限.'
no_permission_count: '&c您没有使用该命令的权限.'
no_permission_count_others: '&c您没有使用该命令的权限.'
no_permission_flags: '&c您没有使用权限命令的权限.'
no_permission_per_flag: '&c您没有使用该权限的权限.'
no_permission_rent: '&c您没有租用的权限.'
no_permission_tax: '&c您没有使用税收命令的权限.'
no_permission_buysell: '&c您没有买卖领地的权限.'
no_permission_unhide: '&c您没有取消隐藏保护石的权限.'
no_permission_hide: '&c您没有隐藏保护石的权限.'
no_permission_info: '&c您没有使用领地信息命令的权限.'
no_permission_priority: '&c您没有使用优先级命令的权限.'
no_permission_region: '&c您没有使用领地命令的权限.'
no_permission_tp: '&c您没有传送到其他玩家的领地的权限.'
no_permission_home: '&c你没有权限传送到你的保护石.'
no_permission_unclaim: '&c您没有使用取消声明命令的权限.'
no_permission_view: '&c您没有使用视图命令的权限.'
no_permission_give: '&c您没有使用给予命令的权限.'
no_permission_get: '&c您没有使用获得命令的权限.'
no_permission_sethome: '&c您没有使用设置家命令的权限.'
no_permission_list: '&c您没有使用列表命令的权限.'
no_permission_list_others: '&c您没有查看其他人列表的权限.'
no_permission_name: '&c您没有使用命名命令的权限.'
no_permission_setparent: '&c您没有使用设置从属命令的权限.'
no_permission_setparent_others: '&c您没有从其他人的区域继承的权限.'
no_permission_merge: '&c您没有权限使用 /ps merge.'
psregion:
  added_to_region: '&b%player%&7 已添加到此领地.'
  added_to_region_specific: '&b%player%&7 已添加到领地 %region%.'
  removed_from_region: '&b%player%&7 已从该领地中删除.'
  removed_from_region_specific: '&b%player%&7 已从领地 %region% 中删除.'
  not_in_region: '&c你不在领地!'
  player_not_found: '&c玩家无效.'
  not_ps_region: '&c不是领地.'
  region_does_not_exist: '&c领地不存在.'
  no_regions_owned: '&c当前世界您没有领地!'
  no_region_permission: '&c您没有在此领地执行此操作的权限.'
  protected: '&b此区域现已被保护.'
  no_longer_protected: '&e此区域不再被保护.'
  cant_protect_that: '&c你不能保护那个区域.'
  reached_region_limit: '&c您不能拥有更多的领地了,已达限制 (%limit%).'
  reached_per_block_region_limit: '&c您不拥有更多此类型的领地,已达限制(%limit%).'
  world_denied_create: '&c你不能在这个世界上创建领地.'
  region_overlap: '&c不能在此处放置保护石,因为它与另一个区域重叠.'
  region_too_close: '&c您的领地距离其他人的太近了,至少保持%num% 格远!'
  cant_teleport: '&c您的传送被领地拒绝!'
  specify_id_instead_of_alias: |-
    &7找到多个带有此名称的领地!请使用 ID 替换
     具有此名称的区领地: &b%regions%
  region_not_adjacent: '&c您距离您已创建的领地太远了!尝试将保护石靠近已拥有的其他领地.'
  not_overlapping: '&c这些领地不会相互重叠!'
  multi_region_does_not_exist: 其中一个领地不存在!
  no_region_holes: '&c领地内检测到未受保护的区域!这是禁止的!'
  delete_region_prevented: '&7无法删除该区域,可能是因为在现有领地中有未被保护的区域.'
  not_owner: '&c您不是此把湖区的所有者!'
  cannot_merge_rented_region: '&c无法合并区域,因为区域 %region% 正在出租中!'
  no_permission_region_type: '&c您没有使用此领地类型的权限.'
  hidden: '&7保护石已被隐藏.'
toggle:
  help: '&b> &7/ps toggle'
  help_desc: 使用此命令打开或关闭保护石放置信息.
  toggle_on: '&b保护石放置信息已打开.'
  toggle_off: '&b保护石放置信息已关闭.'
count:
  count_help: '&b> &7/ps count [player (optional)]'
  count_help_desc: 查看您或其他玩家拥有的领地数.
  personal_region_count: '&7当前世界您拥有的领地数目: &b%num%'
  personal_region_count_merged: '&7- 包括合并领地: &b%num%'
  other_region_count: '&7%player%在当前世界所拥有的领地数目: &b%num%'
  other_region_count_merged: '&7- 包括合并领地: &b%num%'
flag:
  help: '&b> &7/ps flag [flagname] [value|null|default]'
  help_desc: 使用此命令在您的领地中设置权限.
  flag_set: '&b%flag%&7 权限已被设置'
  flag_not_set: '&b%flag%&7 权限已被取消. 请检查您的数值.'
  gui_header: '&8&m=====&r 权限 (点击更改) &8&m====='
  gui_hover_set: '&b点击设置.'
  gui_hover_set_text: |-
    &b点击更改.&f
    当前设置:
    %value%
  hover_change_group: 单击以将此权限设置为仅应用于 %group%.
  hover_change_group_null: '&c在更改组之前,必须先设置此权限值.'
rent:
  help: '&b> &7/ps rent'
  help_desc: 使用此命令管理租金 (买卖).
  help_header: '&8&m=====&r 租赁帮助 &8&m====='
  already_renting: '&c这个领地已经被租出去了!您必须先停止租赁该领地.'
  not_rented: '&c此领地拒绝出租.'
  lease_success: |-
    &b领地租赁条款设定:
    &b价格: &7%price%
    &b付款方式: &7%period%
  stopped: '&b租赁停止.'
  evicted: '&7已被逐出的租户 %tenant%.'
  not_renting: '&c此领地未出租给租户.'
  paid_landlord: '&b%tenant%&7 &7已经为 &b%region% 支付 &b$%price%&7.'
  paid_tenant: '&7已向领地 &b%region% &7的&b %landlord% &7支付&b $%price%&7.'
  renting_landlord: '&b%player%&7 现在正在出租领地 &b%region%&7.'
  renting_tenant: '&7你现在正在出租领地 &b%region%&7 价格: &b%price%&7 每&b%period%&7.'
  not_tenant: '&c您不是此领地的租户!'
  tenant_stopped_landlord: '&b%player%&7 已停止出租领地 &b%region%&7. 现在可供其他玩家租用.'
  tenant_stopped_tenant: '&b您已停止出租领地 %region%.'
  being_sold: '&c该领地正在出售! 先使用 /ps sell stop.'
  evict_no_money_tenant: '&7您已经被领地 &b%region% &7&cevicted 由于您没有足够的钱来还清租金,至少需要 %price%.'
  evict_no_money_landlord: '&b%tenant%&7 已经从领地 &b%region%&7 &cevicted& 因为他们无法支付租金.'
  cannot_rent_own_region: '&c您不能租用自己的领地!'
  reached_limit: '&c您已达到最多租用领地的上限!'
  price_too_low: '&c租金太低 (必须大于 %price%).'
  price_too_high: '&c租金太高 (必须低于 %price%).'
  period_too_short: '&c租期太短 (必须大于 %period% 秒).'
  period_too_long: '&c租期太长 (必须小于 %period% 秒).'
  period_invalid: '&c无效的时间格式!示例: 24h 即一天.'
  cannot_break_while_renting: '&c领地已被租出,您无法破坏该领地.'
tax:
  help: '&b> &7/ps tax'
  help_desc: 使用此命令管理和支付税收.
  help_header: '&8&m=====&r 税收帮助 &8&m====='
  disabled_region: '&c禁用此领地的税款.'
  set_as_autopayer: '&7领地 &b%region% &7的税收将自动从您的余额中扣除'
  set_no_autopayer: '&7领地 &b%region% &7的税收现在必须手动支付.'
  paid: '&7已为领地 &b%region%&7 支付 &b$%amount%.'
  info_header: '&8&m=====&r 税收信息 (点击查看更多信息) &8&m====='
  join_msg_pending_payments: |-
    &7您有 &b$%money%&7 税收待支付!
    使用/ps tax info 查看更多信息 .
  player_region_info: '&7> &b%region%&7 - &6待缴纳: &3$%money% '
  player_region_info_autopayer: '&7> &b%region%&7 - &6待缴纳 &7(自动扣除) &3$%money%'
  click_to_show_more_info: 单击以显示更多信息.
  region_info_header: '&8&m=====&r %region% 税收信息 &8&m====='
  region_info: |-
    &9税率: &7$%taxrate% (所有合并的领地的总和)
    &9税周期之间的时间: &7%taxperiod%
    &9税周期纳税时间: &7%taxpaymentperiod%
    &9税收自动纳税人: &7%taxautopayer%
    &9欠税: &7$%taxowed%
  next_page: '&7使用 /ps tax info -p %page% 查看下一页!'
buy:
  help: '&b> &7/ps buy'
  help_desc: 购买您当前所在的领地.
  not_for_sale: '&c此领地不出售.'
  stop_sell: '&7该领地现在不出售.'
  sold_buyer: '&7从 &b%player% &7以 &b$%price% &7购买了领地 &b%region%&7.'
  sold_seller: '&7从 &b%player% &7以 &b$%price% &7出售了领地 &b%region%&7.'
sell:
  help: '&b> &7/ps sell [price|stop]'
  help_desc: 卖掉你当前所在的领地.
  rented_out: '&c这个地区被租出去了!你必须停止出租它才能出售.'
  for_sale: '&7该领地现在正以 &b$%price% &7的价格出售.'
visibility:
  hide_help: '&b> &7/ps hide'
  hide_help_desc: 使用此命令隐藏或取消隐藏保护石.
  unhide_help: '&b> &7/ps unhide'
  unhide_help_desc: 使用此命令隐藏或取消隐藏保护石.
  already_not_hidden: '&7保护石已经取消隐藏了!'
  already_hidden: '&7保护石已经隐藏了!'
info:
  help: '&b> &7/ps info members|owners|flags'
  help_desc: 在领地内使用此命令以查看有关它的详细信息.
  header: '&8&m=====&r 领地信息 &8&m====='
  type: '&9Type: &7'
  may_be_merged: (可与其他类型合并)
  merged: '&9合并的领地: &7'
  members: '&9成员: &7'
  no_members: '&c(没有协助成员)'
  owners: '&9所有者: &7'
  no_owners: '&c(没有所有者)'
  flags: '&9权限: &7'
  region: '&9领地: &b'
  priority: '&9优先权: &b'
  parent: '&9从属: &b'
  bounds: '&9边界: &b'
  seller: '&9卖家: &7'
  price: '&9价格: &7'
  tenant: '&9租户: &7'
  landlord: '&9房东: &7'
  rent: '&9Rent: &7'
  available_for_sale: '&b该地区当前可出售!'
  available_for_rent: '&b该地区当前可出租!'
priority:
  help: '&b> &7/ps priority [number|null]'
  help_desc: 使用此命令设置您所在领地的优先级.
  info: '&7优先级: %priority%'
  set: '&e优先级已设置.'
  error: '&c输入解析无效,检查是否输入错误?'
region:
  help: '&b> &7/ps region [list|remove|disown] [playername]'
  help_desc: 使用此命令可以查找信息或编辑其他玩家(或您自己的)领地.
  not_found_for_player: '&7此世界上未找到 %player% 的领地.'
  list: '&7%player%在此世界上的领地: &b %regions%'
  remove: '&e%player%在此世界上的领地已被移除,并且也从 %player% 部分拥有的领地中删除.'
  error_search: '&c在搜索玩家 %player% 的领地时发生错误. 请确保您输入了正确的名称.'
tp:
  help: '&b> &7/ps tp [id/player] [num (optional)]'
  help_desc: 将您传送到改玩家的领地之一.
  number_above_zero: '&c请输入高于 0 的数字.'
  valid_number: '&c请输入有效的数字.'
  only_has_regions: '&c%player% 在这个世界上仅有 %num% 领地!'
  tping: '&a传送中...'
  error_name: '&c传送到领地时出错!(分析WorldGuard区域名称错误)'
  error_tp: '&c查找要传送到的领地时出错!'
  in_seconds: '&7将在 &b%seconds%&7 秒后传送.'
  cancelled_moved: '&c传送已取消,请勿移动!'
home:
  help: '&b> &7/ps home [name/id]'
  help_desc: 将您传送到您的其中一个领地.
  header: '&8&m=====&r 家 (点击传送) &8&m====='
  click_to_tp: 点击传送!
  next_page: '&7使用 /ps home -p %page% 查看下一页!'
unclaim:
  help: '&b> &7/ps unclaim'
  help_desc: 使用此命令拾取已放置的保护石并移除该领地.
view:
  help: '&b> &7/ps view'
  help_desc: 使用此命令查看领地的边界.
  cooldown: '&c请等待一会再使用 /ps view.'
  generating: '&7生成边界中...'
  generate_done: '&a已完成! 边界显示将在30秒后消失!'
  removing: |-
    &b移除边界中...
    &a如果您仍然看到幽灵方块,请重新登录游戏!
admin:
  help: '&b> &7/ps admin'
  help_desc: 使用 /ps admin help 查看更多信息.
  cleanup_header: |-
    &e清理 %arg% %days% days
    ================
  cleanup_footer: |-
    &e================
    已完成 %arg% 的清理.
  hide_toggled: '&e此世界所有保护石一直是 %message% '
  last_logon: '&e%player% 上次登录在 %days% 天前.'
  is_banned: '&e%player% 已被封禁.'
  error_parsing: '&c错误天数参数,你确定没有输入错误?'
  console_world: '&c最后一个参数必须是世界.'
  lastlogons_header: |-
    &e%days% 天+:
    ================
  lastlogons_line: '&e%player% %time% 天'
  lastlogons_footer: |-
    &e================
    %count% 玩家总数显示
    %checked% 已检查的玩家总数
reload:
  help: '&b> &7/ps reload'
  help_desc: 从配置中重新加载设置.
  start: '&b重载配置中...'
  complete: '&b配置重载完成!'
addremove:
  help: '&b> &7/ps add|remove [playername]'
  help_desc: 使用此命令可以添加或删除领地的成员.
  owner_help: '&b> &7/ps addowner|removeowner [playername]'
  owner_help_desc: 使用此命令可以添加或删除领地的所有者.
get:
  help: '&b> &7/ps get [block]'
  help_desc: 使用此命令获取或购买保护石.
  gotten: '&b将保护石添加到库存!'
  no_permission_block: '&c您没有获取保护石的权限.'
  header: '&8&m=====&r 保护石 (点击获取) &8&m====='
  gui_block: '&7> &b%alias% (%xradius% x %zradius%) ($%price%)'
  gui_hover: 点击购买一个 %alias%!
give:
  help: '&b> &7/ps give [block] [player]'
  help_desc: 使用此命令给与玩家保护块.
  given: '&7Gave &b%block%&7 to &b%player%&7.'
  no_inventory_room: '&c玩家没有足够的库存室.'
sethome:
  help: '&b> &7/ps sethome'
  help_desc: 使用此命令将领地的家位置设置为当前位置.
  set: '&7领地家 &b%psid%&7 已被设置.'
list:
  help: '&b> &7/ps list [player (optional)]'
  help_desc: 使用此命令可以列出您或其他玩家拥有的领地.
  header: '&8&m=====&r %player%的领地s &8&m====='
  owner: '&7所有者:'
  member: '&7成员:'
name:
  help: '&b> &7/ps name [name|none]'
  help_desc: 使用此命令可为您的领地设置昵称,以便更轻松地识别领地.
  removed: '&7移除掉领地 %id% 的昵称.'
  set_name: '&7将领地 %id% 的昵称设置为 &b%name%&7.'
  taken: '&7领地昵称 &b%name%&7 已经被使用! 尝试换一个.'
setparent:
  help: '&b> &7/ps setparent [region|none]'
  help_desc: 使用此命令可以允许此领地继承其他领地的属性(所有者、成员、权限等)
  success: '&7已成功设置领地 &b%id%&7 从属于&b%parent%&7.'
  success_remove: '&7已成功移除掉领地 &b%id%&7 的从属.'
  circular_inheritance: '&c检测到循环继承 (父级已经继承了当前区域?). 父级未设置.'
merge:
  help: '&b> &7/ps merge'
  help_desc: 使用此命令将您所在的领地与其他重叠领地合并。
  disabled: 配置文件已禁用领地合并!
  merged: '&b已成功合并领地!'
  header: '&8&m=====&r 合并 %region% (点击合并) &8&m====='
  warning: '&7注意: 这将删除当前领地的所有设置!'
  not_allowed: '&c不允许合并此类型领地.'
  into: '&b当前领地与其他可以合并的地区重叠!'
  no_region: '&7没有重叠的领地可以合并.'
  click_to_merge: 单击以合并 %region%!
  auto_merged: '&7自动与 &b%region%&7 合并.'

block1.toml

(对于版本2.7.0-2020.4.4)

# 在下面自定义你的保护石
# 可用的保护石类型参考这里: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html#
# --------------------------------------------------------------------------------------------------
# 如果你想要使用玩家头颅,你可以这样写"PLAYER_HEAD:player_name" (举例: "PLAYER_HEAD:Notch")
# 使用自定义玩家头颅,你需要头颅的base64值. 比如在网站minecraft-heads.com上,你可以找到 vaule 值.
# 使用UUID玩家头颅,请去 https://sessionserver.mojang.com/session/minecraft/profile/PUT-UUID-HERE并且复制 "value" 值(不包括引号).
# 拿到 value 值之后按照这个格式即可 "PLAYER_HEAD:value"
type = "EMERALD_ORE"

# 另一种表示保护石的方法
# 可以使用 /ps give 和 /ps get 获取
# 必须是一个词或者数字 (不能有空格)
alias = "64"

# 是否将保护石的获取方式限制为仅可通过指令/ps get 或者/ps give或者自定义合成配方.
# 其他方法获得的方块 (例如挖矿) 将不能作为保护石使用(比如默认的钻石矿,如果这样关闭了,你精准镐采集的钻石矿是可以直接当成保护石方块来用的,不推荐关闭).
# 可以有效防止玩家从其他渠道获得保护石,这样你就可以在商店出售它
# 如果你想要玩家可以自己获得的话就关闭它
restrict_obtaining = true

# 在特定的世界中启用或禁用保护石
# "blacklist" 模式可防止在世界 "worlds" 使用保护石
# "whitelist" 模式仅允许在世界 "worlds" 使用保护石
# 会被权限 protectionstones.admin 权限覆盖 (默认OP拥有)
world_list_type = "blacklist"
worlds = [
    "exampleworld1",
    "exampleworld2"
]

# 当世界被限制时,是否阻止保护石的放置 (黑名单 / 白名单)
# 方块将可以正常放置,但是不会被此插件监听.
prevent_block_place_in_restricted_world = true

[region]
    # 两个不同玩家所创建的领地最小距离
    # 你需要在不同的保护石配置下修改这个配置,因为不同的保护石领地的大小不同
    # 设置为-1禁用此项,但是会检查是否重叠,重叠还是无法放置
    distance_between_claims = -1

    # 保护石的保护半径
    # y_radius设置为-1则是从基岩层到天空255层,如果设置-1无效,请自行更改为255
    # y_radius不是-1时,请将 config.toml 的 "allow_merging_regions" 设置为 false
    x_radius = 64
    y_radius = -1
    z_radius = 64

    # 偏移保护石
    # 如果你想讲保护石设置为不在领地的中心,你可以在此处偏移位置
    x_offset = 0
    y_offset = 0
    z_offset = 0

    # 自动设置领地家的位置的偏移量,默认在保护石上方
    home_x_offset = 0.0
    home_y_offset = 1.0
    home_z_offset = 0.0

    # 设置新创建的领地的默认权限
    # 可以在权限(flag)前面添加 -g [group] 来为指定组设置权限 (例: -g members pvp deny).
    # 支持PAPI变量
    flags = [
        "pvp deny",
        "tnt deny",
        "greeting &l你已进入玩家 &b&l%player% &f&l的领地",
        "farewell &l你已离开玩家 &b&l%player% &f&l的领地",
        "greeting-action &l你已进入玩家 &b&l%player% &f&l的领地",
        "farewell-action &l你已离开玩家 &b&l%player% &f&l的领地",
        "creeper-explosion deny",
    ]

    # 在这里列出所有者可以默认可以修改的权限
    # 如果你想给某个组修改的权限, 使用-g (例: "-g all,members pvp" 即关闭其他玩家以及领地成员的PVP)
    # "-g all pvp" - 可以防止玩家将本领地成员设置为成不可攻击
    allowed_flags = [
        "-g all pvp",
        "greeting",
        "greeting-title",
        "greeting-action",
        "farewell",
        "farewell-title",
        "farewell-action",
        "mob-spawning",
        "creeper-explosion",
    ]

    # 要隐藏哪些权限,即使用/ps indo无法看到的
    hidden_flags_from_info = [
        "ps-merged-regions",
        "ps-merged-regions-types",
        "ps-block-material",
        "ps-price",
        "ps-landlord",
        "ps-tenant",
        "ps-rent-period",
        "ps-rent-last-paid",
        "ps-for-sale",
        "ps-rent-settings",
        "ps-tax-payments-due",
        "ps-tax-last-payment-added",
        "ps-tax-autopayer"
    ]

    # 当前类型保护石的默认优先级
    priority = 0

    # 是否允许创建与您的其他领地不重叠/相邻的领地
    # 这是非常危险的,如果你打算设置为true,请好好考虑下
    allow_overlap_unowned_regions = false

    # 是否允许玩家与此领地重叠的其他领地
    # "owner" - 仅限所有者创建(默认)
    # "member" - 允许成员和所有者创建. (对于城市建设比较有帮助)
    # "all" - 允许所有玩家创建(危险!)
    # allow_overlap_unowned_regions 不设置为true也会生效
    allow_other_regions_to_overlap = "owner"

    # 是否允许此保护石创建的领地合并
    # 开启这项必须先将 config.toml 中的 allow_merging_regions 设置为 true
    allow_merging = true

[block_data]
    # 设置保护块的名称,使用/ps give 或者 /ps get 获得
    # 也可以作用于自定义合成物品 (详情看下面 custom_recipe)
    # 设置''则为空
    display_name = "&a&m<---&r&b 64x64 保护石 &r&a&m--->"

    # 设置保护块的标签lore,使用/ps give 或者 /ps get 获得
    # 也可以作用于自定义合成物品 (详情看下面 custom_recipe)
    # 设置[]则为空
    lore = [
        "&6(?■_■)ノ? 没能能碰我的东西!",
    ]

    # 设置保护石的价格, /ps get 时会自动扣除
    # 要求至少有一款经济插件 (比如 Vault, ie. Essentials)
    price = 0.0

    # 是否允许使用自定义配方制作保护石
    allow_craft_with_custom_recipe = false
    # 自定义合成配方
    # 材料代码代码在这里查询: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
    # 你也可以在配方中添加其他保护石作为原料,格式:PROTECTION_STONES:名称
    # ""代表空
    custom_recipe = [
        ["", "STONE", ""],
        ["STONE", "EMERALD", "STONE"],
        ["", "STONE", ""]
    ]
    # 制作出来的保护石数量(比如设置为2则一份材料就可以做出来两个保护石)
    recipe_amount = 1

[economy]
    # 此项需要先在config.toml中启动税收 (tax_enabled)
    # 每个周期征收的金额
    tax_amount = 0.0

    # 每个税收周期之剑的时间(单位:秒),设置-1禁用税收
    tax_period = -1

    # 税收最大延期时间,如果超过这个时间玩家还未缴纳费用,将会受到惩罚(单位:秒)
    tax_payment_time = 86400

    # 是否将创建领地的玩家设置成自动纳税人
    start_with_tax_autopay = true

    # 租户默认所在的组(可选参数owner member).
    tenant_rent_role = "member"

    # 当领地租出去时,此玩家是否仍然是所有者
    landlord_still_owner = true

[behaviour]
    # 防止保护石后是否自动隐藏
    auto_hide = false

    # 放置后是否自动与其他领地合并(重叠/相邻)
    auto_merge = false

    # 删除领地时是否返还保护石
    no_drop = false

    # 是否阻止活塞推动方块,建议设置为 true
    prevent_piston_push = true

    # 是否阻止爆炸破坏领地石
    # 强烈建议开启
    prevent_explode = true

    # 是否关闭爆炸保护,主要用于PVP/派系类服务器
    # 此项要求 prevent_explode 必须是 false
    destroy_region_when_explode = false

    # 精准采集: 设置为 true 时, 保护石是矿石时,将禁止被自然挖掘(比如你设置绿宝石矿为保护石,且此项为true,那么自然环境中的绿宝石矿会直接小时你就没法精准采集了)
    # 这是旧版本阻止自然获得保护石方块的方法
    # 建议使用新方法 "Restrict Obtaining" 这项就留着过年吧:)
    prevent_silk_touch = false

    # 设置放置保护石的费用 (不同于 /ps get 的费用,这个是在放置的时候扣除的费用)
    cost_to_place = 0.0

[player]
    # 是否允许玩家使用shift+右键拆掉保护石
    # 如果保护石是基岩或者命令方块这类无法破坏的方块,这项建议开启.
    allow_shift_right_break = false

    # 是否阻止其他玩家传送到保护区 (不包括末影珍珠和紫颂果)
    # 不阻止其他玩家进入, 如果你想彻底阻止玩家进入请自定设置"entry deny"
    # 此项设置会被 protectionstones.tp.bypasstp 权限覆盖
    prevent_teleport_in = false

    # 是否开启传送时不可移动,相关指令 /ps home /ps tp. 可以设置为0禁用.
    # 开启之后只有玩家不移动才能传送
    # 拥有权限 protectionstones.tp.bypasswait 可以无视
    no_moving_when_tp_waiting = true
    tp_waiting_seconds = 0

    # 是否阻止玩家通过 /ps get 获得此类保护石.
    # 拥有权限 protectionstones.admin 可以无视
    prevent_ps_get = false

    # 放置此类保护石是否需要特定的权限 (权限: protectionstones.create)
    #也可以使用 /ps get (权限: protectionstones.get)
    # '' 处写额外权限
    permission = ''

[event]

    # 事件部分
    # ~~~~~~~~~~~~~~
    # 每一行事件的格式均为 'type: action'
    # 下面是可以使用的类型:
    # player_command - 以玩家身份执行命令
    # console_command - 以控制台身份执行命令
    # message - 向玩家或者控制台发送消息(支持颜色代码)
    # global_message - 向玩所有家或者控制台发送消息(支持颜色代码)

    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # 是否启用时间跟踪 (API 事件将会启用)
    enable = false

    # 创建领地时执行命令 (例:玩家放置保护石)
    on_region_create = [
        'global_message: &l%player% 创建了领地 %region%!',
    ]

    # 破坏领地时执行指令 (例:玩家拆除保护石)
    on_region_destroy = [
        'console_command: say %player% 取消了领地 %region%!',
    ]

常见问题

黑色为原作者/蓝色为我(搬运工)的回答
Q:添加新保护石出现错误怎么办?
A:通过控制台检查错误,大部分情况下都是以为书写不规范导致的,如果你不了解toml语法可以去这里学习https://github.com/toml-lang/toml,或者问我(这里是原作者不是我你们不要问我我不知道233). 另一个已知的问题就是windows自带的记事本会导致编码错误,请不要使用记事本,推荐使用更好的文本编辑器(比如vscode)。
Q:为什么我从创造背包拿出来的保护石没有作用?(我已经放下它了)
A:从2.0.0版本之后,restrict-obtaining是默认开启的,这就意味着你只能使用/ps get或者/ps give获得保护石(或者其他可以调动这个API的插件),因为它们是带有NBT数据的方块,常规情况下获得的方块是没有NBT的,所以是无效的。你可以将restrict-obtaining设置为false来避免这种情况。
Q:我如何在商店出售保护石?
A:出售保护石有很多种方法,最简单的方法就是在配置文件设定好价格使用/ps get获取;当然你也可以使用其他插件来搭配进行/ps give指令使用,比如说shopchest chestcommands bossshop trmenu 等等菜单/商店插件(我自己加了一些)。
Q:为什么玩家看不到合并菜单?
A:你需要给玩家protectionstones.merge权限
Q:为什么有一些权限(flag)适用于成员?比如说(block-break deny)。
A:默认权限(flag)适用于每一个玩家,包括该领地的成员,你必须使用组(-g)来进行单独的权限设置才可以,可以参考http://worldguard.enginehub.org/en/latest/regions/flags
Q:玩家已经创建领地了,但是我想更改它使用的这种方块的属性,我该怎么做?
A:你可以使用指令 /ps adminchangeblock [world] [fromblock] [toblock] 来达到你想要的效果。只需要你提前创建好一个新的保护石配置文件(block.toml file) 然后重载,使用指令将旧保护石替换为新保护石即可,完成之后你就可以删除旧保护石配置了 Q:为什么xxx权限(flag) 无效?
A:权限相关的是由WorldGuard提供的,可能它的设置跟你想象的不太一样,想要具体了解的话可以参考这里https://worldguard.enginehub.org/en/latest/regions/flags/
Q:我发现了一个BUG,该怎么修复它?
A:请把相关报错,服务端版本等相关信息回复在spigot讨论页面 或者github的issue里面
不要联系我,我只是个搬运工,我不会修插件= v =
Q:我想要一个新的功能!
A:请回复在spigot讨论页面 或者github的issue里面. 新功能不一定会增添到这个插件里面,可能会用同样的API制作新的插件。
Q:有开发人员API吗?
A:肯定的啊!不过目前处于测试阶段,所以肯定会改变方法,你可以在这里看到相关内容https://github.com/espidev/ProtectionStones/wiki/API
Q:有汉化错误怎么办?
A:论坛私信我,因为是我真正意义上的第一款搬运插件,所以难免会有错误或者语句不通顺

参考资料

[1]