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

WorldGuard

来自Minecraft插件百科
Lichi2050讨论 | 贡献2015年10月12日 (一) 23:07的版本 定义和重定义区域(define和redifine)
跳转至: 导航搜索

Mcbbs发布贴http://www.mcbbs.net/thread-505810-1-1.html

配设文件

指令介绍

Region指令

定义和重定义区域(define和redifine)

/region define 区域名称 (玩家1) (玩家2) (玩家...)
/region def 区域名称 (玩家1) (玩家2) (玩家...)
/region d 区域名称 (玩家1) (玩家2) (玩家...)
()内容为可选项,如果没有指定玩家,定义后的区域将会属于输入命令的玩家(可以设定多个拥有者)

这个指令主要是创造区域,创造后才可以进行更多的设定,这个指令是没有限制区域大小的(根据WorldEdit选择的大小)
玩家部分也可以设定为权限组,这个指令主要是给管理员使用,玩家会有另外一个指令 /claim

/region define 区域名称 g:权限组名称 玩家1 玩家2
注*整个世界区域叫做 __global__

/region redefine 区域名称
/region update 区域名称
/region move 区域名称

这个指令会重定义已定义区域,选择好新区域后,输入指令后就可以重定义指定区域

区域圈地(claim)

区域信息(information)

区域选择(select)

区域表列(list)

设定flag

设定优先权(priority)f

设定子区域(parent)

删除区域(remove)

区域传送(teleport)

区域管理(management)

权限介绍

regions教程

基础教程

flag列表

区域权限组

开发者 API

取读WorldGuard

基础权限

区域管理

查看Flags

取读一个区域

Javadocs

查看Javadocs

数据格式

Region数据都保存在regions.txt内. 打开后首先会有:

Region ID
Region 类型(type)

Worldguard3.0版本以下的保存方式:
Point 1 X region坐标
Point 1 Y ↓
Point 1 Z ↓
Point 2 X ↑
Point 2 Y ↑
Point 2 Z region坐标
Priority 优先权(请勿设定为0)
List of owners 拥有者列表
List of flags Flags列表(设置过的)
Entry message (进入region提示信息/欢迎语)

Worldguard3.0版本以上的保存方式:
Point 1 X region坐标
Point 1 Y ↓
Point 1 Z ↓
Point 2 X ↑
Point 2 Y ↑
Point 2 Z region坐标

Priority 优先权(请勿设定为0)
ID of parent region 父regionID(设置过子region才会显示)
List of owners 拥有者列表
List of members 会员列表
List of flags Flags列表(设置过的)
Entry message (进入region提示信息/欢迎语)
Exit message (退出region提示信息)

拥有者以及会员数据保存方式:
u: 玩家名称
g: region权限组

例如
u:sk89q,u:tetsu,g:admins

意思就是sk89q以及tetsu这两个玩家都在admins组内。

Flags数据保存方式:
每一个flag都会有一个特殊的字母,例如Build就是b,通过一个+或者-我们能够查看这个flag的状态
+就是启动
-就是关闭/禁止
如果没有+或- 那么代表这个flag默认就是启动的
例如
+bpmc-t-l-f-F

Flag 名称 代表字母
Passthrough z
Build b
PvP p
Mob damage m
Creeper explosion c
TNT t
Flint and steel l
Fire spread f
Lava fire spread F

黑名单(Blacklist)

worldguard黑名单可以指定玩家进行某些动作时的处理方法

比如: 阻止玩家挖掉金矿石。 当有人挖掘钻石块时通知在线管理员。 当玩家放置附魔台时,向放置者发送一条提示消息。

下面是一个黑名单的例子:

除admins,mods组以外 禁止使用岩浆桶 并向使用者发送自定义提示消息
[lavabucket]
ignore-groups=admins,mods
on-use=deny,tell
message=不可以使用岩浆桶呢喵!

禁止挖掉铁矿和金矿并提示默认消息 同时通知在线管理员
[goldore,ironore]
ignore-groups=admins
on-break=deny,tell,notify

除admins组外禁止放置tnt 放置时会通知管理员并且踢出去
[tnt]
ignore-groups=admins
on-place=deny,notify,kick

黑名单配置文件

黑名单的配置文件保存在plugins\WorldGuard\worlds下面,每个世界都有单独的配置文件
例子:

worlds/world/blacklist.txt 主世界
worlds/world_the_end/blacklist.txt 末地
worlds/mining_world/blacklist.txt 资源世界(如果服务器有多世界的话)

提示 worldguard不支持多个世界共用同一个黑名单配置文件,但是你可以利用文件系统的“链接”实现。
注意:编辑黑名单后需要用/wg reload重新加载才能生效

格式:

[物品或方块列表]
事件=操作
选项=值

匹配规则:

物品/方块列表可以填写数字id或bukkit的材料名(可参考 https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)
多个项目之间用半角逗号分隔
[wood,brick,glass]
还可以指定数据值如白桦木:
[17:1]
白桦木和丛林木:
[17:1;3]
指定数据值范围
[wood:2-3]
[wood:>=2,<=3]
这些写法是可以混合使用的
[wood:0;>=2,grass:1-2]

事件:

Event Explanation
on-break 破坏方块
on-destroy-with 用此物品打破方块
on-place 放置方块
on-use 使用
on-interact 交互,如右键门、拉杆、箱子等
on-drop 丢弃特定物品
on-acquire 获得物品
on-dispense 针对发射器,发射特定物品

操作:

Action Explanation
deny 阻止操作 (黑名单模式)
allow 允许操作(仅白名单模式)
notify 发送通知消息给有worldguard.notify权限的人
log 记录日志到终端、日志文件、数据库。
tell 给玩家一个提示消息
kick 踢出玩家
ban 将玩家ban掉(永久性)

选项:

Option Explanation
ignore-groups 忽略特定权限组,多个组用半角逗号分隔
ignore-perms 忽略有特定权限的玩家,多个权限同样是用逗号分隔
comment 自定义通知消息
message 自定义tell的消息,可用%s表示相应物品名

另外一个列子

放置和打破信标时通知在线管理员
[beacon]
on-break=notify
on-place=notify
阻止用钻石镐和金铲子破坏方块
[diamond_pickaxe,284]
on-destroy-with=tell,deny
阻止使用铁锄、钻石剑耕地和攻击
[iron_hoe,276]
on-use=tell,deny
阻止与箱子、石头按钮交互
[chest,stone_button]
on-interact=deny,tell
阻止丢出命令方块
[commandblock]
on-drop=deny,tell
message=不要乱丢命令方块~
除admins组外 阻止获得基岩
[bedrock]
on-acquire=deny
ignore-groups=admins
阻止发射器发射岩浆桶和漏斗矿车
[lavabucket,hopper_minecart]
on-dispense=deny,log,notify
[tnt]
on-break=deny,notify,kick
on-use=deny,notify,kick
on-place=deny,ban
on-acquire=deny

日志 日志有三种选择

  • 输出到终端(就是服务器后台)
  • 记录日志到文件
  • 记录到数据库

在worldguard配置文件(plugins\WorldGuard\config.yml)中可以对日志文件和数据库进行具体设置。

blacklist:

   use-as-whitelist: false
logging:
console:
enable: true
database:
enable: false
dsn: jdbc:mysql://localhost:3306/minecraft
user: root
pass:
table: blacklist_events
file:
enable: false
path: worldguard/logs/%Y-%m-%d.log
open-files: 10

日志文件的路径中可使用以下“变量”:
%Y 年 (YYYY)
%m 月 (MM)
%d 日 (DD)
%W 周 (00-52)
%H 小时(24小时) (HH)
%h 小时(12小时) (HH)
%i 分 (mm)
%s 秒 (ss)
%u 用户名
%% 表示“%”符号

数据库
worldguard可以将日志记录进mysql数据库,但需要先创建数据库和表,你可以使用下面的语句创建专用的表

CREATE TABLE IF NOT EXISTS `blacklist_events` (

`id` int(11) NOT NULL AUTO_INCREMENT,
`world` varchar(10) NOT NULL,
`event` varchar(25) NOT NULL,
`player` varchar(16) NOT NULL,
`x` int(11) NOT NULL,
`y` int(11) NOT NULL,
`z` int(11) NOT NULL,
`item` int(11) NOT NULL,
`time` int(11) NOT NULL,
`comment` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)

);

最后说一下,使用时发现,日志文件功能在某些平台下可能无法正常工作,同时会导致黑名单失效,开启此功能时请务必进行测试。 发射器的部分可能会和其他插件的发射器黑名单冲突导致报错。


箱子保护

WorldGuard提供基础的箱子保护服务, 玩家可以通过在箱子下方放置特殊字符的牌子来达到保护的目的。 我们不建议新设置的WorldGuard使用本功能因为本功能并不是WorldGuard常用的一部分 除此以外,区域设置是比本功能更好的保护拥有者财产的方法。 因为它不涉及像漏斗一类方块的问题。

提示:如果你是希望保护单块的方块,箱子等, 我们建议使用第三方保护插件。 例如Lockette 或者 LWC.

启用此功能: 首先箱子保护功能必须在配置文件中启用。 如果没有手动启用,箱子保护功能不会自动工作 这时不能使用牌子锁功能。(此项功能也可在配置文件中禁用)

使用方法:

  1. 必须是一个信息牌
  2. 必须位于箱子下面(如果是大箱子,只需在其一侧下面)
  3. 在第一行输入[Lock]
  4. 在第二行输入玩家的名字
  5. 在剩余两行写上其他允许使用玩家的名字

注:不可将其他玩家名字放在第二行的位置 提示:WorldGuard功能并不支持UUID功能 警告:由于Minecraft1.8版本的改变 从旧版本升级将会破坏掉所有的保护牌子 实际上它将破坏全部写有[]的牌子

主机密码(登录密码)

在过去由于Minecraft的登录代码问题,玩家可以登录到服务器的任何玩家包括拥有者和管理者的账号上, 在2010-2013年间,有五次利用该性质的漏洞经常导致成千上万的服务器被黑客攻击。

这项登录密码功能作为一个额外的登录屏障被添加到WorldGuard中。 其工作原理是作为一项额外的屏障来达到此功能,与Mojang的登录无关。 在登录时必须发送指定信息 (通俗的说就是输入你的密码)才能登录服务器。 即使攻击者有能力破坏Minecraft的登录系统来成为一个管理员。 但因在服务器缺少发送指定的信息,经服务器检测后无法活动。 注:这种登录验证方式的漏洞是很不明显的,很少见的。

启用功能: 当一个玩家通过某一个地址连接服务器时,输入play.example.com Minecraft将会告诉服务器该玩家通过这个地址登录 管理者可以通过一个特殊的秘密语句来登录, 比如secretmod.play.example.com这个地址 服务器将会检测到该管理者登录使用的这个地址。 也就是一个类似密码的机制,不过密码是地址格式。

主机密码允许特定玩家使用特定地址登录, 如果地址错误,他将立即被踢下线

配置:

host-keys:

   your_username: bagels.play.example.com
   moderator1_name: manoverboard.play.example.com

提示:主机密码功能暂不支持UUID功能

DNS配置: 为了使此功能工作,你需要bagels.play.example.com 和 manoverboard.play.example.com 指向你的服务 然而不要在您使用的域名中添加域名的记录,因为很容易使得攻击者找出管理员域名从而登录。


相比之下,我们建议您安装通用地址-“wildcard addresses.”。例如设置了play.example.com, 这将意味着任何相同前缀会允许登录。(例如aa.play.example.com,ab.play.example.com,ac.play.example.com,等)。 提示:如果你没有一个域名或不能设置通配符地址,你可以使用xip.io。

更多帮助

你需要更多的帮助吗?我建议你

你可以去IRC提问
注*IRC聊天频道是维基百科24小时开放的“聊天室”

你可以在Twitter上联系sk89q
sk89q是Worldguard的作者(也是Worldedit以及其他不少插件的作者)

你可以查看Changelog(全英文,英文不好的直接跳过吧)
Changelog就是更新信息(每次更新修改/增加/删除等等了什么)

你如果有什么建议,或者发现了什么Bug可以到这里反馈 (全英文,英文不好的直接跳过吧)