|
|
第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 />
| |