「Minecraft」1.21 Fabric Mod 开发记录(随缘更新)
总体按照此图文教程设置,本文侧重记录中间的小问题
环境配置与基本设置
Java 采用 JDK21
构建模组模板:https://fabricmc.net/develop/template/
第一次启动需要构建 Gradle,如果无法使用梯子可以采用镜像构建:
- 将文件
gradle-wrapper.properties中的distributionUrl=https\://services.gradle.org/distributions/xxx.zip改为distributionUrl=https\://mirrors.cloud.tencent.com/gradle/xxx.zip
mod 编写
孩子们,NBT 标签死了,附魔需要另寻出路。
2025.8.24
学会一种利用 stack.addEnchantment 添加附魔的方法,所以选择在物品类里重写 onCraft 函数,在制作的一瞬间为物品添加附魔(描述等也可这么添加)。代码如下(以一把剑为例):
public class EonSwordItem extends SwordItem {
public EonSwordItem(ToolMaterial toolMaterial, Settings settings) {
super(toolMaterial, settings);
}
@Override
public void onCraft(ItemStack stack, World world) {
stack.addEnchantment(ModFunction.getEntry(world, Enchantments.LOOTING), 10);
stack.addEnchantment(ModFunction.getEntry(world, Enchantments.SWEEPING_EDGE), 10);
stack.set(DataComponentTypes.UNBREAKABLE, new UnbreakableComponent(true));
List<Text> TempLore = new ArrayList<>();
Text TempText = Text.literal("星火淬刃,一剑虚实").formatted(Formatting.DARK_RED).formatted(Formatting.BOLD);
TempText = TempText.copy().setStyle(TempText.getStyle().withItalic(false));
TempLore.add(TempText);
stack.set(DataComponentTypes.LORE, new LoreComponent(TempLore));
TempText = Text.literal("幻空").formatted(Formatting.DARK_RED).formatted(Formatting.BOLD);
TempText = TempText.copy().setStyle(TempText.getStyle().withItalic(false));
stack.set(DataComponentTypes.CUSTOM_NAME, TempText);
}
}
缺点是无法直接获取带有描述以及附魔的物品,只可合成获取
2025.8.28
经网友指点了解到另一种添加附魔以及标签的方式,可以直接在合成表里写(参考暮色的代码)。


浙公网安备 33010602011771号