音の贤者
        Package的命名很随意,Forge建议的命名规范是"作者名.mod名”,Java建议的命名规范是Package的制作公司的网站的域名的倒写,例如"com.lofter"
        实际上无需在这个问题上纠结这个教程里使用了“作者名.mod名”的命名规范,毕竟不是谁都有一级域名的= =
        右键项目中的minecraft,选择New->Package来创建一个Package

然后输入你Package的名字


然后点击Finish,由于我的Package已经建好了所以Finish是灰色的~
              沿袭ML时的老习惯以“mod_mod名”来命名~
              当然也可以不这样做
              右键刚刚建好的Package,选择New->Class来创建一个Class
               名字叫做mod_RPG好啦~

然后点击Finish~
        老衲的鼠标左键坏了QAQ先到这了- -
        鼠标莫名其妙的又好了- -(魂淡,这真不是借口
那么此时你的Eclipse应该是这个样子的:

然后需要在public class mod_RPG {??的上面加上??

??@Mod(modid="rpg", name="RPG", version="0.0.1")
??@NetworkMod(clientSideRequired=true, serverSideRequired=false)????
(@Mod必须标注在类的上方,它的含义是告诉Forge”这是一个Mod主类”.
它有3个字符串类型参数,modid是Mod的id号,它将用于内部识别,请确保它不包含特殊字符,并且不会经常变动.name是显示给玩家看的Mod名,version是版本号,对于联机Mod来说不要乱填.
@NetworkMod必须标注在类的上方,它的含义是告诉Forge”这个Mod对客户端和服务器端来说是否是必备的”.
clientSideRequired=true, serverSideRequired=false
代表客户端必需安装而服务端不必需安装- -
Forge在这方面的做法很不强势,也就是说你不按照设定好的来配置服务端与客户端,它只会在你连接服务器时给出一个警告,然后依旧可以正常连进去,只有在...比如客户端使用mod里的物品时而服务端没有这个mod(数据不同步)时,才会强制吧你踢出游戏。)
静等两秒中,Eclipse开始报错,因为你没有导入相关的package,点击”Import …”来自动导入相关package.
然后我们要添加用于初始化Mod的方法(Method)我们使用Annotation来实现.
在你的类中添加这些代码.
@EventHandler
public void preLoad(FMLPreInitializationEvent event)
{
}

@EventHandler
public void load(FMLInitializationEvent event)
{
}

@EventHandler
public void postLoad(FMLPostInitializationEvent event)
{
}
并导入相关的Package.
这时你的Eclipse应该是这样的:

这时你的第一个Mod就已经可以运行了,虽然他没有任何东西,但他是你亲手做出来的第一个Mod不是么?
按下键盘上的F11键,并等待他编译完成,就可以在Mod页面里看到你的Mod了:



2021.12 数据,可能有更多内容
  • 首先你需要建立一个包(Package)
  Package的命名很随意,Forge建议的命名规范是"作者名.mod名”,Java建议的命名规范是Package的制作公司的网站的域名的倒写,例如"com.lofter"
  实际上无需在这个问题上纠结这个教程里使用了“作者名.mod名”的命名规范,毕竟不是谁都有一级域名的= =
  右键项目中的minecraft,选择New->Package来创建一个Package

然后输入你Package的名字



然后点击Finish,由于我的Package已经建好了所以Finish是灰色的~
  • 接着你需要建立一个mod的主类(class)


  沿袭ML时的老习惯以“mod_mod名”来命名~
  当然也可以不这样做  右键刚刚建好的Package,选择New->Class来创建一个Class
   名字叫做mod_RPG好啦~

然后点击Finish~
  老衲的鼠标左键坏了QAQ先到这了- -
  鼠标莫名其妙的又好了- -(魂淡,这真不是借口
那么此时你的Eclipse应该是这个样子的:

然后需要在public class mod_RPG {??的上面加上??

??@Mod(modid="rpg", name="RPG", version="0.0.1")??@NetworkMod(clientSideRequired=true, serverSideRequired=false)????(@Mod必须标注在类的上方,它的含义是告诉Forge”这是一个Mod主类”.
它有3个字符串类型参数,modid是Mod的id号,它将用于内部识别,请确保它不包含特殊字符,并且不会经常变动.name是显示给玩家看的Mod名,version是版本号,对于联机Mod来说不要乱填.
@NetworkMod必须标注在类的上方,它的含义是告诉Forge”这个Mod对客户端和服务器端来说是否是必备的”.
clientSideRequired=true, serverSideRequired=false
代表客户端必需安装而服务端不必需安装- -Forge在这方面的做法很不强势,也就是说你不按照设定好的来配置服务端与客户端,它只会在你连接服务器时给出一个警告,然后依旧可以正常连进去,只有在...比如客户端使用mod里的物品时而服务端没有这个mod(数据不同步)时,才会强制吧你踢出游戏。)静等两秒中,Eclipse开始报错,因为你没有导入相关的package,点击”Import …”来自动导入相关package.然后我们要添加用于初始化Mod的方法(Method)我们使用Annotation来实现.在你的类中添加这些代码.@EventHandlerpublic void preLoad(FMLPreInitializationEvent event){}
@EventHandlerpublic void load(FMLInitializationEvent event){}
@EventHandlerpublic void postLoad(FMLPostInitializationEvent event){}并导入相关的Package.这时你的Eclipse应该是这样的:

这时你的第一个Mod就已经可以运行了,虽然他没有任何东西,但他是你亲手做出来的第一个Mod不是么?
按下键盘上的F11键,并等待他编译完成,就可以在Mod页面里看到你的Mod了:




1061948186
好像我看不到图

1129361046
图片被屏蔽了QwQ

擦拭
好不容易看到一个新的mod制作教程
然后发现图全挂

asd754394413gsh
Package的命名很随意,

WildernessRgr
好不容易看到新教程没图……楼主不带这样的……

秒杀你
这叫新手向??

柯尼玛

如果有图还真的算是新手向

尼克尼
图片已挂,往补好

qq2362975089
我记得我玩过1.7.2的不基于forge的mod,直接把jar解压到1.7.2.jar核心文件内就行了,有没有这种mod的制作教程?求啊啊????????????

caizhong3
包名大写 着实给力

ggg455
像这种的话,包名不是应该推荐全小写吗?

LCwwww
Java命名规范:
包名全部小写

第一页 上一页 下一页 最后一页