Try   HackMD

Minecraft Fabric Modding - Command

指令的創建共分為三個部分:Mixin + DataSaverCommandEvents

Mixin + Data Saver

mixin 資料夾中加入 ModEntityDataSaver.java

@Mixin(Entity.class) public abstract class ModEntityDataSaver implements IEntityDataSaver { private NbtCompound persistentData; @Override public NbtCompound getPersistentData() { if(this.persistentData == null) { this.persistentData = new NbtCompound(); } return persistentData; } @Inject(method = "writeNbt", at = @At("HEAD")) protected void injectWriteMethod(NbtCompound nbt, CallbackInfoReturnable info) { if(persistentData != null) { nbt.put("<ModId>.player_data", persistentData); } } @Inject(method = "readNbt", at = @At("HEAD")) protected void injectReadMethod(NbtCompound nbt, CallbackInfo info) { if (nbt.contains("<ModId>.player_data", 10)) { persistentData = nbt.getCompound("<ModId>.player_data"); } } }

util 資料夾中以介面(interface)形式加入 IEntityDataSaver.java

public interface IEntityDataSaver { NbtCompound getPersistentData(); }

Command

以下以 SetHome、ReturnHome 為例。


tags: Minecraft Fabric Modding