# Minecraft Fabric Modding - Command ~~指令的創建共分為三個部分:`Mixin + DataSaver`、`Command`、`Events`~~ ## Mixin + Data Saver 在 `mixin` 資料夾中加入 `ModEntityDataSaver.java`: ```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`: ```java= public interface IEntityDataSaver { NbtCompound getPersistentData(); } ``` ## Command 以下以 SetHome、ReturnHome 為例。 --- ###### tags: `Minecraft Fabric Modding`