
OPAC - 创建:大炮兼容 / 桥梁
这个模组是一座桥梁:它将CBC的销毁操作路由至OPAC的保护API,从而让OPAC现有的每项索赔选项决定后续结果。
OPAC-Create-Big-Canons-Compat
这是一个用于 机械动力:大炮 (CBC) 的 开放派对与领地 (OPAC) 附属模组。
机械动力:大炮通过其自身的抛射物撞击代码破坏方块并对实体造成伤害,这绕过了 OPAC 所监听的常规方块破坏/爆炸事件。因此,单纯的 OPAC 无法检测到炮击,也无法保护领地免受其影响。本模组是一座桥梁:它将 CBC 的破坏行为路由至 OPAC 的保护 API,从而由 OPAC 现有的每个领地选项来决定发生什么。
免责声明:是的,这个模组是用 AI 制作的,本描述也是如此。代码由 AI 编写,规格和测试由我完成。安全审计由 AI 完成。
工作原理
本模组没有自己的配置文件。只需安装它即可激活桥梁:CBC 的方块破坏和实体伤害将通过 OPAC 进行路由。所有细粒度控制都在 OPAC 本身中——每个领地的方块/实体保护开关、荒野/服务器领地/过期领地设置,以及管理员定义的例外组(参见下文推荐的 OPAC 服务器配置部分)。如果你之前通过本模组的配置关闭了桥梁,现在已无法再关闭;请改为卸载本模组。
发射的抛射物会标记上发射它们的玩家(CBC 默认将其匿名化),因此 OPAC 的队伍/盟友例外和所有者重定向将像适用于任何其他玩家操作一样适用于炮击。
CBC 的伤害来源也以相同方式进行了包装。OPAC 会独立地重新检查服务器上每个受到伤害的实体(其 LivingIncomingDamageEvent 处理器),使用伤害来源所携带的实体——而 CBC 的 CannonDamageSource 不携带任何实体,因此该最终检查过去会将每次炮击视为匿名行为,并在任何受保护的领地内阻止它,无论领地的选项或桥梁自身的检查结果如何。桥梁包装了 CBC 的伤害来源,使其携带抛射物(以及归属时的所有者),这使得 OPAC 的最终检查能够像桥梁的其余部分一样参考相同的例外组和所有者重定向。原始 CBC 伤害来源的护甲穿透行为得以保留。
推荐的 OPAC 服务器配置
为了允许大炮在你自己的领地内自由开火,同时仍保护其他玩家的领地,请在 serverconfig/openpartiesandclaims-server.toml 中将 CBC 的实体添加到 OPAC 的例外组中:
blockAccessEntityGroups = [ "CBC{createbigcannons:*}" ]
entityAccessEntityGroups = [ "CBC{createbigcannons:*}" ]
由于抛射物所有者已归属,OPAC 将炮击视为其发射者的行为,因此这些组授予发射者自己的领地访问权限,同时其他人的领地仍受保护。
这两个列表会创建在领地配置界面中显示为以下内容的每个领地选项:
- "方块(CBC)" – 来自
blockAccessEntityGroups:哪些玩家的 CBC 抛射物可以破坏该领地中的方块。 - "实体由(CBC)" – 来自
entityAccessEntityGroups:哪些玩家的 CBC 抛射物可以伤害该领地中的实体。
这些列表接受实体 ID。注意不要将该条目放入 blockExceptionGroups——该列表接受方块 ID,并创建一个"方块(CBC)" 选项,它控制谁可以在领地内破坏 CBC 自身的方块(大炮部件),并且对炮击能摧毁什么没有影响。
这些组选项是在 OPAC 的常规例外选项之外被检查的。由于抛射物被重定向到其发射玩家,常规的"允许玩家破坏方块" / "允许玩家伤害实体" 选项也适用于炮击:如果其中一个设置为“所有人”,则无论 CBC 组选项如何,炮击伤害都会被允许。CBC 选项仅授予额外访问权限(例如,“挖掘(CBC):所有人”允许任何人的大炮破坏方块,即使“允许玩家破坏方块”设置为“无”);它们不能撤销由常规选项授予的访问权限。
请注意,向服务器配置添加组只会创建每个领地的选项——其值仍默认为无。重启后,打开领地配置并将“方块(CBC)”/“实体由(CBC)”设置为你想要允许的玩家。
默认情况下,新选项在领地配置界面中呈灰色,这意味着玩家无法更改它们。要让领地所有者切换它们,请将选项 ID 添加到同一文件中的 playerConfigurablePlayerConfigOptions 列表:
playerConfigurablePlayerConfigOptions = [
# ... 现有条目 ...
"claims.protection.exceptions.groups.entity.blockAccess.CBC",
"claims.protection.exceptions.groups.entity.entityAccess.CBC"
]
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。