跳到正文

Pufferfish’s Skills Restrictions

作者:Silvertide

限制物品、盔甲和武器在拥有必要技能之前被使用、造成伤害、破坏方块或装备到盔甲槽或饰品槽。你也可以限制与方块和实体的交互。

收藏

介绍

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

Pufferfish’s Skills 物品限制

需要 Pufferfish’s Skills。可选:Curios API 用于 equip_curio 门控。


功能说明

将物品、方块和实体锁定在 Pufferfish’s Skills 的玩家技能之后。

物品目标 — 如果玩家尚未解锁所需技能,则无法使用该物品来:

  • 对实体造成伤害(attack)
  • 破坏方块(break)
  • 右键点击它(拉弓、举起盾牌、抛掷钓竿等)(use)
  • 将其装备为盔甲(equip_armor)
  • 将其装备为 Curios 饰品(equip_curio)

方块目标 — 阻止对该特定方块的右键点击(interact)。适用于门控工作台、酿造台、铁砧、熔炉、附魔台、信标、门、拉杆、按钮或任何其他可交互方块。整个右键点击会被取消,因此手持方块物品的玩家也无法将其放置到被门控的方块上。

实体目标 — 阻止对该实体类型的右键点击(interact)。涵盖一般右键点击和精确碰撞箱右键点击(因此盔甲架盔甲槽点击和马匹上鞍也包含在内)。适用于门控:

  • 村民交易
  • 骑乘船、马、猪、炽足兽
  • 给马匹上鞍
  • 喂食 / 繁殖动物(手持食物右键点击)
  • 将盔甲装备到盔甲架上

请注意,这仅门控右键点击交互。攻击实体是单独门控的,取决于用于攻击的物品(武器上的 attack 门控)。

规则从数据包加载,因此整合包可以配置或覆盖被门控的内容,而无需修改代码。


使用方法

在 data/<your-namespace>/pufferfish_skill_gate_rules/<anything>.json 下添加一个 JSON 文件。一个文件即一条规则。内层文件夹名称是固定的;外层命名空间由你自行选择。

字段:

  • items、blocks 或 entities 中恰好一个(必填):一个非空的注册表 ID 列表。单条目列表对于单个目标同样适用。
  • gates(可选):要门控的动作。对于物品,为 "attack"、"break"、"use"、"equip_armor"、"equip_curio" 的任意子集。对于方块和实体,仅 "interact"。省略则门控该目标类型的完整集合。
  • skills(必填):技能需求列表。每个条目为 { "category": "<category id>", "skill": "<skill id>" }。玩家只要解锁其中任意一个即通过。

物品示例(一条规则中包含多个物品),位于 data/my_pack/pufferfish_skill_gate_rules/diamond_tools.json:

{
  "items": ["minecraft:diamond_sword", "minecraft:diamond_pickaxe", "minecraft:diamond_axe"],
  "gates": ["attack", "break"],
  "skills": [
    { "category": "my_skills:combat", "skill": "swordsmanship" },
    { "category": "my_skills:combat", "skill": "blade_mastery" }
  ]
}

方块示例(单目标同理,只需单条目列表),位于 data/my_pack/pufferfish_skill_gate_rules/crafting_table.json:

{
  "blocks": ["minecraft:crafting_table"],
  "skills": [
    { "category": "my_skills:crafting", "skill": "basic_crafting" }
  ]
}

实体示例,位于 data/my_pack/pufferfish_skill_gate_rules/villager.json:

{
  "entities": ["minecraft:villager"],
  "skills": [
    { "category": "my_skills:social", "skill": "trading" }
  ]
}

一条规则可以同时覆盖多个目标 — 这正是列表的用途。将共享相同技能需求和相同门控的所有内容归入单个文件,这样就不必在十几个规则中重复技能数组。

你还可以编写多条作用于同一目标的规则(通常用于对同一物品的不同操作进行限制)。当多条规则同时作用于同一目标和同一操作时,只要满足其中任意一条,玩家即可通过。

如果你把物品、方块、实体或技能 ID 打错了,模组会记录一条警告并跳过该规则,因此目标不会意外地被永久锁定。


注意事项

  • 创造模式和旁观模式会绕过所有限制。创造模式下的玩家本来就能给自己任何物品,所以在那里强制执行没有意义。/give服务端权威。
  • 检查在服务端进行。服务端会把玩家的被阻止目标列表推送到客户端,这样动画(拉弓、挥击、破坏方块粒子)也会在本地被抑制,但服务端才是权威来源。Curios 是可选的。
  • 未安装时,限制不会产生任何效果。没有错误,也没有警告。equip_curio洗点安全。
  • 如果玩家在穿着受限制的盔甲或饰品时洗点(锁定技能),这些物品会自动返还到其物品栏。该限制是按操作生效的,因此洗点时无需清理任何东西。interact性能。
  • 被阻止目标列表会在玩家加入时按玩家缓存,并在技能解锁或锁定时增量更新。不会每 tick 或每次操作都查询 Pufferfish’s Skills。方块上的潜行绕过。
  • 潜行时,方块上的限制不会触发。这让玩家可以在受限制方块旁放置物品(或其他方块),而不会被告知无法交互。实体限制无论是否潜行都会触发。interact动作栏消息
  • 对于限制(方块和实体),会显示“你尚未解锁与 X 交互的技能”;对于基于物品的限制(攻击/破坏/使用/装备),会显示“你尚未解锁使用 X 的技能”。消息被限流为每秒一次,因此狂点也不会刷屏动作栏。interact整合包政策

可在任何整合包中免费使用。欢迎附上指向本页面的链接。

常见问题

Pufferfish’s Skills Restrictions 支持哪些 Minecraft 版本?

Pufferfish’s Skills Restrictions 支持 Minecraft Java 版 1.20.1–1.21.1,共 2 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

Pufferfish’s Skills Restrictions 怎么安装?

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

评论

登录后评论和评分

Silvertide 的其他作品

查看全部 →