本帖最后由 OAO_miao 于 2020-7-5 20:09 编辑

大家看到worldguard时也许会立刻联想到worldedit插件,这两个插件都是由sk89q带头开发的。
worldguard在dev.bukkit.org能找到的最早版本发布于2011年,至今也一直在更新,但是国内较少有服务器用这个插件。
国内关于worldguard的中文资料基本都是两三年前的了,MCBBS论坛这边也很久没人搬运新版本,近期也是刚好用到了这个插件,来搬运一下好了
worldguard插件的用途和领地插件类似,但个人认为不如领地插件那样友好,没有多语言支持、设置也有些复杂。
不过保护效果比领地更强,很多功能是领地插件没有的,用途更偏向于管理员工具和地图制作方面。并不适合完全替代领地插件,用来保护服务器出生点、活动场地和各种建筑还是不错的。

基本的保护包括:
  • 保护各种方块不被破坏或放置(包括火方块)。
  • 限制液体流动(***需先在配置文件中启用***)
  • 保护各种容器类方块不被打开,如箱子、熔炉、发射器等。
  • 保护工作台、附魔台、末影箱、铁砧、门、拉杆、按钮、压力板...等等的使用。
  • TNT、爬行者、末影人、等产生的破坏及玩家伤害。
  • 防止从区域外向里面投放沙子、砂砾进行掩埋破坏(会直接变成掉落物)。
  • PVP保护(包括使用鱼杆打人、投掷鸡蛋、雪球、负面药水)
  • 活塞推方块。
  • 保护矿车和船。
  • 保护画和展示框、盔甲架。
  • 保护动物 包括杀死动物、喂食、用拴绳拉动物、骑乘、剪羊毛...。
  • 外部树木向区域内的生长
请注意:默认情况下,所有保护都是未启用的,请务必在配置文件中启用你需要的保护。
对于建筑及游戏地图的制作方面:

  • 防止冰、雪融化。
  • 防止水结冰。
  • 防止雪落在方块上。
  • 阻止玩家丢/捡物品。
  • 阻止草方块蔓延。
  • 阻止菌丝方块蔓延。
  • 阻止藤蔓、蘑菇的蔓延。
  • 阻止玩家在区域内使用某些命令。
  • 阻止玩家进入/离开区域(可阻止“空降”方式进入)
  • 限制插件的tp/warp等传送方式进入/离开区域。
  • 阻止使用末影珍珠瞬移。
  • 可设置区域内的<重生点>(在区域内死亡后会在这个重生点复活)。
  • 定义回复饥饿/血量和间隔。
  • 阻止摔落伤害
  • 区域内的gamemode
  • 区域内无敌
  • 等等...

插件安装:

1.安装前置依赖插件:worldedit(https://dev.bukkit.org/projects/worldedit/files
2.安装worldguard 下载地址:https://dev.bukkit.org/projects/worldguard/files(用论坛附件发不上来,自己去下载吧)

(两个插件都放在plugins文件夹中)
3.重启服务器
4.编辑worldguard配置文件,根据需要启用相应保护。
5.去看wiki:https://worldguard.enginehub.org/en/latest/
(用这个插件就要做好去啃wiki的准备,现有的中文资料不多,而且太老了。)

===以下介绍内容大部分搬运自官方wiki 适用于worldguard 6.1版本 需要op权限===
lichi2050同学也搬运翻译了官方wiki的内容,比我这个帖子更详细 传送门:http://www.mcbbs.net/thread-505810-1-1.html

基本使用:
如何创建一个worldguard的保护区域?
1.首先 用worldedit选择区域范围(最简单就是木斧选择两个点啦),只支持cuboid和poly两种模式。具体见worldedit教程。



(图里的效果是客户端使用了wecui MOD)
2.输入命令/region define <区域名>

  1. /region define spawn
复制代码
即可创建一个名为spawn的区域(/region命令可以简写为/rg),区域的玩家权限和flag设置请看后面介绍。
也可以在后面加上所有者,比如
  1. /region define spawn sk89q 这样创建spawn后所有者就是sk89q了。
  2. /region define spawn Notch sk89q g:builders 这样将有多个所有者
复制代码
g:builders表示权限组的builders组。
worldguard支持创建重叠的区域,比如spawn里创建个shop区域,都是可以的,但是要注意区域的优先级和权限设置冲突。

插件权限:
默认情况下只有op可以使用,普通玩家没有权限使用worldguard插件。
如果想给玩家自己使用插件的权限 请看http://docs.enginehub.org/manual/worldguard/latest/permissions/
常用命令:
/rg define <区域名> 创建一个区域
/rg remove <区域名> 删除一个区域
/rg list 列出全部区域列表
/rg info <区域名> 查看区域权限信息,也可以拿<皮革>对方块右键查询区域信息。
/rg addowner <区域名> <玩家名或权限组> 添加所有者
/rg flag <区域名> <flag> <deny/allow> 设置区域的权限,具体见后面说明,
/rg removeowner <区域名> <玩家名或权限组> 删除所有者
/rg addmember <区域名> <玩家名或权限组> 添加用户
/rg removemember <区域名> <玩家名或权限组> 删除用户
命令后面还可以加上 -w <世界名> 来直接指定世界
比如/rg flag <区域名> <flag> <deny/allow> -w world_nether 就可以直接操作下界的区域设置,而不必先传送到下界。
其他命令:
/god <玩家> 无敌
/ungod <玩家> 取消无敌模式
/heal <玩家> 治疗玩家
/locate <玩家>可以用指南针定位玩家(看上去很好玩∑( ̄□ ̄)还没试过)
玩家名可以用*表示全部玩家,#<世界名>表示某个世界,#near表示附近玩家
下面几个命令不要随意使用:
/stopfire 停止火焰蔓延
/allowfire 允许火焰蔓延
/stoplag 停止服务器的物理活动和方块更新,并会删除实体(生物)。请不要在生存世界随意使用此命令
→_→停止后可以做出一些bug效果的东西,比如长在莹石上的甘蔗,用we放置出2x2的仙人掌。。。
/stoplag -c 取消
/stoplag -i 查看当前状态

/worldguard debug <testinteract|testplace|testdamage|testbreak> 以特定玩家的身份去进行放置/破坏方块等模拟操作,可以显示相应操作是被哪个插件所拦截。
测试时要求相应玩家在线,op准星对准测试目标使用此命令。(注意:NCP插件会判定此操作为作弊而直接拦截,使用前请先将相应玩家排除检测。)


/worldguard reload 重新加载配置文件
/worldguard version 显示worldguard插件版本

worldguard区域采用的玩家权限设置是分为不同<组>,无法给单个玩家设置某项权限。
组包括:

all - 任何人(默认)
members - 用户
owners - 所有者
nonmembers - 非用户
nonowners - 非所有者
对应有4个命令addowner/removeowner/addmember/removemember
例如:
  1. /rg addowner spawn Notch
复制代码

也可以使用g:<权限组>
  1. /rg addowner spawn g:builder
复制代码

其中,<用户>只是有区域的“使用权”,没有更改设置的权限。
默认只有op有权限更改worldguard区域设置,如果在权限组中进行了适当的配置,<所有者>将可以自己更改区域flag和添加/删除用户。
另外,每个世界还有一个全局区域__global__,可以给全局区域设置一些flag。
比如/rg flag __global__ pvp deny -w world 主世界全局禁止pvp,然后可以专门创建个区域开启pvp,作为pvp场使用。

不完整flag列表:
完整flag列表在游戏内自己看吧,官方wiki的flag列表也不完整
命令:
  1. /rg flag <区域名> <flag> <allow/deny>
  2. /rg flag <区域名> -g <组名> <flag> <allow/deny>
复制代码
如:
  1. /rg flag spawn use allow
  2. /rg flag spawn -g member build allow
复制代码

build 这个build并不只是放置/破坏方块,还包括下面的interact、use、chest-access等权限。
interact 少了放置和破坏方块的权限,不能杀动物,但仍然可以骑马,其他和上面基本一样。
block-break 破坏方块
block-place 放置方块
use 只可以<使用>各种方块了,比如工作台、末影箱、附魔台,按钮、门等,不能打开箱子和发射器这类“容器”。
chest-access 箱子权限,也包括发射器、漏斗、熔炉等具有物品储存功能的方块。
pvp 这还用解释嘛...
sleep 是否可以使用区域内的床睡觉。
vehicle-place 放置船/矿车
vehicle-destroy 是否可以破坏船或矿车(也就是打成掉落物)
lighter 点火
下面开始是针对怪物和自然事件的,不是玩家权限。
creeper-explosion 爬行者爆炸
enderdragon-block-damage 末影龙的破坏
tnt
ghast-fireball 恶魂火球
other-explosion 爆炸
fire-spread 火蔓延
enderman-grief 末影人搬方块
mob-spawning 禁止生成怪物,包括刷怪笼和刷怪蛋。
deny-spawn 禁止某些生物的生成,例如/rg flag spawn deny-spawn creeper,cow 禁止爬行者和牛的生成。
entity-painting-destroy 非玩家途径对画的破坏
entity-item-frame-destroy 非玩家途径对展示框的破坏
(这里的<非玩家>指的是像骷髅射箭、闪电等对展示框/画的破坏)
lava-fire 岩浆是否能产生火
lightning 闪电(包括/lightning命令产生的闪电)
water-flow 水流动
lava-flow 岩浆流动
**注意:默认不启用液体流动限制,需要在配置文件中启用high-frequency-flags后才有效**
snow-fall 雪是否能落在方块上
snow-melt 雪是否能融化
ice-form 结冰
ice-melt 冰块融化
mushroom-growth 蘑菇蔓延
leaf-decay 树叶凋落
grass-growth 草方块蔓延
mycelium-spread 菌丝蔓延
vine-growth 藤蔓蔓延
soil-dry 是否允许缺水的耕地方块变回泥土
fall-damage 摔落伤害
time-lock 展示给玩家的时间,时间有效范围是0-24000,可使用-和+表示相对时间。
weather-lock 展示给玩家的天气,可设置为clear或downfall
worldguard 6.1.2新增:
chorus-fruit-teleport 紫颂果传送


就先写到这吧(^0^)/~还有好多内容没写,自己去看wiki吧喵w
我这个帖子内容很有限,看完也很难达到正常使用的程度,如果不打算看wiki,建议还是不要用worldguard了,不然肯定被坑。
因为截图基本都是‘你不能在这里进行某某操作’这类提示。。。所以只发了一张图∑( ̄□ ̄),其他截图没发。