在你的src/main/java下新建一个包,我这里是net.csdn.mymod(命名规范:域名倒写+Mod名)

创建一个名为MainClass的类,代码如下。目前不需要看懂,之后我会详细解释:

1、声明我这个类是存放在net.csdn.mymod这个包下
3-7、导入包,不需要刻意去写,输入代码时他会自动帮你补上
9、这是重点,它会告诉Forge:这是我的一个Mod主类,游戏运行时如果检测不到这个注解,Forge就不会把它作为一个Mod看待。当然,它里面可以写很多参数,IDEA会自动给我们提示(注意,中间要用“,”隔开):

我也花了很多时间去总结了常见的参数,如下:

  1. [modid] 接受类型:String | 作用:用于运行时区分Mod,千万不能重名,否则会炸。还有确保它是小写 | 默认值:必须要写!
  2. [name] 接受类型:String | 作用:在游戏中可以看到的Mod名 | 默认值:modid的String值
  3. [version] 接受类型:String | 作用:版本号,首选格式:X.X.X | 默认值:null
  4. [clientSideOnly] 接受类型:boolean | 作用:是否只在客户端上运行(若为true,则服务端上不能加载) | 默认值:false
  5. [serverSideOnly] 接受类型:boolean | 作用:是否只在服务端上运行(若为true,则客户端上不能加载) | 默认值:false
  6. [acceptedMinecraftVersions] 接受类型:String | 作用:表示该Mod能在那些版本的MC上运行 | 版本声明规范:1.8.9,表示只能在1.8.9版本上运行;[1.8.9,1.9.4],表示支持从1.8.9(包含)到1.9.4(包含)的所有版本;[1.8.9,1.12.1),支持从1.8.9(包含)到1.12.1(不包含)的所有版本;[1.8.9,),支持1.8.9(包含)之后的所有版本 | 默认值:null
  7. [acceptableRemoteVersions] 接受类型:String | 作用:这是针对服务端的一个参数,表示玩家使用哪个(或那些)版本才能进入服务器,否则会被踢出,填“*”表示任何版本均可 | 默认值:null(玩家Mod版本必须与服务端相同)
  8. [modLanguage] 接受类型:String | 作用:编写该Mod所使用的语言(当然是Java喽!) | 默认值:null
  9. 也就是这几个比较常用,其他我就不写了(其实其他的我也不清楚)

12、不解释
14,20,26、@EventHandler注解与@Mod类似。表示Forge在翻阅你的类时,会指向带有该注解的方法,并且根据方法里的参数来确定一个时刻去调用它们(其实在很久以前,并没用@EventHandler这个注解,具体我就不说了)
15,21,27、这三方法分别写了FMLPreInitializationEvent,FMLInitializationEvent,FMLPostInitializationEvent三个参数

  • FMLPreInitializationEvent,表示Mod初始化前:读取文件,创建并注册物品、方块等
  • FMLInitializationEvent,Mod初始化时:创建合成表等
  • FMLPostInitializationEvent,初始化后:等所有Mod初始化完毕,再和其他的Mod进行互交
    (这段解释可能听起来模棱两可的,不过没关系)

终于讲完啦,运行一下游戏试试?



可以看到,我们的Mod已成功载入啦,但是它会提示:“No mod information found,ask your mod author to provide a mod mcmod.info file”,翻译过来就是:“我找不到关于这个Mod的任何信息,请Mod作者完善一下mcmod.info这个文件”(相信大家都能看懂)
打开src/main/resources文件夹,可以看到里面有mcmod.info文件,这正是Forge提示的,打开它:


这是官方为examplemod准备的,我们可以把它修改一下:

现在再进一下游戏试试看?

虽然目前没有什么卵用,但下一讲我们会往里面加一些有趣的东西

Source · 源代码

MainClass.java:

package net.csdn.mymod;import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;//导入包@Mod(modid = "mymod", name = "MyMod", version = "1.0.0", acceptedMinecraftVersions = "[1.8,1.8.9]")
//声明:这是我的Mod主类public class MainClass { //类声明@EventHandlerpublic void preLoad(FMLPreInitializationEvent event) //preload方法{}@EventHandlerpublic void load(FMLInitializationEvent event) //load方法{}@EventHandlerpublic void postLoad(FMLPostInitializationEvent event) // postLoad方法{}}

mcmod.info:

[
{"modid": "mymod","name": "MyMod","description": "This is my first mod for Minecraft.","version": "${version}","mcversion": "${mcversion}","url": "https://my.csdn.net/qq_38650010","updateUrl": "https://my.csdn.net/qq_38650010","authorList": ["CSDN_Y_Zhou"],"credits": "","logoFile": "","screenshots": [],"dependencies": []
}
]

[Minecraft]基于Forge的1.8.9MOD开发教程——第二讲:创建一个空Mod相关推荐

  1. [Minecraft]基于Forge的1.8.9MOD开发教程——第一讲:搭建开发环境

    (第一次写教程,有点小紧张呢..) 作者的话 我一开始学习MOD开发时,也曾在各大网站搜索过一些教程,感觉国内的MOD开发教程是真心的少:CSDN没找到,优酷.爱奇艺.腾讯.B站也几乎没有(除了优酷的 ...

  2. 基于Mixin Network的PHP比特币开发教程 之一:创建机器人

    英文原文 Mixin Network 是一个免费的 极速的端对端加密数字货币交易系统. 在本章中,你可以按教程在Mixin Messenger中创建一个bot来接收用户消息, 学到如何给机器人转比特币 ...

  3. python动态网页开发教程_python django创建一个属于自己的动态网站

    您如何开始使用Python创建网站?好吧,你可以自己完成所有工作,并编写一个在Web服务器上运行的程序,接受页面请求并以HTML和其他资源的形式提供响应.然而,这是很多工作,那么为什么在有大量现有工具 ...

  4. 基于以太坊的智能合约开发教程Solidity modifier

    基于以太坊的智能合约开发教程Solidity modifier pragma solidity ^0.4.0;contract modifierTest{address owner;uint publ ...

  5. 视频教程-基于python的微信公众号开发教程-微信开发

    基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...

  6. EnjoyingSoft之Mule ESB开发教程第二篇:Mule ESB基本概念

    目录 1. 使用Anypoint Studio开发 2. Mule ESB Application Structure - Mule ESB应用程序结构 3. Mule ESB Application ...

  7. DuiVision开发教程(2)-如何写一个简单的界面程序

    基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说 ...

  8. ASP动态网站开发教程(第二版)全文WORD下载——我到南京后写的一本书

    今天在网上看到我到南京后写的一本书 [ASP动态网站开发教程(第二版)]在网上有提供下载全部WORD文档的地址. 书名:<ASP动态网站开发教程(第二版)> 定价:¥28.00 作     ...

  9. mixin network_基于Mixin Network的Ruby比特币开发教程

    Mixin Network 是一个免费的 极速的端对端加密数字货币交易系统. 在本章中,你可以按教程在Mixin Messenger中创建一个bot来接收用户消息, 学到如何给机器人转比特币 或者 让 ...

最新文章

  1. SAP PM单一和复合角色
  2. linux gradle解压后, 执行gradle error13: Permission denied
  3. spss三次指数平滑_17 统计学:SPSS基础
  4. linux没有root密码xshell,LINUX终端免密登陆(以Xshell为例)
  5. 数据库系统概论第五版(第 3 章 关系数据库标准语言SQL)笔记
  6. FEMA和地×××府运用GIS对抗灾害
  7. Firebug工具离线安装
  8. 【Python+Stata】豪斯曼检验:固定效应or随机效应?
  9. 【脚本】Python+adb王者荣耀闯关自动刷金币
  10. ubuntu16.04安装、编译LSD-SLAM遇到错误及解决
  11. 基于SSM整合的驾照在线考试系统
  12. 嵌入式学习——使用定时器输出PWM波形,实现 LED呼吸灯的效果
  13. Buy Watermelon(思维题)
  14. 小学数学动画 android,小学数学课堂app下载-小学数学课堂 安卓版v2.2.0-PC6安卓网...
  15. python使用二分查找法查找某个数是否在列表内
  16. 磁盘SMART信息概述
  17. Infortrend CS分布式NAS集群强项之性能篇
  18. 如何控制局域网网速_WiFi新时代|要想网速飞起来,先让WiFi“6”起来
  19. Java注解和反射,美团Java面试题库
  20. c语言5v电源电路工作原理,5v稳压电源电路图(三) - 5v稳压电源电路图大全(七款5v稳压电源电路设计原理图详解)...

热门文章

  1. c语言编程华容道,C/C++仿华容道小游戏
  2. VScode写Go代码引用的包报错飘红
  3. vue组件中的方法执行顺序是怎么样的?data和props执行顺序
  4. python 坐标轴 单位刻度_Python绘图总结(Matplotlib篇)之坐标轴及刻度
  5. python3编程小车_控制小车
  6. 教你怎么在 Mac 电脑上进行语音实时输入
  7. AVD的CPU的选择
  8. matlab根号下是多项式,多项式求根
  9. 灰狼算法优化测试函数branin,测试函数的100种启发式算法求解方法之19
  10. 如何完成上传图片到腾讯云