跳到正文

Sol’s MMNM Addon: AbilityProtection Rework (QoL, Improvements)

作者:solmochi

这是 MMNM 的 AbilityProtection 系统扩展版,并对其进行了优化改良。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

Sol’s MMNM Addon

为Mine Mine no Mi提供的管理与玩法扩展,将能力保护功能升级为更完善的受保护区域系统。

Sol’s MMNM Addon 为服务器所有者提供更完善的区域创建工具、可重复使用的保护配置、地形再生、各区域独立的消息与音乐、本地化天气、生成控制、更安全的还原机制,并修复了基础版 MMNM 中若干可能造成破坏的能力边缘问题。

此模组主要面向服务器,但并非仅服务端。请在服务器和每位玩家的客户端上安装相同版本的此扩展。客户端必须安装此模组,才能使用受保护区域 HUD、消息、音乐、天气渲染,并确保网络兼容性。


当前版本与要求

Forge 1.20.1

  • Minecraft:1.20.1
  • Forge:47.3.0+
  • Mine Mine no Mi:0.11.4+
  • Java:17

Forge 1.16.5

  • Minecraft:1.16.5
  • Forge:36.2.39+
  • Mine Mine no Mi:0.10.11+
  • Java:8
  • 可选的 CartAddon 兼容性:0.8.1+

请勿混用 1.16.5 和 1.20.1 版本的文件。多人游戏时,客户端和服务器应使用相同的 Minecraft 与扩展版本。


社区与支持

需要帮助、想要建议新功能,或发现了漏洞?加入社区,获取预览、支持和更新日志。

Join Discord


此扩展改进了什么?

Mine Mine no Mi 已经提供了基础的能力保护系统。Sol’s MMNM Addon 在此基础上进行了扩展,包括:

  • 更简单的命令和更清晰的命令反馈
  • 通过名称或稳定的列表编号选择受保护区域
  • 类似 WorldEdit 的矩形长方体区域,可精确指定 X、Y 和 Z 坐标范围
  • 可重复使用的保护配置
  • 地形再生与更可靠的还原机制
  • 各区域独立的能力规则、玩家建造规则、实体筛选和生成管理
  • 正确支持嵌套区域的进入与离开标题消息
  • 各区域独立的音乐播放列表,包括自定义客户端资源包音乐
  • 各区域独立的晴天、降雨和雷暴设置
  • 管理员可视化区域边界,以及受保护区域 HUD
  • 修复重复掉落、实体仇恨、容器、方块移位和破坏性能力等问题
  • 可选地抑制 Gekishin 和 Shima Yurashi 产生的碎块

主命令是/abilityprotection。较短的/abprotect别名具有相同功能,本指南中将使用该别名。

大多数管理命令需要3权限等级。包含空格的区域名称必须用引号括起来,例如"Marine Base"。

下方的详细指南默认折叠,方便浏览。点击任一类别下方的展开内容,即可查看相关命令、示例和说明。


快速入门:创建受保护区域

选项 1:MMNM 常规中心点与尺寸区域

站在要设为区域中心的位置,然后运行:

/abprotect new [site] [size]

示例:

/abprotect new arena 50

此方法沿用传统的 MMNM 受保护区域形状与尺寸系统。

选项 2:精确的 WorldEdit 风格长方体区域

适用于需要精确指定 Y 轴上下限的矩形区域。

  1. 站在第一个角落,然后运行:
/abprotect new pos1 [site]
  1. 站在对角的另一个角落,然后运行:
/abprotect new pos2

示例:如果pos1位于 Y40,而pos2位于 Y72,则区域只覆盖 Y40到72。选取的两个角落方块都包含在内。

若要将同一 X/Z 选区扩展至该维度的完整建造高度,请使用:

/abprotect new pos2 full_height

/abprotect new pos2 exact也受支持,不过普通的 pos2 默认就会使用精确的 X/Y/Z 边界。

如果你更改了维度,或名称变得不可用,导致 pos2 失败,待处理的 pos1 会保留,这样你就能修正问题后重试。

查看和可视化地点

/abprotect list
/abprotect info [site]
/abprotect view true
/abprotect view false
/abprotect view hud_text true
/abprotect view hud_text false
  • list会按固定顺序显示地点,并且重启后顺序仍会保留。
  • 大多数命令都可以使用地点标签或列表编号。例如,/abprotect info 2会选择编号为 2 的地点。
  • view true会显示受保护的边界。长方体可视化会沿选中方块的完整外边缘显示,包括宽度仅为一格的选区。
  • view hud_text true会启用仅限管理员查看的当前地点 HUD。

其他基本管理命令:

/abprotect resize [site] [size]
/abprotect rename [site] [new_name]
/abprotect remove [site]

使用 resize调整长方体大小后,会将其转换回普通的 MMNM 中心点与尺寸形状。


保护属性

使用以下格式:

/abprotect props [property] [site] [value]
属性 控制内容
block_destruction 是否允许技能破坏地点内的方块
block_restoration 受影响的方块是否会加入队列等待再生
mined_block_drops 符合条件的玩家挖掘方块是否使用正常的战利品表掉落物
player_build 玩家是否可以正常破坏和放置方块
abilities_use 是否可以在地点内使用技能
entity_damage 是否允许与实体相关的伤害和战斗
player_damage 玩家是否会受到伤害
stat_loss 是否允许 MMNM 属性损失
death 是否允许死亡
mob_spawns 是否允许正常生成生物
unconscious_time MMNM 失去意识的持续时间(刻,0–1200)
restoration_interval 每批恢复之间的间隔(刻,0–1200)
restoration_amount 每批最多恢复的方块数(1–500)
restoration_distance 恢复暂停时玩家周围的距离(0–1000)

每秒有 20 刻。将恢复距离设为 0 可关闭附近玩家导致的延迟。

示例:让技能破坏的方块再生

此设置允许破坏性 Hie 招式等技能正常生效,并在之后恢复受损地形:

/abprotect props abilities_use arena true
/abprotect props block_destruction arena true
/abprotect props block_restoration arena true
/abprotect props restoration_interval arena 100
/abprotect props restoration_amount arena 50
/abprotect props restoration_distance arena 0

在此示例中,地点每批最多恢复队列中的 50 个方块,间隔为 100 刻,也就是约 5 秒。增大 restoration_amount 可加快重建速度;增大 restoration_interval 则会让再生效果更慢、更明显。

玩家挖掘方块的掉落物

在可恢复的地点中启用 mined_block_drops 时:

  • 生存模式挖掘遵循正常的战利品表、工具和附魔规则。
  • 创造模式挖掘不会产生掉落物。
  • 掉落物只生成一次,不会被复制。
  • 能力破坏与普通玩家挖掘保持独立。

这对于玩家采集后会再生的矿场或资源区域很有用。


按能力规则

当某个能力仍应激活但不应该破坏受保护的地形时,使用 nogrief:

/abprotect nogrief add [ability] [site]
/abprotect nogrief remove [ability] [site]
/abprotect nogrief list [site]
/abprotect nogrief clear [site]

当某个能力不应在该地点使用时,使用 blacklist:

/abprotect blacklist add [ability] [site]
/abprotect blacklist remove [ability] [site]
/abprotect blacklist list [site]
/abprotect blacklist clear [site]

命令建议会提供已注册的 MMNM 能力名称。该附加组件还处理若干不遵循最简单的 base-MMNM 地形更改流程的能力路径,包括两个受支持版本上的 Takt 集成以及 1.20.1 上的 Shambles 集成。


可复用的保护配置文件

配置文件让工作人员可以保存一套标准保护属性,并将其应用到多个地点。

/abprotect profile create [profile]
/abprotect profile list
/abprotect profile info [profile]
/abprotect profile modify [profile] [property] [value]
/abprotect profile apply [profile] [site]
/abprotect profile copy [site] [profile]
/abprotect profile remove [profile]

配置文件和地点引用接受标签或列表编号。配置文件可以存储常规保护值、恢复设置、player_build 以及音乐播放列表设置。

地点消息、实体过滤器、受管理的生成规则、长方体边界和局部天气是单独管理的,不属于配置文件的一部分。


进入和离开消息

使用 | 在标题和副标题之间进行设置:

/abprotect entering_message set [site] [title] | [subtitle]

示例:

/abprotect entering_message set sphinx Sphinx Island | Birthplace of Whitebeard, under Marco's watch.

标题以粗体显示,副标题以斜体显示。相同的配置会自动生成进入消息和离开消息。

你也可以分别编辑每个部分:

/abprotect entering_message title [site] [title]
/abprotect entering_message subtitle [site] [subtitle]
/abprotect entering_message info [site]
/abprotect entering_message preview [site] entering
/abprotect entering_message preview [site] leaving
/abprotect entering_message clear [site]

嵌套地点独立工作

该附加组件会跟踪当前包含玩家的每个受保护地点。

如果一个大型 main 地点包含一个较小的 middle 地点,进入 middle 时只显示 middle 的进入消息。在仍站在 main 内时离开 middle 只显示 middle 的离开消息;它不会重复 main 的进入消息。

如果同时跨越多个边界,进入消息按从最外层到最内层的顺序排列,离开消息按从最内层到最外层的顺序排列。


受保护地点音乐

每个地点都可以有一个播放列表,其中包含原版、模组或资源包中的声音。

/abprotect props music add [site] [sound_id]
/abprotect props music remove [site] [sound_id]
/abprotect props music list [site]
/abprotect props music clear [site]
/abprotect props music shuffle [site] [true|false]
  • 一个区域最多可存储 64 首曲目。
  • 除非启用了随机播放,否则曲目会按添加顺序播放。
  • 曲目之间以及播放列表循环前会暂停五秒。
  • 玩家离开音乐区域或进入当前生效的静音区域时,音乐会停止。
  • 播放音量使用 Minecraft 的“音乐”音量类别。

从资源包添加自定义音乐

所有需要听到音乐的客户端都必须启用该资源包。专用服务器无法读取玩家本地的 resourcepacks 文件夹。

对于名为 custom:ros 的声音事件,请使用以下布局:

Your Resource Pack/
|- pack.mcmeta
`- assets/
   `- custom/
      |- sounds.json
      `- sounds/
         `- ros.ogg

示例 assets/custom/sounds.json:

{
  "ros": {
    "sounds": [
      {
        "name": "custom:ros",
        "stream": true
      }
    ]
  }
}

然后使用以下内容进行配置:

/abprotect props music add testworld custom:ros

对于较长的音乐文件,建议使用 "stream": true。

此附加组件也支持直接使用 .ogg 路径,而无需 sounds.json 条目。对于此文件:

assets/custom/sounds/music/ros.ogg

类型:

/abprotect props music add testworld custom:music/ros

请勿在命令中包含 assets/、sounds/ 或 .ogg。直接文件 ID 可能不会出现在自动补全中,但仍可手动输入。

启用或更改资源包后,请重新加载资源并重新连接到服务器,以重新同步此附加组件的自定义声音建议。如果某位玩家能听到声音,其他玩家却听不到,请确认双方启用了相同的资源包,并且“音乐”音量未静音。


各区域独立天气

使用以下命令设置受保护区域的天气:

/abprotect props weather_cycle [site] [default|rain|thunderstorm|no_weather]
模式 受保护区域内的效果
default 跟随维度的正常天气周期
rain 区域内的玩家会持续遇到降雨
thunderstorm 区域内的玩家会持续遇到降雨,且天气状态保持为雷暴
no_weather 区域内始终晴朗,并停用基于位置的降雨检测

所选模式会被保存,并随区域重命名而保留;删除区域时则会一并移除。玩家离开区域后,天气会恢复为世界的正常天气。

局部降雨会影响游戏机制吗?

会,凡是使用 Minecraft 基于位置的 isRainingAt(blockPos) 检查的机制都会受到影响。位于 rain 和 thunderstorm 区域内且未遮蔽的位置会向服务器报告正在下雨,而位于 no_weather 区域内的位置则会报告未下雨。这支持雨水滋润农田、对降雨敏感的实体,以及兼容的植被或作物生长模组等行为。

局部天气不会改变整个维度的全局天气值。只检查全局 isRaining() 或 isThundering() 状态的模组无法检测各区域之间的天气差异。此功能也不会创建独立的局部闪电模拟。

玩家看到的天气效果取决于玩家实际所在的受保护区域位置。如果玩家站在区域外,通过监控摄像头模组观察区域,摄像头画面可能不会显示区域内的降雨,即使区域内的农田和其他服务器端位置机制仍能检测到降雨。


实体生成黑名单与白名单

这些规则会筛选尝试在区域内生成的实体。

/abprotect props entity_blacklist add [site] [entity]
/abprotect props entity_blacklist add [site] all
/abprotect props entity_blacklist remove [site] [entity|all]
/abprotect props entity_blacklist list [site]
/abprotect props entity_blacklist clear [site]

/abprotect props entity_whitelist add [site] [entity]
/abprotect props entity_whitelist remove [site] [entity]
/abprotect props entity_whitelist list [site]
/abprotect props entity_whitelist clear [site]

使用完整的注册 ID,例如 minecraft:zombie 或模组实体 ID。白名单优先于黑名单。一种常见配置是将 all 加入黑名单,然后仅将允许生成的少数实体加入白名单。

这些过滤器与基础 mob_spawns 属性相互独立。它们提供针对实体的控制,而不是仅整体启用或禁用普通生物生成。


受管理保护点生成

受管理的生成规则让附加组件能够在已加载的保护点中,于活跃玩家附近生成选定的实体。从一条默认规则开始:

/abprotect props entity_spawnrules defaults [site] [entity]

默认值:

  • 启用:true
  • 尝试间隔:600 tick(30 秒)
  • 成功概率:35%
  • 群体规模:1-3
  • 活跃上限:8
  • 放置方式:natural
  • 持久:true
  • 定时消失:0(已禁用)

使用以下方式配置规则:

/abprotect props entity_spawnrules enabled [site] [entity] [true|false]
/abprotect props entity_spawnrules interval [site] [entity] [ticks]
/abprotect props entity_spawnrules chance [site] [entity] [percent]
/abprotect props entity_spawnrules pack [site] [entity] [min] [max]
/abprotect props entity_spawnrules cap [site] [entity] [count]
/abprotect props entity_spawnrules placement [site] [entity] [natural|surface|water|air]
/abprotect props entity_spawnrules persistent [site] [entity] [true|false]
/abprotect props entity_spawnrules despawn_after [site] [entity] [ticks]
/abprotect props entity_spawnrules remove [site] [entity]
/abprotect props entity_spawnrules list [site]
/abprotect props entity_spawnrules clear [site]

放置模式:

  • natural – 通用的自然风格放置,适合普通陆地生物的良好默认值
  • surface – 为守卫、强盗、动物和陆地 Boss 搜索坚实地面
  • water – 为水生生物和海王搜索有效的水域位置
  • air – 为飞行或特殊实体搜索空气位置

受管理的生成仅在相关区块已加载时运行,并遵循该点的实体黑名单和白名单。附加组件管理的生物会保留其所属保护点/规则的身份以进行上限追踪,即使它们移动到原始边界之外。被杀死或移除的生物会释放其上限槽位。

对 Boss、守卫和稀有生物使用 persistent true,它们应抵抗普通消失。使用 despawn_after 进行附加组件定时清理;0 会禁用该计时器。


恢复与 Base-MMNM 修复

Forge 1.20.1

1.20.1 构建包含更广泛的恢复可靠性层:

  • 受保护的含水和浸没方块可免受常见能力破坏路径的影响,同时能力效果仍可穿过水体。
  • 能力破坏方块前会先创建快照。
  • 被移位为下落实体的方块会追踪回其受保护地点的来源位置,并在其落到地点范围外后清理。
  • 下落方块以及火把、铁轨、按钮和拉杆等依赖支撑的方块会按更安全的顺序恢复。
  • 恢复时会从下往上放置,并推迟放置支撑尚未就绪的方块。
  • 会捕获容器和方块实体数据,确保恢复后的容器保留已存物品,避免物品重复或丢失。
  • 在受支持的爆炸恢复流程中,会处理物品展示框和画等悬挂实体。
  • 防止重复的坐标条目以及临时移位或生成的方块被错误地作为永久恢复状态。
  • 为 Takt、Shambles、方块队列、爆炸以及多种间接地形变更路径提供额外的保护集成。

Forge 1.16.5

1.16.5 版本保留了 MMNM 0.10.11 的原生恢复基础,并增加了侧重兼容性的防护措施:

  • 改进容器和方块实体的快照恢复
  • 防止能力恢复过程中容器内容物重复掉落
  • 稳定处理恢复后方块实体的坐标
  • 加强普通能力与投射物能力路径的防破坏保护
  • Takt 集成
  • 可选的 CartAddon 能力钩子,包括受支持的 Gura 和 Stella Split 路径

两个 Minecraft 版本采用不同的内部恢复实现,但都包含相同的现代地点管理功能:精确长方体区域、配置档案、嵌套消息、自定义音乐、本地化天气、实体筛选器、受管理的生成点、玩家建造控制以及改进的命令处理。

实体伤害与仇恨修复

在包含 entity_damage=false 的地点内,敌对和中立实体无法再通过受保护规则继续执行常规的锁定目标与攻击行为。当符合受保护的攻击者/受害者条件时,会取消来自实体的伤害。这适用于原版生物,以及使用 Minecraft 常规战斗钩子的模组生物。

Gura 碎屑控制

通用配置文件为:

config/solsmmnmaddon-common.toml

其中包含独立选项,可禁止以下能力发射被破坏方块产生的碎屑:

  • Gekishin
  • Shima Yurashi

这两项碎屑抑制选项默认均已启用。它们可以减少不必要的飞行或下落方块碎屑,同时保留能力的主要效果。


重要兼容性说明

  • Sol’s MMNM Addon 是一个附属模组;需要 Mine Mine no Mi。
  • 请在服务器和所有连接的客户端上安装 Sol’s MMNM Addon。
  • 在更改大量现有地点或恢复设置前,请备份世界。
  • 自定义受保护地点音乐位于客户端资源包中,因此每位收听者都需要安装该资源包。
  • 每个地点的降雨机制使用基于位置的天气检查;无法将维度范围的天气检查限定到特定地点。
  • 如果观看玩家的实际位置在地点之外,远程摄像机视角可能不会渲染地点内的降雨。
  • CartAddon 是可选的,仅适用于安装 CartAddon 后存在的 1.16.5 兼容路径。
  • 其他模组可能绕过 Minecraft 或 MMNM 的常规钩子。若它们使用标准的伤害、生成、方块变更、声音和位置天气 API,兼容性会更好。

为什么要使用 Sol’s MMNM Addon?

如果你的 Mine Mine no Mi 服务器需要受保护的城镇、竞技场、岛屿、地牢、可再生的战场、受控的 Boss 区域、更有氛围的地点,或更安全的地形还原,又不想让管理人员每次都手动重建所有设置,就使用这个附加组件。

它旨在帮助管理员更轻松地创建和维护受保护的地点,同时让玩家在不同地点之间切换时获得更清晰、更沉浸的体验。

常见问题

Sol’s MMNM Addon: AbilityProtection Rework (QoL, Improvements) 支持哪些 Minecraft 版本?

Sol’s MMNM Addon: AbilityProtection Rework (QoL, Improvements) 支持 Minecraft Java 版 1.16.5–1.20.1,共 2 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Sol’s MMNM Addon: AbilityProtection Rework (QoL, Improvements) 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

solmochi 的其他作品

查看全部 →