指令的創建共分為三個部分:Mixin + DataSaver
、Command
、Events
在 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();
}
以下以 SetHome、ReturnHome 為例。
Minecraft Fabric Modding
(188){8}2h[4:7]/5h[8:1],6,5h[8:1],6,5h[8:1],6,7h[8:1],5h[8:1],6,2h[4:7]/5h[8:1],6,5h[8:1],6,5h[8:1],6,6,7,5,6,2h[4:7]/5h[8:1],6,5h[8:1],6,5h[8:1],6,7h[8:1],5h[8:1],6,2h[4:7]/5h[8:1],6,5h[8:1],6,5h[8:1],6,8-5[8:1],
Jul 7, 2023記得使用 Minecraft 1.18.2 版本!
Mar 15, 2023Java是一種廣泛使用的電腦程式語言,擁有跨平台、物件導向、泛型程式設計的特性,廣泛應用於企業級Web應用開發和移動應用開發。--《維基百科》 以下皆使用 IntelliJ 做示範 主函數 首先,創建一個 java 檔,IntelliJ 會自動幫你生成一個 class (必須與檔名相同) 接著打上 main,你就會看到自動完成,直接按 enter 即可。 完成後大概長這樣:
Feb 23, 2023正規表達式 (Regular Expression, Regex) 使用單個字串來描述、符合一系列符合某個句法規則的字串。 基本語法 選擇 豎線 | 代表選擇(即或集),具有最低優先級。例如 gray|grey 可以符合grey或gray。 數量限定 加號 + 代表前面的字元必須至少出現一次。例如,goo+gle 可以符合 google、gooogle、goooogle 等 問號 ? 代表前面的字元最多只可以出現一次。例如,colou?r 可以符合 color 或者 colour
Aug 4, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up