
白细胞
服务端区域防护,可通过API或命令控制。
白细胞
白细胞是一个简单的 Fabric 世界保护模组,提供与 player-roles 的可选集成。
白细胞世界保护的基础是“权威机构”。一个权威机构负责向其范围内的玩家应用特定规则。每个权威机构都有一个唯一名称、一个优先级(“等级”)以及一组玩家排除项。
创建权威机构
要创建一个空的权威机构,请运行:/protect add <名称>。
或者,可以创建权威机构以在特定区域内应用,例如:
/protect add <名称> with universe(全局应用)/protect add <名称> with <维度>(在特定维度内应用)/protect add <名称> with <最小值> <最大值>(在两个方块坐标之间的长方体区域内应用)
之后可以使用 /protect remove <名称> 移除权威机构。
设置规则
白细胞提供了可在权威机构内应用的多种规则。这些规则包括:
break控制玩家是否可以破坏方块place控制玩家是否可以放置方块block_drops控制方块被破坏时是否掉落物品interact_blocks控制玩家是否可以与方块互动interact_entities控制玩家是否可以与实体互动interact控制与方块和实体的全局互动attack控制玩家是否可以攻击其他实体pvp控制玩家是否可以攻击其他玩家portals控制玩家是否可以建造传送门crafting控制玩家是否可以合成物品fall_damage控制玩家是否受到摔落伤害hunger控制玩家是否会感到饥饿throw_items控制玩家是否可以从背包中投掷物品pickup_items控制物品是否可以被玩家或其他实体拾取unstable_tnt控制 TNT 放置时是否自动点燃ignite_tnt控制 TNT 是否可以被点燃spawn_withers控制是否能够召唤凋灵fire_tick控制权威机构内火势蔓延是否启用。如果未设置,则默认为游戏规则fluid_flow控制流体是否流动ice_melt控制冰和霜冰是否融化
要在权威机构上将规则设置为 allow 或 deny,请使用 /protect set rule <权威机构> <规则> <结果>。
例如:/protect set example place deny 将禁止在名为 example 的权威机构内放置方块。
制作形状
通常,您可能希望保护一个形状不规则、不仅仅是简单方盒的区域。 为此,可以将多个简单形状组合成一个更复杂的形状,用于应用规则。
首先,运行:/protect shape start。这将开始构建一个形状。
接下来,要向此形状添加基本体,请运行:
/protect shape add universe将宇宙添加到该形状中/protect shape add <维度>将维度添加到该形状中/protect shape add <最小值> <最大值>将两个方块坐标之间的长方体添加到该形状中
可以多次运行这些命令来组合您的形状。
完成形状组合后,可以运行:/protect shape finish <名称> to <权威机构>。
这将向指定的权威机构添加一个具有给定名称的形状。
之后可以使用 /protect shape remove <名称> from <权威机构> 移除该形状。
设置等级
在处理多个权威机构时,您可能希望一个权威机构优先于另一个。 例如,您可能希望一个全局权威机构在所有地方禁止恶意破坏,除特定建筑区域外。
这就是等级的用武之地:等级是任意数字,数字越大表示优先级越高,数字越小表示优先级越低。 假设一个权威机构的等级为 -1,那么另一个重叠的、等级为 10 的权威机构将覆盖前者的规则。
可以使用:/protect set level <权威机构> <等级> 设置权威机构的等级。
添加排除项
权威机构的规则可能不希望适用于所有人。 在这种情况下,可以排除特定玩家或整个 角色 受特定权威机构的影响。
通过运行:/protect exclusion add <权威机构> player <名称> 或 /protect exclusion add <权威机构> role <名称> 来实现。
这些排除项之后可以使用 /protect exclusion remove 移除。
综合运用:一个示例
内容真多!让我们通过一个简单示例来综合运用所学知识。
我们的示例服务器希望拥有全局防恶意破坏保护,但在生存维度和自由建造区域除外。 我们还想通过角色来排除某些玩家在自由建造区域内建造。
考虑两个维度:minecraft:overworld 和 example:survival,以及角色 builders。
首先,创建一个名为 global 的权威机构。由于我们大多数时候希望在所有地方都受保护,因此全局应用保护,然后在特定区域专门覆盖它是合理的。
/protect add global with universe
接下来,我们可以在此权威机构上设置规则:
/protect set rule global place deny/protect set rule global break deny
完成!现在,让我们在我们的生存维度中覆盖此行为。
/protect add survival with example:survival/protect set rule survival place allow/protect set rule survival break allow
但是等等……!模组如何知道应用 global 还是 survival 的规则,因为 global 也适用于生存维度?
这里,我们可以利用等级:权威机构的默认等级为 0,数值越大表示优先级越高。
所以:让我们将 global 权威机构的等级设置为 -1,这样我们以后添加的任何内容默认都会覆盖它。
/protect set level global -1
现在我们可以类似地将自由建造区域也添加为排除项!假设我们有两个自由建造区域,取名为 free_build_1 和 free_build_2。
首先,我们应该创建一个适用于两者的空白权威机构,因为它们具有相同的规则。
/protect add free_build/protect set rule free_build place allow/protect set rule free_build break allow
接下来,让我们为 free_build_1 组合形状:
/protect shape start/protect shape add -10 0 -10 10 255 10
... 并将其添加到我们的权威机构中/protect shape finish free_build_1 to free_build
然后对 free_build_2 重复相同操作:
/protect shape start/protect shape add -100 0 -10 90 255 10
... 并将其添加到我们的权威机构中/protect shape finish free_build_2 to free_build
完成!现在自由建造区域应该可以由任何玩家编辑——但我们要创建排除项,以便我们可以“封禁”玩家进入这些区域。
让我们使用 free_build_banned 角色来实现:
/protect exclusion add free_build role free_build_banned
至此,我们的所有保护都应该设置好了!:)
测试!查询和检查规则
好的,我们已经设置好了权威机构,但是如何轻松检查设置了哪些规则以及由谁设置呢?
几个命令可能会有所帮助:
/protect test:测试在给定位置适用的所有规则,并显示它们源自哪个权威机构/protect list:列出世界中的所有权威机构/protect display <权威机构>:显示指定权威机构的规则和形状
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。