需通过四步实现:一、注册自定义工具并设属性;二、监听攻击事件添加特效;三、绑定物品栏交互与快捷键;四、注册合成表集成游戏。

如果您希望在 Minecraft 的 JavaScript 环境(如 ScriptEngine、MCJS 插件或 Bedrock 版本的自定义脚本环境)中创建可使用的工具或武器,需通过定义物品属性、注册事件响应及绑定攻击逻辑来实现。以下是完成该任务的基础步骤:
一、定义基础物品并注册为工具
在 mc.js 中,工具本质是具有特定 ID 和组件的自定义物品,需通过 Item.registerCustomItem 创建,并添加工具类组件以支持耐久、挖掘速度等行为。
1、使用 Item.registerCustomItem("custom:iron_sword", { displayName: "铁剑" }) 注册新物品。
2、调用 Item.setToolType("custom:iron_sword", "sword") 指定其为剑类工具,启用默认攻击判定。
3、通过 Item.setMaxDamage("custom:iron_sword", 250) 设置最大耐久值。
4、使用 Item.setAttackDamage("custom:iron_sword", 7) 设定基础攻击力(高于原版铁剑的6点)。
二、添加自定义攻击效果
原生工具无特效逻辑,需监听玩家攻击事件,在命中实体时触发额外行为,例如造成燃烧、击退或粒子效果。
1、注册 PlayerAttackEntityEvent 监听器,过滤持有 custom:iron_sword 的玩家。
2、在事件回调中调用 entity.addEffect(Mojang.MinecraftEffects.fire_resistance, 200, 1) 为目标实体添加抗火效果(示意性逻辑)。
3、执行 player.playSound("mob.ghast.scream", 1.0, 1.0) 播放音效以增强反馈。
4、使用 player.spawnParticle("minecraft:flame", pos.x, pos.y + 1.2, pos.z) 在玩家前方生成火焰粒子。
三、绑定快捷键与物品栏交互
确保玩家可通过物品栏选择并正常使用该工具,需设置其在创造模式物品栏中的分类与图标,并处理右键交互逻辑。
1、调用 Item.setCategory("custom:iron_sword", "equipment") 将其归入装备分类。
2、使用 Item.setIcon("custom:iron_sword", "textures/items/iron_sword") 指定贴图路径(需提前放入资源包)。
3、监听 PlayerInteractEvent,当玩家对空气右键且手持 custom:iron_sword 时,播放挥剑动画并消耗 1 点耐久。
4、通过 item.useOn(player, blockPos) 判断是否对准方块,若成立则触发挖掘逻辑并扣除对应耐久。
四、制作合成表并集成进游戏
使工具可通过工作台合成获得,需注册配方,指定输入材料与输出物品,并兼容 JEI 或类似界面显示。
1、构造合成配方对象,包含 "pattern": ["III", " I ", " I "] 表示三行三列布局。
2、定义 "key": {"I": {"item": "minecraft:iron_ingot"}} 映射字母 I 为铁锭。
3、设置 "result": {"item": "custom:iron_sword"} 指定输出为自定义剑。
4、调用 CraftingTable.registerShapedRecipe("custom_sword_recipe", recipeObj) 完成注册。










