逐行翻译如下:
PunchThemAll

逐行翻译如下: PunchThemAll

击打不同的方块来获取你需要的资源!

矿石与资源

揍它们全部

将任何点击变成配方。 PunchThemAll 允许整合包作者定义当玩家左键/右键点击(无论是否潜行)一个方块、流体或空气时会发生什么——可选择玩家手中持有特定物品。无需 Java,无需 KubeJS:只需在数据包中放置 JSON 文件(data/<命名空间>/pta/interaction/)。

每个交互都可以产生带权重或必定的掉落物,转换被点击的方块/流体,消耗玩家的生命值或饥饿度,给予药水效果,播放声音和粒子,并且可以通过生物群系、维度、时间、天气、海拔、光照或玩家状态进行条件限制。所有内容都会显示在 JEI 和 EMI 中。


亮点

  • 🖱️ 任何点击都是触发器 — 左键/右键、潜行与否、点击方块、流体或空气。包括点击空气(左键),这是早期版本无法做到的。
  • 🎒 感知手持物品 — 要求主手/副手/任意手持有某个物品或标签,匹配其 NBT,并选择其消耗方式(耐久度、数量减少或不变)。
  • 🎁 丰富奖励 — 一个带权重的战利品池,加上必定掉落的 guaranteed 物品,多次 rolls 抽取,以及类似时运/抢夺的加成。
  • 🔄 转换 — 将点击的方块/流体替换为另一个,复制方块状态值,并伴有声音和粒子效果。
  • 🌦️ 条件限制 — 按生物群系/维度标签、一天中的时间、天气、Y 轴范围、光照等级、潜行状态、饥饿度和经验值进行限制。
  • 💥 玩家反馈 — 药水效果、伤害、饥饿度消耗,以及交互级别的音效/粒子效果。
  • 🔎 类型化 NBT 谓词 — 使用清晰的 path + 范围 + 过滤规则来匹配物品/方块实体数据。
  • 📖 JEI 与 EMI 集成 — 玩家可以浏览每个交互、其输入、掉落物和条件。物品需求以通俗语言书写(“物品必须拥有:效率 I - V”),而不是原始的 NBT。
  • 🖥️ 服务器友好 — 交互存在于数据包中,服务器会将其同步到客户端,因此在专用服务器上 JEI/EMI 无需任何设置即可正确显示。数据包也可以被覆盖,并可使用 neoforge:conditions 进行门控。

一个简单的例子

使用任意锹潜行左键点击沙砾,有几率获得粘土,将沙砾转化为沙子,并消耗少量饥饿度:

{
  "schema_version": 2,
  "type": "shift_left_click",
  "hand": { "hand": "main", "match": "#minecraft:shovels", "consume": { "mode": "durability" } },
  "target": { "kind": "block", "match": "minecraft:gravel" },
  "transformation": { "chance": 0.7, "into": { "kind": "block", "id": "minecraft:sand" }, "particles": "minecraft:sand" },
  "rewards": { "weighted": [
    { "match": "minecraft:clay_ball", "weight": 10, "count": { "min": 1, "max": 3 } },
    { "match": "minecraft:air", "weight": 90 }
  ] },
  "costs": { "hunger": { "chance": 0.1, "amount": { "min": 1, "max": 3 } } }
}

一个“面面俱到”的例子

在夜晚、深入地底、黑暗中,使用时运镐挖掘石头——必定获得圆石,有机会获得铁粒(每级时运翻倍),获得急迫效果和粒子:

{
  "schema_version": 2,
  "type": "shift_right_click",
  "hand": {
    "hand": "main",
    "match": "#minecraft:pickaxes",
    "consume": { "mode": "durability" },
    "nbt_predicates": [ { "path": "Enchantments[].lvl", "int_range": [1, 5], "where": "{id:\"minecraft:efficiency\"}" } ]
  },
  "target": { "kind": "block", "match": "minecraft:stone" },
  "rewards": {
    "rolls": 2,
    "guaranteed": [ { "match": "minecraft:cobblestone", "count": 1 } ],
    "weighted": [
      { "match": "minecraft:iron_nugget", "weight": 20, "count": { "min": 1, "max": 2 } },
      { "match": "minecraft:air", "weight": 80 }
    ],
    "fortune": { "enchant": "minecraft:fortune", "factor": 1.0 }
  },
  "effects": [ { "id": "minecraft:haste", "duration": 100, "chance": 0.25 } ],
  "sound": "minecraft:block.stone.hit",
  "particles": "minecraft:stone",
  "conditions": { "time": "night", "y_range": [-64, 40], "light": { "max": 7 } }
}

文档

兼容性

  • Minecraft 1.21.1,NeoForge 21.1.x。
  • JEI 或 EMI(可选)用于配方浏览器——两者均原生支持。
  • 与资源/科技模组(Create、AE2、Ex Deorum、Thermal、Click Machine 等)搭配良好。