Minecraft 1201 Forge制作mod设置仅客户端需装服务端不能装Minecraft 版本1201
要制作一个仅在客户端安装的Forge mod,你需要在代码中对客户端和服务端进行区分,并在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"]
// }
// }
// }
在你的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事件处理方法等...
}
}
最后,在你的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仅在客户端加载。
完成这些步骤后,你可以使用Gradle的runClient任务来运行客户端,并使用runServer任务来运行服务端。确保你在运行客户端时正确安装了你的mod,并在运行服务端时不安装该mod。
希望这可以帮助到你制作一个仅在客户端安装的Forge mod
原文地址: https://www.cveoy.top/t/topic/iTn8 著作权归作者所有。请勿转载和采集!