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

“WorldGuard”的版本间的差异

来自Minecraft插件百科
跳转至: 导航搜索
开发者 API
C7w讨论 | 贡献
第1行: 第1行:
Mcbbs发布贴http://www.mcbbs.net/thread-505810-1-1.html
+
哈哈哈哈这里是总介绍
='''配设文件'''=
+
WorldGuard has a host of functions for server owners, server map makers, regular survival servers, and everyone else in between.
='''指令介绍'''=
 
==Region指令==
 
===定义和重定义区域(define和redifine)===
 
  
/region define 区域名称 (玩家1) (玩家2) (玩家...)<br />
+
Create zones in your world that only permit mods or certain players from building within
/region def 区域名称 (玩家1) (玩家2) (玩家...)<br />
+
Set additional game rules on your server (deny wither block damage, falling damage, etc.)
/region d 区域名称 (玩家1) (玩家2) (玩家...)<br />
+
Set game rules on specific areas (food regen, health regen, disable PvP, TNT, control mob damage) in your world
()内容为可选项,如果没有指定玩家,定义后的区域将会属于输入命令的玩家(可以设定多个拥有者)<br />
+
Blacklist certain items and blocks so they can’t be used
 +
Dump useful statistics and information about your server (/wg report -p)
 +
CPU profile your server (/wg profile -p)
 +
Add useful commands like an immediate “STOP ALL FIRE SPREAD” command.
 +
Works, more or less, with other plugins and mods (other Bukkit plugins and FTB mods)
 +
Protects against many types of abuse (tree growth, TNT cannons, piston machines, etc.)
 +
Certain interactions can also be allowed (door and lever usage, etc.)
 +
Open source, and one of the oldest Minecraft projects (older than Bukkit!)
 +
Enable only features you want! Everything is off by default. You can just install WorldGuard and configure it later.
 +
==安装==
  
这个指令主要是创造区域,创造后才可以进行更多的设定,这个指令是没有限制区域大小的(根据WorldEdit选择的大小)<br />
+
==配置==
玩家部分也可以设定为权限组,这个指令主要是给管理员使用,玩家会有另外一个指令 /claim<br />
+
===热键===
  
/region define 区域名称 g:权限组名称 玩家1 玩家2<br />
+
==权限==
'''注*整个世界区域叫做 __global__'''
+
===建筑权限===
  
/region redefine 区域名称<br />
+
==命令==
/region update 区域名称<br />
 
/region move 区域名称<br />
 
  
这个指令会重定义已定义区域,选择好新区域后,输入指令后就可以重定义指定区域<br />
+
==黑名单==
  
===区域圈地(claim)===
+
==区域==
 +
===快速开始===
 +
===区域魔杖===
 +
===区域权限===
 +
===优先级与继承===
 +
===全局区域===
  
/region claim 区域名称 (玩家1) (玩家2) (玩家...)<br />
 
  
'''注意!'''这个指令是在2010年11至12月出现的,是很早期的指令,比Bukkit都早,在不久的将来会受到改善!<br />
+
==地址==
这个指令和define指令非常相似,但是加入了一些其他设定<br />
+
http://docs.enginehub.org/manual/worldguard/latest/regions/priorities/
 
 
如果配设内有启动claim功能,玩家将会被限制区域数量<br />
 
创造新区域时不可以重复区域名称,除非你是拥有者,那么就会重定义该区域<br />
 
新区域不可覆盖其他区域<br />
 
如果配设内有启动claim功能,重新新区域时可以覆盖玩家拥有的其他区域<br />
 
如果配设内有启动claim功能,玩家将会被限制区域大小<br />
 
 
 
===区域信息(information)===
 
 
 
/region info (-s)(世界名称) (区域名称)<br />
 
 
 
列出区域的详细信息,内含<br />
 
 
 
区域名称(区域类型,优先权)<br />
 
区域flags<br />
 
区域拥有者<br />
 
区域成员<br />
 
区域边界<br />
 
 
 
空的信息项不会显示<br />
 
在指令内加入-s 会在显示信息的同时选择该区域<br />
 
如果没有输入区域名称,插件会自动取读脚下的区域<br />
 
 
 
'''列子:查看“TownPlot”区域的信息'''
 
/region info townplot<br />
 
 
 
'''列子:查看地狱世界“TownPlot”区域的信息'''
 
/region info world_nether TownPlot<br />
 
<br />
 
 
 
===区域选择(select)===
 
 
 
/region select [区域名称]<br />
 
这个指令会选择区域<br />
 
如果没有输入区域名称,插件会自动取读脚下的区域<br />
 
 
 
'''列子:选择“TownPlot”区域'''
 
/region select townplot<br />
 
 
 
===区域表列(list)===
 
 
 
区域表列(list)<br />
 
 
 
/region list (页数)(-w 世界名称)(-p 玩家)<br />
 
 
 
'''列子:列出第一页区域列表'''
 
/region list<br />
 
 
 
'''列子:列出地狱世界第三页区域列表'''
 
/region list 3 -w world_nether<br />
 
 
 
同时也可以只显示"玩家"的区域,影藏其他区域,需要在指令内加入-p 玩家<br />
 
 
 
'''列子:列出玩家1的区域列表'''
 
/region list -p 玩家1<br />
 
 
 
===设定flag===
 
 
 
/region flag 区域名称 flag (-g 权限组) [-w 世界名称] (数据值)<br />
 
这个指令可以为区域设定flag,如果(数据值)没有填的话,选择的flag就会被清除(还原)<br />
 
你们必须明白区域优先权和父子区域的关系才可以正确的设定flag,所以最好去查看flag列表<br />
 
 
 
'''列子:“TownPlot”区域禁止pvp的flag'''<br />
 
/region flag townplot pvp deny<br />
 
 
 
'''列子:在“duduworld”世界“TownPlot”区域禁止pvp的flag'''<br />
 
/region flag townplot pvp -w duduworld deny<br />
 
 
 
'''列子:“TownPlot”区域设定欢迎信息的flag'''<br />
 
/region flag townplot greeting 欢迎你来到这个区域, %name%!<br />
 
进入“TownPlot”区域显示:欢迎你来到这个区域, 玩家ID!<br />
 
 
 
'''列子:“TownPlot”区域清除退出信息的flag'''<br />
 
/region flag townplot farewell<br />
 
效果:退出“TownPlot”区域时不显示退出信息<br />
 
 
 
===设定优先权(priority)f===
 
 
 
/region setpriority [区域名称] (-w 世界名称) [优先权]<br />
 
/region priority [区域名称] (-w 世界名称) [优先权]<br />
 
/region pri [区域名称] (-w 世界名称) [优先权]<br />
 
 
 
设定区域优先权,[优先权]处得填一个整数,可以是正数也可以是负数。<br />
 
 
 
===设定子区域(parent)===
 
 
 
/region setparent [子区域] [父区域]<br />
 
/region parent [子区域] [父区域]<br />
 
/region par [子区域] [父区域]<br />
 
 
 
设定子区域。<br />
 
 
 
===删除区域(remove)===
 
 
 
/region remove [区域名称] (-w 世界名称)<br />
 
/region rem [区域名称] (-w 世界名称)<br />
 
/region delete [区域名称] (-w 世界名称)<br />
 
/region del [区域名称] (-w 世界名称)<br />
 
 
 
删除一个区域<br />
 
 
 
===区域传送(teleport)===
 
 
 
/region teleport (-s) [区域名称]<br />
 
/region tp (-s) [区域名称]<br />
 
 
 
传送到某个区域内,如果加入-s就会传送到区域设定的重生点。<br />
 
 
 
===区域管理(management)===
 
 
 
/region load (-w 世界名称)<br />
 
/region save (-w 世界名称)<br />
 
 
 
加载或者保存设定完的区域。<br />
 
'''注意!如果没保存加载时会丢失设定的项目,但WorldGuard的指令在修改完某项设定会自动保存。(通常不会出现这种情况)'''<br />
 
 
 
/region migratedb [1] [2]<br />
 
转移region文件yml格式到数据库MySQL,或者相反。<br />
 
 
 
=权限介绍=
 
=regions教程=
 
==基础教程==
 
 
 
开始前我们必须安装Worldedit配合WorldGuard才可以使用!<br />
 
不熟悉/不知道[[WorldEdit|Worldedit]]? <br />
 
以下教程内Worledit会简称为WE,Worldguard为WG。<br />
 
 
 
1.通过WE选择2点来确定一个立方体(于平时WE选择一样)<br />
 
扩大选择区域<br />
 
指令:
 
          //expand <amount> [direction]<br />
 
          //expand <amount> <reverse-amount> [direction]<br />
 
          //expand vert<br />
 
效果:第一个:通过指定的方向扩大(东南西北上下)<br />
 
          第二个:通过面向的方向扩大(东南西北)<br />
 
          第三个:垂直方向扩展到基岩以及天空<br />
 
说明:对于指定的方向,用”N”(北),”S”(南),”W”(西),”E”(东),”U”(上),”D”(下)来代表方向(实际太阳升起的方向是南方。。即S,至于为什么我也不知道)。对于面向的方向,如果不出入WENS之类的就会默认为像面向的方向扩展。最后一个则是垂直方向上下完全扩展。<br />
 
 
 
 
 
用法:
 
          //expand  扩大格数(数字) 方向(N S W E U D)<br />
 
          //expand 扩大格数  反向扩大格数(可以不写)<br />
 
          //expand vert<br />
 
 
 
2.创造region<br />
 
/region define <region_名称> <br />
 
或(更详细指令)<br />
 
/region define <region_名称> [拥有者1] [拥有者2] [拥有者3] (…….)<br />
 
创造这个region,创造一个region后,例如我们的就叫做Mcbbs,那么默认玩家就不能破坏这个region内的物品(其他设定稍后再说)<br />
 
 
 
3.添加成员/会员以及删除<br />
 
 
 
/region addmember <region_名称> [会员1] [会员2] [会员3] (…….)<br />
 
例如<br />
 
/region addmember Mcbbs Lichi2050<br />
 
意思就是在Mcbbs这个region内,玩家Lichi2050也就是我,可以破坏(默认没有修改破坏flag时都有效)。<br />
 
 
 
删除也是原理,只不过指令稍微改变了一下<br />
 
/region remember <region_名称> [会员1] [会员2] [会员3] (…….)<br />
 
 
 
4.添加拥有者以及删除<br />
 
 
 
 
 
/region addowner <region_名称> [拥有者1] [拥有者2] [拥有者3] (…….)<br />
 
例如<br />
 
/region addowner Mcbbs Lichi2050<br />
 
意思就是在Mcbbs这个region内,我Lichi2050是这个region的拥有者(可以设定/修改这个region的任何设置)。<br />
 
 
 
删除也是原理,只不过指令稍微改变了一下<br />
 
/region remowner <region_名称> [拥有者1] [拥有者2] [拥有者3] (…….)<br />
 
 
 
5.region优先权以及子区域<br />
 
 
 
/region setpriority <region_名称> <优先权><br />
 
<优先权>是一个数字,他可以是正数例如3,也可以是负数例如-1<br />
 
数字越大,优先权就越大,例如region1的优先权是2,region2的优先权是5 那么region2的配设会取代/覆盖region1的设定(当然如果2个区域没有覆盖那么设不设定优先权都无所谓)。<br />
 
 
 
/region setparent <子_region_名称> <父_region_名称> <br />
 
首先我们得先了解什么是子区域,子区域有什么用处其实设定父子区域意思和继承差不多(使用权限组插件的朋友相信会很清楚)<br />
 
子region会取读父region的拥有者,会员,以及flag设定(就不用重复设定了,方便)<br />
 
 
 
==flag列表==
 
===区域权限组===
 
 
 
区域权限组为<br />
 
members 成员<br />
 
nonmembers 非成员<br />
 
owners 拥有者<br />
 
nonowners 非拥有者<br />
 
everyone 全部玩家<br />
 
 
 
注*如果直接修改regions.yml区域权限组有改动(全部变成大写并且everyone变成ALL)!<br />
 
 
 
MEMBERS 成员<br />
 
NON_MEMBERS 非成员<br />
 
OWNERS 拥有者<br />
 
NON_OWNERS 非拥有者<br />
 
ALL 全部玩家<br />
 
 
 
 
 
区域权限组有什么用呢? 在设定flag时可以专门只为一个权限组设定flag(别和权限组插件搞混了!!!)<br />
 
例如<br />
 
/rg flag <region_名称> exit deny<br />
 
/rg flag <region_名称> exit -g nonowners<br />
 
我们的region还是叫做Mcbbs<br />
 
 
 
首先第一个指令禁止了退出(出去)这个region<br />
 
下一个指令设定了-g nonowners 意思就是非拥有者玩家不可退出Mcbbs这个region<br />
 
 
 
或者你也可以设定例如只禁止什么人进入,又或者什么人进入后会无敌等等(看各自的脑洞吧)<br />
 
 
 
==开发者 API==
 
===取读WorldGuard===<br />
 
 
 
一个参考的列子<br />
 
 
 
Example: Getting a reference to WorldGuard<br />
 
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;<br />
 
import org.bukkit.plugin.Plugin;<br />
 
private WorldGuardPlugin getWorldGuard() {<br />
 
    Plugin plugin = getServer().getPluginManager().getPlugin("WorldGuard");<br />
 
 
    // WorldGuard 没有加载<br />
 
    if (plugin == null || !(plugin instanceof WorldGuardPlugin)) {<br />
 
        return null; // 也许你想提示一个错误<br />
 
    }
 
 
    return (WorldGuardPlugin) plugin;<br />
 
}<br />
 
 
 
在较新的Worldguard(我说版本)内,你可以使用Static方式<br />
 
列子:使用WGbukkit取读Worldguard<br />
 
 
 
import com.sk89q.worldguard.bukkit.WGBukkit;<br />
 
 
// 现在你需要取读Worldguard<br />
 
// 例如, 集合所有的region到一个点<br />
 
    ApplicableRegionSet set = WGBukkit.getRegionManager(world).getApplicableRegions(location);<br />
 
 
 
===基础权限===
 
 
 
你成功取读/访问Worldguard后,你可以设定例如“can build?”就是“是否可建筑”在WorldGuardPlugin内查看<br />
 
 
 
boolean canBuild(org.bukkit.entity.Player player, org.bukkit.Location location)<br />
 
 
 
boolean canBuild(org.bukkit.entity.Player player, org.bukkit.block.Block block)<br />
 
 
 
列子<br />
 
玩家是否可以破坏脚下的方块<br />
 
<div>return getWorldGuard().canBuild(player,</div><div>        player.getLocation().getBlock().getRelative(0, -1, 0));</div><br />
 
===区域管理===
 
Worldguard可以直接查询全局设定,也可以在指定世界查询单独region,为了方便开发人员取读API,在WorldGuardPlugin内设定成这样即可访问单独region设定。<br />
 
 
 
com.sk89q.worldguard.protection.manager.RegionManager getRegionManager(org.bukkit.World world)<br />
 
 
 
Warning/注意: 这个方式可以设定为 can return null, 在指定世界关闭.<br />
 
列子<br />
 
 
 
return getWorldGuard().getRegionManager(world);<br />
 
 
 
获取Flags或build/破坏 信息,你需要使用ApplicableRegionSet,设置完后可以转换玩家资料使用LocalPlayer,坐标使用Vector。<br />
 
 
 
还是看列子吧我难以表达:<br />
 
 
 
使用ApplicableRegionSet查询破坏权限<br />
 
 
 
<blockquote>import com.sk89q.worldguard.protection.managers.RegionManager;<br />
 
====查看Flags====
 
 
 
Flags都保存在com.sk89q.worldguard.protection.flags.DefaultFlag,你不可以直接添加自定义flag,你需要先到ApplicableRegionSet,使用正确的method设定,还得看flag的类型<br />
 
 
 
如果是StateFlag 使用<br />
 
 
 
boolean allows(StateFlag flag, LocalPlayer player)<br />
 
 
 
如果是StateFlag,where you can't pass a player, 使用(待翻译)<br />
 
 
 
boolean allows(StateFlag flag)<br />
 
 
 
如果是其他的Flag,使用<br />
 
 
 
mixed getFlag(Flag flag)<br />
 
 
 
检查Pvp的Flag<br />
 
 
 
return set.allows(DefaultFlag.PVP);<br />
 
 
 
DefaultFlag的一部分内容<br />
 
 
 
// ...<br />
 
public static final StateFlag PVP = new StateFlag("pvp", 'p', true);<br />
 
public static final StateFlag TNT = new StateFlag("tnt", 't', true);<br />
 
// ...<br />
 
====取读一个区域====
 
 
 
region保存在com.sk89q.worldguard.protection.regions.ProtectedRegion,有很多种子class可以设定,例如ProtectedCuboidRegion或ProtectedPolygonalRegion。<br />
 
如果想通过region的名称取读这个region,可以使用RegionManager<br />
 
 
 
ProtectedRegion getRegion(String id)<br />
 
 
 
如果想通过区域/Area取读region,可以使用ApplicableRegionSet<br />
 
 
 
for (ProtectedRegion region : set) {<br />
 
    // region here<br />
 
}<br />
 
 
 
设定一个Flag,使用<br />
 
 
 
region.setFlag(flag, flag.parseInput(plugin, sender, value))<br />
 
 
 
如果这个flag是复制于com.sk89q.worldguard.protection.flags.DefaultFlag,那么使用<br />
 
 
 
? parseInput(WorldGuardPlugin plugin, CommandSender sender, String input)<br />
 
===Javadocs===
 
 
 
查看[http://docs.sk89q.com/worldguard/apidocs/com/sk89q/worldguard/bukkit/WGBukkit.html Javadocs]
 
 
 
==数据格式==
 
 
 
'''Region数据都保存在regions.txt内. 打开后首先会有:'''
 
 
 
Region ID<br />
 
Region 类型(type)<br />
 
 
 
Worldguard3.0版本以下的保存方式:<br />
 
Point 1 X  region坐标<br />
 
Point 1 Y  ↓<br />
 
Point 1 Z  ↓<br />
 
Point 2 X  ↑<br />
 
Point 2 Y  ↑<br />
 
Point 2 Z  region坐标<br />
 
Priority 优先权(请勿设定为0)<br />
 
List of owners 拥有者列表<br />
 
List of flags Flags列表(设置过的)<br />
 
Entry message (进入region提示信息/欢迎语)<br />
 
 
 
Worldguard3.0版本以上的保存方式:<br />
 
Point 1 X  region坐标<br />
 
Point 1 Y  ↓<br />
 
Point 1 Z  ↓<br />
 
Point 2 X  ↑<br />
 
Point 2 Y  ↑<br />
 
Point 2 Z  region坐标<br />
 
 
 
Priority 优先权(请勿设定为0)<br />
 
ID of parent region 父regionID(设置过子region才会显示)<br />
 
List of owners 拥有者列表<br />
 
List of members 会员列表<br />
 
List of flags Flags列表(设置过的)<br />
 
Entry message (进入region提示信息/欢迎语)<br />
 
Exit message (退出region提示信息)<br />
 
 
 
拥有者以及会员数据保存方式:<br />
 
u: 玩家名称<br />
 
g: region权限组<br />
 
 
 
例如<br />
 
u:sk89q,u:tetsu,g:admins<br />
 
 
 
意思就是sk89q以及tetsu这两个玩家都在admins组内。
 
 
 
Flags数据保存方式:<br />
 
每一个flag都会有一个特殊的字母,例如Build就是b,通过一个+或者-我们能够查看这个flag的状态<br />
 
+就是启动<br />
 
-就是关闭/禁止<br />
 
如果没有+或- 那么代表这个flag默认就是启动的<br />
 
例如<br />
 
+bpmc-t-l-f-F<br />
 
 
 
{| class="wikitable"
 
|-
 
! 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组以外 禁止使用岩浆桶 并向使用者发送自定义提示消息<br />
 
[lavabucket]<br />
 
ignore-groups=admins,mods<br />
 
on-use=deny,tell<br />
 
message=不可以使用岩浆桶呢喵!<br />
 
 
 
禁止挖掉铁矿和金矿并提示默认消息 同时通知在线管理员<br />
 
[goldore,ironore]<br />
 
ignore-groups=admins<br />
 
on-break=deny,tell,notify<br />
 
 
 
除admins组外禁止放置tnt 放置时会通知管理员并且踢出去 <br />
 
[tnt]<br />
 
ignore-groups=admins<br />
 
on-place=deny,notify,kick<br />
 
 
 
黑名单配置文件
 
 
 
黑名单的配置文件保存在plugins\WorldGuard\worlds下面,每个世界都有单独的配置文件<br />
 
例子:
 
 
 
worlds/world/blacklist.txt 主世界<br />
 
worlds/world_the_end/blacklist.txt 末地<br />
 
worlds/mining_world/blacklist.txt 资源世界(如果服务器有多世界的话)<br />
 
 
 
提示
 
worldguard不支持多个世界共用同一个黑名单配置文件,但是你可以利用文件系统的“链接”实现。<br />
 
注意:编辑黑名单后需要用/wg reload重新加载才能生效<br />
 
 
 
格式:<br />
 
 
 
[物品或方块列表]<br />
 
事件=操作<br />
 
选项=值<br />
 
 
 
匹配规则:<br />
 
 
 
物品/方块列表可以填写数字id或bukkit的材料名(可参考 https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html)<br />
 
多个项目之间用半角逗号分隔<br />
 
[wood,brick,glass]<br />
 
还可以指定数据值如白桦木:<br />
 
[17:1]<br />
 
白桦木和丛林木:<br />
 
[17:1;3]<br />
 
指定数据值范围<br />
 
[wood:2-3]<br />
 
[wood:>=2,<=3]<br />
 
这些写法是可以混合使用的<br />
 
[wood:0;>=2,grass:1-2]<br />
 
 
 
事件:
 
{| class="wikitable"
 
|-
 
! Event !! Explanation
 
|-
 
| on-break || 破坏方块
 
|-
 
| on-destroy-with || 用此物品打破方块
 
|-
 
| on-place || 放置方块
 
|-
 
| on-use || 使用
 
|-
 
| on-interact || 交互,如右键门、拉杆、箱子等
 
|-
 
| on-drop || 丢弃特定物品
 
|-
 
| on-acquire || 获得物品
 
|-
 
| on-dispense || 针对发射器,发射特定物品
 
|-
 
|}
 
 
 
操作:
 
{| class="wikitable"
 
|-
 
! Action !! Explanation
 
|-
 
| deny || 阻止操作 (黑名单模式)
 
|-
 
| allow || 允许操作(仅白名单模式)
 
|-
 
| notify || 发送通知消息给有worldguard.notify权限的人
 
|-
 
| log || 记录日志到终端、日志文件、数据库。
 
|-
 
| tell || 给玩家一个提示消息
 
|-
 
| kick || 踢出玩家
 
|-
 
| ban || 将玩家ban掉(永久性)
 
|-
 
|}
 
 
 
选项:
 
{| class="wikitable"
 
|-
 
! Option !! Explanation
 
|-
 
| ignore-groups || 忽略特定权限组,多个组用半角逗号分隔
 
|-
 
| ignore-perms || 忽略有特定权限的玩家,多个权限同样是用逗号分隔
 
|-
 
| comment || 自定义通知消息
 
|-
 
| message || 自定义tell的消息,可用%s表示相应物品名
 
|}
 
 
 
另外一个列子
 
 
 
放置和打破信标时通知在线管理员<br />
 
[beacon]<br />
 
on-break=notify<br />
 
on-place=notify<br />
 
阻止用钻石镐和金铲子破坏方块<br />
 
[diamond_pickaxe,284]<br />
 
on-destroy-with=tell,deny<br />
 
阻止使用铁锄、钻石剑耕地和攻击<br />
 
[iron_hoe,276]<br />
 
on-use=tell,deny<br />
 
阻止与箱子、石头按钮交互<br />
 
[chest,stone_button]<br />
 
on-interact=deny,tell<br />
 
阻止丢出命令方块<br />
 
[commandblock]<br />
 
on-drop=deny,tell<br />
 
message=不要乱丢命令方块~<br />
 
除admins组外 阻止获得基岩<br />
 
[bedrock]<br />
 
on-acquire=deny<br />
 
ignore-groups=admins<br />
 
阻止发射器发射岩浆桶和漏斗矿车<br />
 
[lavabucket,hopper_minecart]<br />
 
on-dispense=deny,log,notify<br />
 
[tnt]<br />
 
on-break=deny,notify,kick<br />
 
on-use=deny,notify,kick<br />
 
on-place=deny,ban<br />
 
on-acquire=deny<br />
 
 
 
日志
 
日志有三种选择
 
* 输出到终端(就是服务器后台)
 
* 记录日志到文件
 
* 记录到数据库
 
 
 
在worldguard配置文件(plugins\WorldGuard\config.yml)中可以对日志文件和数据库进行具体设置。
 
 
 
blacklist:<br />
 
    use-as-whitelist: false<br />
 
    logging:<br />
 
        console:<br />
 
            enable: true<br />
 
        database:<br />
 
            enable: false<br />
 
            dsn: jdbc:mysql://localhost:3306/minecraft<br />
 
            user: root<br />
 
            pass: ''<br />
 
            table: blacklist_events<br />
 
        file:<br />
 
            enable: false<br />
 
            path: worldguard/logs/%Y-%m-%d.log<br />
 
            open-files: 10<br />
 
 
 
日志文件的路径中可使用以下“变量”:<br />
 
%Y 年 (YYYY)<br />
 
%m 月 (MM)<br />
 
%d 日 (DD)<br />
 
%W 周 (00-52)<br />
 
%H 小时(24小时) (HH)<br />
 
%h 小时(12小时) (HH)<br />
 
%i 分 (mm)<br />
 
%s 秒 (ss)<br />
 
%u 用户名<br />
 
%% 表示“%”符号<br />
 
 
 
数据库<br />
 
worldguard可以将日志记录进mysql数据库,但需要先创建数据库和表,你可以使用下面的语句创建专用的表<br />
 
 
 
CREATE TABLE IF NOT EXISTS `blacklist_events` (<br />
 
`id` int(11) NOT NULL AUTO_INCREMENT,<br />
 
`world` varchar(10) NOT NULL,<br />
 
`event` varchar(25) NOT NULL,<br />
 
`player` varchar(16) NOT NULL,<br />
 
`x` int(11) NOT NULL,<br />
 
`y` int(11) NOT NULL,<br />
 
`z` int(11) NOT NULL,<br />
 
`item` int(11) NOT NULL,<br />
 
`time` int(11) NOT NULL,<br />
 
`comment` varchar(255) DEFAULT NULL,<br />
 
PRIMARY KEY (`id`)<br />
 
);<br />
 
 
 
最后说一下,使用时发现,日志文件功能在某些平台下可能无法正常工作,同时会导致黑名单失效,开启此功能时请务必进行测试。
 
发射器的部分可能会和其他插件的发射器黑名单冲突导致报错。
 
 
 
 
 
=箱子保护=
 
WorldGuard提供基础的箱子保护服务,
 
玩家可以通过在箱子下方放置特殊字符的牌子来达到保护的目的。
 
我们不建议新设置的WorldGuard使用本功能因为本功能并不是WorldGuard常用的一部分
 
除此以外,区域设置是比本功能更好的保护拥有者财产的方法。
 
因为它不涉及像漏斗一类方块的问题。
 
 
 
提示:如果你是希望保护单块的方块,箱子等,
 
我们建议使用第三方保护插件。
 
例如Lockette 或者 LWC.   
 
 
 
启用此功能:
 
首先箱子保护功能必须在配置文件中启用。
 
如果没有手动启用,箱子保护功能不会自动工作
 
这时不能使用牌子锁功能。(此项功能也可在配置文件中禁用)
 
 
 
使用方法:
 
# 必须是一个信息牌
 
# 必须位于箱子下面(如果是大箱子,只需在其一侧下面)
 
# 在第一行输入[Lock]
 
# 在第二行输入玩家的名字
 
# 在剩余两行写上其他允许使用玩家的名字
 
注:不可将其他玩家名字放在第二行的位置
 
提示: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。
 
 
 
=更多帮助=
 
 
 
你需要更多的帮助吗?我建议你<br />
 
 
 
你可以去[http://skq.me/irc/irc.esper.net/sk-dev/ IRC]提问<br />
 
注*IRC聊天频道是维基百科24小时开放的“聊天室”<br />
 
 
 
你可以在Twitter上联系[https://twitter.com/sk89q sk89q] <br />
 
sk89q是Worldguard的作者(也是Worldedit以及其他不少插件的作者)<br />
 
 
 
你可以查看[https://github.com/sk89q/worldguard/commits Changelog](全英文,英文不好的直接跳过吧)<br />
 
Changelog就是更新信息(每次更新修改/增加/删除等等了什么)<br />
 
 
 
你如果有什么建议,或者发现了什么Bug可以到[http://youtrack.sk89q.com/issues?q=project%3A+WorldGuard 这里]反馈  (全英文,英文不好的直接跳过吧)<br />
 

2016年8月22日 (一) 12:35的版本

哈哈哈哈这里是总介绍 WorldGuard has a host of functions for server owners, server map makers, regular survival servers, and everyone else in between.

Create zones in your world that only permit mods or certain players from building within Set additional game rules on your server (deny wither block damage, falling damage, etc.) Set game rules on specific areas (food regen, health regen, disable PvP, TNT, control mob damage) in your world Blacklist certain items and blocks so they can’t be used Dump useful statistics and information about your server (/wg report -p) CPU profile your server (/wg profile -p) Add useful commands like an immediate “STOP ALL FIRE SPREAD” command. Works, more or less, with other plugins and mods (other Bukkit plugins and FTB mods) Protects against many types of abuse (tree growth, TNT cannons, piston machines, etc.) Certain interactions can also be allowed (door and lever usage, etc.) Open source, and one of the oldest Minecraft projects (older than Bukkit!) Enable only features you want! Everything is off by default. You can just install WorldGuard and configure it later.

安装

配置

热键

权限

建筑权限

命令

黑名单

区域

快速开始

区域魔杖

区域权限

优先级与继承

全局区域

地址

http://docs.enginehub.org/manual/worldguard/latest/regions/priorities/