Minecraft 1.20.1 Forge Mod 制作教程:仅客户端安装
Minecraft 1.20.1 Forge Mod 制作教程:仅客户端安装
制作一个仅在客户端安装的 Forge Mod,你需要在代码中区分客户端和服务端,并在 mod 的配置文件中设置仅客户端加载。
1. 创建 Mod 项目
首先,你需要创建一个新的 mod 项目。在项目的 build.gradle 中,确保你使用的是正确的 Minecraft 版本 (1.20.1) 和 Forge 版本。以下是一个示例:
buildscript {
repositories {
jcenter()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:3.+' // 更新到最新版本
}
}
apply plugin: 'net.minecraftforge.gradle.forge'
// 如果你需要运行客户端和服务端的模块,取消下面两行的注释
// apply plugin: 'net.minecraftforge.gradle.forge.server'
// apply plugin: 'net.minecraftforge.gradle.forge.client'
version = "1.0"
group = "com.example"
minecraft {
version = "1.20.1"
// 如果你需要运行客户端和服务端的模块,取消下面两行的注释
// runDir = "run"
// mappings = "snapshot_20211230"
}
dependencies {
// 客户端的依赖库
// 例如,如果你想使用 GuiScreen 类,请添加以下依赖
// compile 'net.minecraft:client:1.20.1'
// 服务端的依赖库
// 例如,如果你想使用 ServerCommandSource 类,请添加以下依赖
// compile 'net.minecraft:server:1.20.1'
// 共享的依赖库
// 例如,如果你想使用 Item 类,请添加以下依赖
// compile 'net.minecraft:shared:1.20.1'
}
// 客户端的模块
// 如果你需要运行客户端和服务端的模块,取消下面两行的注释
// sourceSets {
// main {
// if (project.plugins.hasPlugin('net.minecraftforge.gradle.forge.server')) {
// output.dirs = [minecraft.runDir + "/mods"]
// }
// }
// }
// 服务端的模块
// 如果你需要运行客户端和服务端的模块,取消下面两行的注释
// sourceSets {
// main {
// if (project.plugins.hasPlugin('net.minecraftforge.gradle.forge.client')) {
// output.dirs = [minecraft.runDir + "/mods"]
// }
// }
// }
2. 区分客户端和服务端代码
在你的 mod 主类中,你可以使用 DistExecutor 类来区分客户端和服务端的代码。以下是一个示例:
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@Mod("examplemod")
public class ExampleMod {
@OnlyIn(Dist.CLIENT)
public static void clientSetup(FMLClientSetupEvent event) {
// 仅在客户端加载的代码
}
public static void commonSetup(FMLCommonSetupEvent event) {
// 在客户端和服务端都加载的代码
}
// 其他 mod 事件处理方法等...
@Mod.EventBusSubscriber(modid = "examplemod", bus = Mod.EventBusSubscriber.Bus.MOD)
public static class ModEventSubscriber {
@OnlyIn(Dist.CLIENT)
@SubscribeEvent
public static void onClientSetup(FMLClientSetupEvent event) {
ExampleMod.clientSetup(event);
}
@SubscribeEvent
public static void onCommonSetup(FMLCommonSetupEvent event) {
ExampleMod.commonSetup(event);
}
// 其他 mod 事件处理方法等...
}
}
3. 设置仅客户端加载
最后,在你的 mod 的配置文件(例如 src/main/resources/META-INF/mods.toml)中,你可以设置仅客户端加载。以下是一个示例:
[mod]
modId = "examplemod"
version = "1.0.0"
displayName = "Example Mod"
authorList = ["Your Name"]
description = "An example mod for Minecraft 1.20.1"
[[dependencies.examplemod]]
modId = "forge"
versionRange = "[37.0.0,)"
mandatory = true
side = "CLIENT"
在这个示例中,side = "CLIENT" 表示该 mod 仅在客户端加载。
4. 运行 Mod
完成这些步骤后,你可以使用 Gradle 的 runClient 任务来运行客户端,并使用 runServer 任务来运行服务端。确保你在运行客户端时正确安装了你的 mod,并在运行服务端时不安装该 mod。
希望这可以帮助你制作一个仅在客户端安装的 Forge mod!
原文地址: https://www.cveoy.top/t/topic/qznl 著作权归作者所有。请勿转载和采集!