Forge当然有官方教程,网址: https://mcforge.readthedocs.io/en/latest/
但教程是全英文版的而且很不全,有些还是要自己翻源代码。
打开src\main\java,你会看到包com.example.examplemod,把它删掉,并按你在group里写的路径新建你自己的包
java是存放程序文件的包,resources是存放配置文件的包
在这个包下面,新建一个类,类名即mod名,注意所有类名以大写字母开头并不含空格!
新建一个包common,新建一个类CommonProxy
新建一个包client,新建一个类ClientProxy
把这些抄进CommonProxy.java,注意不要覆盖package语句:
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class CommonProxy {
public void preInit(FMLPreInitializationEvent event){}
public void init(FMLInitializationEvent event){}
public void postInit(FMLPostInitializationEvent event){}
}
把这些抄进ClientProxy:
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class ClientProxy extends CommonProxy{
@Override
public void preInit(FMLPreInitializationEvent event){
super.preInit(event);
}
@Override
public void init(FMLInitializationEvent event){
super.init(event);
}
@Override
public void postInit(FMLPostInitializationEvent event){
super.postInit(event);
}
}
注意到ClientProxy继承了CommonProxy,因为不同的mod包都不同,这里的CommonProxy需要手动import一下(只要Alt+Enter就可以啦)
下面是我的RealMining.java,注意有些显而易见的地方要根据你自己的mod进行修改:import com.hexatimic_ring.realmining.common.CommonProxy;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
@Mod(modid = RealMining.MODID, name = RealMining.NAME, version = RealMining.VERSION, acceptedMinecraftVersions = “1.12.2”)
public class RealMining {
public static final String MODID = “realmining”;
public static final String NAME = “Real Mining”;
public static final String VERSION = “1.0.0”;
@SidedProxy(clientSide = “com.hexatomic_ring.realmining.client.ClientProxy”,serverSide = “com.hexatomic_ring.realmining.common.CommonProxy”)
public static CommonProxy proxy;
@Instance(RealMining.MODID)
public static RealMining instance;
@EventHandler
public static void preInit(FMLPreInitializationEvent event){
proxy.preInit(event);
}
@EventHandler
public static void init(FMLInitializationEvent event){
proxy.init(event);
}
@EventHandler
public static void postInit(FMLPostInitializationEvent event){
proxy.postInit(event);
}
}
注意一下这里的modid是你的mod唯一的识别字符串
acceptedMinecraftVersions指Mod接受的Minecraft版本,格式如下:
1.12.2表示该Mod只支持1.12.2
[1.11,1.12)表示该Mod支持从1.11(包含)到1.12(不包含)的所有Minecraft版本
[1.11,1.12]表示该Mod支持从1.11(包含)到1.12(包含)的所有Minecraft版本
[1.12,)表示该Mod支持从1.12(包含)之后出现的所有Minecraft版本
不同区间可以使用逗号连接表示并集。
|