您好,欢迎来到刀刀网。
搜索
您的当前位置:首页我的世界MinecraftMod开发学习笔记-Mod开发环境设置和HelloWorld示例

我的世界MinecraftMod开发学习笔记-Mod开发环境设置和HelloWorld示例

来源:刀刀网
我的世界MinecraftMod开发学习笔记-Mod开发环境设置和

HelloWorld⽰例

概述

本⽂通过⼀个简单的Helll World Mod⽰例, 介绍了使⽤Forge MDK (Mod Development Kit)开发Minecraft Mod的基本环境设置和过程.

运⾏环境

Java 1.8 JDK

Minecraft Java Edition 1.12.2

安装Forge和MDK

从下载Minecraft Forge - MC 1.12.2 installer和Mod Development Kit (MDK)包.运⾏Forge installer安装Forge

将MDK压缩包解压的指定⽬录, 例如C:\\mdk.

设置MDK

在MDK⽬录下, 运⾏如下命令

gradlew setupDecompWorkspace

项⽬⽂件结构

MDK设置完毕后会⽣成以下的项⽬⽂件结构

mdk/

├── build/ ├── gradle/

│ └── wrapper/

│ ├── gradle-wrapper.jar

│ └── gradle-wrapper.properties ├── src/

│ ├── main/ │ ├── java/

│ └── resources/ │ ├── mcmod.info │ └── pack.mcmeta ├── build.gradle ├── gradlew └── gradlew.bat

设置Gradle build⽂件

编辑build.gradle并修改version, group和archivesBaseName

version = \"1.0.0\"

group= \"minecraftfun\"

archivesBaseName = \"helloWorldMod\"

修改 {mcmod.info}

编辑 mcmod.info以修改modid, name和description.

\"modid\": \"helloworldmod\ \"name\": \"Hello World Mod\ \"description\": \"Hello World\

提⽰: modid 只能使⽤⼩写字母.

创建mod Java类

src/main/java/minecraftfun/HelloWorldMod.javapackage minecraftfun;

import org.apache.logging.log4j.Logger;

import net.minecraftforge.common.MinecraftForge;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.FMLPreInitializationEvent;

@Mod(modid = HelloWorldMod.MODID, name = HelloWorldMod.NAME, version = HelloWorldMod.VERSION)public class HelloWorldMod {

public static final String MODID = \"helloworldmod\"; public static final String NAME = \"Hello World Mod\"; public static final String VERSION = \"1.0.0\"; private static Logger logger;

@EventHandler

public void preInit(FMLPreInitializationEvent event) {

logger = event.getModLog(); }

@EventHandler

public void init(FMLInitializationEvent event) {

logger.info(\"Mod initlialised :\" + NAME); }}

创建⼀个Java类⽤于处理放下Block的事件

src/main/java/minecraftfun/BlockPlaceHandler.javapackage minecraftfun;

import net.minecraft.util.text.TextComponentString;

import net.minecraftforge.event.world.BlockEvent.PlaceEvent;

import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;public class BlockPlaceHandler {

@SubscribeEvent

public void onPlaceEvent(PlaceEvent event) { event.getPlayer().sendMessage(

new TextComponentString(\"You placed a block : \" + event.getPlacedBlock().getBlock().getLocalizedName())); }}

使⽤@SubscribeEvent标记处理放下Block事件的⽅法.

在Mod类的init⽅法中注册事件处理类.

@EventHandler

public void init(FMLInitializationEvent event) {

logger.info(\"Mod initlialised :\" + NAME);

MinecraftForge.EVENT_BUS.register(new BlockPlaceHandler()); }

编译Mod

运⾏如下命令以编译Mod

gradlew build.

该命令在build/libs⽬录下⽣成[archivesBaseName]-[version].jar⽂件.

测试Mod

将编译⽣成的mod jar⽂件放⼊Minecraft mods⽬录(在Windows下为 %appdata%.minecraft\\mods), 运⾏Minecraft.当玩家放下⼀个Block时, 该mod会显⽰⼀条对话消息并输出放下的Block的名称.

⼩结

对Minecraft Mod开发感兴趣的朋友不妨试⼀试, 所有源代码和mod jar⽂件也可以从下载.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务