用命令启动java我的世界_我的世界Minecraft Mod开发学习笔记 - 实现一个简单的命令Mod...

本文介绍了如何使用Forge MDK为Minecraft 1.12.2开发一个简单的命令Mod,该Mod接收用户输入并在聊天中显示。步骤包括环境配置、创建项目结构、编写Java命令类和Mod类、设置资源文件,以及测试Mod的运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

本文使用Forge MDK (Mod Development Kit)实现一个简单的命令Mod用于显示用户输入.

运行环境

Java 1.8 JDK

Minecraft Java Edition 1.12.2

Forge and MDK 1.12.2

安装Forge和MDK

从Minecraft Forge官网下载Minecraft Forge - MC 1.12.2 installer和Mod Development Kit (MDK)包.

运行Forge installer安装Forge

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

设置Mod项目

在MDK目录下, 运行gradlew setupDecompWorkspace命令以创建如下Mod项目结构

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 = "echo-cmd-mod"

修改 mod 信息

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

"modid": "echocmdmod",

"name": "Echo Command Mod",

"description": "A command mod echoes user inputs",

提示: modid 只能使用小写字母.

创建command Java类

src/main/java/minecraftfun/EchoCommand.java

package minecraftfun;

import net.minecraft.command.CommandBase;

import net.minecraft.command.CommandException;

import net.minecraft.command.ICommandSender;

import net.minecraft.server.MinecraftServer;

import net.minecraft.util.text.TextComponentString;

import net.minecraft.util.text.TextFormatting;

public class EchoCommand extends CommandBase {

@Override

public void execute(MinecraftServer server, ICommandSender sender, String[] params) throws CommandException {

EchoCommandMod.logger.info("execute called");

if (params != null && params.length > 0) {

for (String param : params) {

String message = "Echo : " + param;

TextComponentString text = new TextComponentString(message);

text.getStyle().setColor(TextFormatting.RED);

sender.sendMessage(text);

}

}

}

@Override

public String getName() {

return "echo";

}

@Override

public String getUsage(ICommandSender sender) {

return "command.echo.usage";

}

}

getUsage方法的返回字符串对应语言文件中的键值.

创建mod Java类

src/main/java/minecraftfun/EchoCommandMod.java

package minecraftfun;

import org.apache.logging.log4j.Logger;

import net.minecraftforge.fml.common.Mod;

import net.minecraftforge.fml.common.Mod.EventHandler;

import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

import net.minecraftforge.fml.common.event.FMLServerStartingEvent;

@Mod(modid = EchoCommandMod.MODID, name = EchoCommandMod.NAME, version = EchoCommandMod.VERSION)

public class EchoCommandMod {

public static final String MODID = "echocmdmod";

public static final String NAME = "Echo Command Mod";

public static final String VERSION = "1.0.0";

public static Logger logger;

@EventHandler

public void preInit(FMLPreInitializationEvent event)

{

logger = event.getModLog();

}

@EventHandler

public void init(FMLServerStartingEvent event)

{

logger.info("initalise FMLServerStartingEvent :" + NAME);

event.registerServerCommand(new EchoCommand());

}

}

设置resource目录结构

在src/main/resources目录下, 创建如下目录和文件, 将MODID替换为EchoCommandMod.MODID

src/main/resources/assets/

└── /

└── lang/

└── en_us.lang

修改mod语言文件

src/main/resources/assets/echocmdmod/lang/en_us.lang

command.echo.usage=/echo

运行如下命令以编译Mod

gradlew build

该命令在build/libs目录下生成[archivesBaseName]-[version].jar文件.

测试Mod

将编译生成的mod jar文件放入Minecraft mods目录(在Windows下为 %appdata%.minecraft\mods), 运行Minecraft, 输入命令/echo some message here.

ebae827efb903716ab2d228c1156762c.png

小结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值