Skip to content

关于模组名称获取


有官方的方法

Vars.content.transformName(name);//返回含自己模组名字的name
注意! 这个方法可能出现错误! 请看代码。
public void setCurrentMod(@Nullable LoadedMod mod){
    this.currentMod = mod;
}

public String transformName(String name){
    return currentMod == null ? name : currentMod.name + "-" + name;
}
是的,这是在加载是指定currentMod来获取模组名字! 如果在模组加载完成后调用会返回错误的模组名字。

我的建议是

Vars.mods.getMod(你的模组类.class).name;
直接在模组列表中通过你的模组类获取模组名称,这里的名字是直接通过mod.hjson获取的,所以一定准确。请看代码。
/** @return the loaded mod found by class, or null if not found. */
public @Nullable LoadedMod getMod(Class<? extends Mod> type){
    return mods.find(m -> m.main != null && m.main.getClass() == type);
}

上面获取到后可以设为变量

public static String modName;
并且使用以下的方法
public static String getName(String add){
    return modName + "-" + add;
}