【Boundary Marker】界碑系统
-
简介
界碑,或称界石,是一种边界标记物,是用于辨别一个地区与另外地区之间的边界位置和走向,例如国家、省、州、市、甚至是农场和社区的边界。在两地区之间的边界走向发生方向性改变时,界碑尤为有用,可以作为指示边界走向的标志。界碑在直的边界上也可以作为仅表示边界所在位置的标记物。
----引用自《维基百科》界碑系统用于对Residence(领地)进行平替,其具有与领地相似的功能,可以认为是同一种插件。从界碑对界碑的定义中可以看出,相比于于领地插件,界碑系统侧重于对一个较大的范围进行权限控制与管理。
与领地插件相比,界碑系统有以下不同:
- 具有可自定义的权限组;
- 简化合并了一些领地系统的权限;
- 支持多边形区域;
使用方法
一、创建一个多边形区域
多边形区域需要由至少三个顶点围成,使用
/bm point <编号>
会以你当前所站立的位置创建一个指定编号的顶点,你还可以使用/bm point <编号> <x> <y> <z>
以指定的坐标创建顶点。如果你创建了两个编号相同的点,那么后创建的会将前一次创建的点覆盖
多次,新点会将旧点覆盖接着使用
/bm create <要创建的区域名> <p1> <p2> <p3> ...
创建多边形区域。多边形区域会按照p1 - p2 - p3 ... pn - p1
的顺序连接成多边形区域,这里的 p 就是先前创建的顶点编号。例如:
/bm point 1 100 60 100 /bm point 2 100 60 200 /bm point 3 200 60 200 /bm create my_area 1 2 3
Q:如果这个时候我修改了顶点坐标会影响区域吗?
A:不会,因为区域已经生成,顶点数据已经写入到了存档中,此时修改先前顶点的坐标不会影响区域。二、处理冲突
如果你创建的区域与其他的区域冲突了(有重叠的部分),那么该区域仍然会被创建,但是会被标记为“非法”。被标记为非法的领地意味着其权限控制不会生效,并且服务器在每次重启时都会清理非法领地。如果插件启用了 BlueMap 卫星地图渲染,你可以在卫星地图上看到你的区域与别的区域的冲突具产生在哪里(非法的区域会被自动标记为红色)。
此时你有两种选择:
- 调整顶点,重新创建区域,非法区域不会占据区域名称,重新创建一样名称的覆盖即可;
- 编辑非法区域,在没有冲突后会自动转变为普通区域(详见下一节);
三、修改区域范围
首先是修改区域的高度,区域高度通过以下命令设置:
/bm area <area> set y_top <y> - 设置区域上界y坐标 /bm area <area> set y_bottom <y> - 设置区域下界y坐标
修改一个区域的XY平面范围主要使用以下两个命令实现:
/bm area <area> points update <index> <x> <z> - 更新多边形区域顶点 (不存在的顶点会被创建) /bm area <area> points remove <index> - 删除多边形区域顶点
首先使用
/bm area <区域名> points list
查看需要修改的区域的点位信息,例如我有一个区域的点位如下:- 顶点 10 x: 100 z: 100 - 顶点 20 x: 200 z: 100 - 顶点 30 x: 200 z: 200
现在我使用如下命令添加一个新的点40,坐标为 (100, 300):
/bm area <区域名> points update 40 100 300
添加过后区域会发生如下变化:
现在假设我的区域需要扩张,希望将如下的绿色区域也包含进去,那么最简单的做法就是将3号点向外移动:
输入命令:
/bm area <区域名> points update 30 300 300
我们便得到了以下的新形状:
现在假设下图的红色区域发生了独立运动,需要被排除在区域外,我们可以在 30 和 40 之间创建一个新点来实现这一效果:
/bm area <区域名> points update 35 200 200
点的编号决定了多边形的连接顺序,此处可以是30 ~ 40 之间的任意整数。你也可以通过添加更多的点来实现更好的边缘效果。
四、 长方体区域
从几何学上来讲,第一节创建的多边形区域实际上是一个多棱柱,而长方体区域是一种特殊的四棱柱。
长方体区域的创建较为简单,逻辑与 Residence 领地系统相同。需要两个顶点,这两个顶点连成的线即为长方体的对角线。
首先使用
/bm point <编号>
或者/bm point <编号> <x> <y> <z>
创建两个顶点,然后使用/bm create <要创建的区域名> <p1> <p2>
创建。你可以使用 /bm area <区域名> points list 查看长方体区域的点描述,你会发现其四个顶点在X-Z平面上构成一个长方形。
与多边形区域相同,你在创建长方体区域的时候可能会与其他区域冲突,处理方法请参《处理冲突》章节。
相比于多边形区域,长方体区域的修改也更加简单。站在长方体区域内,面向一个方向,使用 expand 或者 contract 即可将长方体区域的范围向你面向方向扩大或者缩小一定饿格子数量。
/bm expand <要扩大的数量> /bm contract <要缩小的数量>
什么?你的多边形区域也想使用这么方便的指令?
很可惜,由于多边形的复杂性无法实现这样简单的区域修改。但是界碑系统提供了一个指令可以将多边形区域转换为长方体区域,这个指令会以多边形区域的最大范围生成一个长方体(简单来说就是会生成一个可以正好框住多边形的矩形)。/bm convert <区域名>
五、 权限控制
界碑系统使用了基于权限组的权限控制设计,及玩家所在的权限组决定了其所拥有的权限,通过设置权限组的权限来控制组内所有玩家的行为。
/bm area <area> role list - 列出区域角色组 /bm area <area> role create <role> - 创建一个角色组 /bm area <area> role add <role> <player> - 将玩家添加到角色组 /bm area <area> role remove <role> <player> - 将玩家从角色组移除 /bm area <area> role delete <role> - 删除角色组
可视化UI
使用下面的指令可以打开箱子菜单。
/bm cui
箱子菜单的首页会展示你当前划定的所有界碑区域,点击进入对应城镇的管理面板:
- 第一行三个图标分别是
【权限组管理】【修改欢迎语】【修改欢送语】 - 中间左侧三个图片分别对应了城镇的六个保护设置:
【是否允许爆炸】【玩家是否发光】【是否允许水流】
【是否允许岩浆】【火焰是否蔓延】【农田是否践踏】 - 右侧六个按钮表示城镇保护区域的顶层与底层的设置:
【当前顶层Y坐标】【增加顶层高度】【减少顶层高度】
【当前底层Y坐标】【增加底层高度】【减少底层高度】
点击权限组管理可以进入此城镇的权限组系统:
- 三个按钮从左到右依次是:
【权限组设置】【添加权限组】【删除权限组】 - 与领地(Residence)插件不同,界碑系统通过权限组设置用户的权限。你无法为某个用户设置单独的权限,而是通过创建不同的权限组,将用户加入这个权限组中,来使得用户拥有这些权限。
点击编辑权限组,即可看到当前这个城镇的所有权限组:
- 一个刚创建的城镇默认有三个权限组 【trust】【ban】【defult】
- 其中【trust】组拥有所有的权限【ban】组什么权限都没有
- 【defult】组是默认的玩家可以有的权限,也就是当一个用户没有被指定你配置所属任何权限组的时候他可以拥有的权限,默认这个权限组只有move权限,你可以通过修改此权限组的权限来决定默认玩家的权限
点击一个角色组,则可以进入此角色组的设置:
你可以在此设置此角色组的权限、修改角色组的名字、添加或者移除此角色组下的玩家。指令列表
指令 解释 /bm help 显示帮助 /bm cui 打开CUI界面 【点操作】 /bm point /bm point 以你的位置创建一个点 /bm points 列出你的所有创建的点 【区域操作】 /bm delete 删除区域 /bm list 列出所有区域 /bm convert 将多边形区域转换为长方体区域 /bm give 将区域转让给他人 【多边形区域特殊功能】 /bm create ... 使用多个点创建多边形区域 /bm area points list 列出多边形区域顶点 /bm area points update 更新多边形区域顶点 (不存在的顶点会被创建) /bm area points remove 删除多边形区域顶点 【长方体区域特殊功能】 /bm create 以p1 p2为对角线创建长方体区域 /bm expand 将所处区域向面朝方向扩展distance格 (只支持长方体区域) /bm contract 将所处区域向面朝方向收缩distance格 (只支持长方体区域) 【区域设置】 /bm area set y_top 设置区域上界y坐标 /bm area set y_bottom 设置区域下界y坐标 【角色组配置】 /bm area role list 列出区域角色组 /bm area role create 创建一个角色组 /bm area role add 将玩家添加到角色组 /bm area role remove 将玩家从角色组移除 /bm area role delete 删除角色组 权限列表
权限 解释 animal_killing 对动物造成伤害 use 是否可以使用功能方块(工作台、铁砧、信标、附魔、蛋糕等) bed 是否可以使用床 container 是否可以使用容器(箱子、木桶、漏斗、发射器、投掷器) destroy 是否可以破坏方块 res_stone 是否可以使用红石元件 door 是否可以使用门(包含活板门、栅栏门) dye 是否可以染色 throwing 是否可以投掷东西(雪球、鸡蛋、魔影珍珠) plant 是否可以种植 hook 是否可以使用钩子 ignite 是否可以点火 leash 是否可以使用栓绳 mob_killing 是否可以攻击怪物 move 是否可以移动 name_tag 是否可以使用命名牌 place 是否可以放置方块 riding 是否可以骑乘 shear 是否可以剪羊毛 shoot 是否可以射箭 trade 是否可以交易 vehicle_destroy 是否可以破坏载具 harvest 是否可以收获