From a80f7388d1630f2888b6717511eba851953932c8 Mon Sep 17 00:00:00 2001 From: minglipro Date: Wed, 16 Jul 2025 20:38:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=83=E7=94=A8=201.20.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 16 ++++--- gradle.properties | 4 +- settings.gradle | 2 +- .../EnchantmentDoNotConflictForge.java | 45 +++++++++---------- .../network/message/ConfigMessage.java | 8 +++- src/main/resources/META-INF/mods.toml | 15 ++++--- .../enchantmentdoesnotconflict.mixins.json | 4 +- 7 files changed, 48 insertions(+), 46 deletions(-) diff --git a/build.gradle b/build.gradle index 9f56870..9485b84 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0.24,6.2)' - id 'org.spongepowered.mixin' version '0.7.36' + id 'org.spongepowered.mixin' version '0.7+' } version = "Forge-${project.minecraft_version}-${project.mod_version}" @@ -19,6 +19,7 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(21) println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version + copyIdeResources = true runs { client { @@ -74,10 +75,7 @@ repositories { } dependencies { - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - annotationProcessor 'org.spongepowered:mixin:0.8.5' - implementation 'org.spongepowered:mixin:0.8.5' - implementation("com.google.code.gson:gson:2.13.1") + minecraft ("net.minecraftforge:forge:${minecraft_version}-${forge_version}") } def resourceTargets = ['META-INF/mods.toml', 'pack.mcmeta'] @@ -130,6 +128,10 @@ publishing { repositories {} } -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' +idea.module { downloadJavadoc = downloadSources = true } + +sourceSets.each { + def dir = layout.buildDirectory.dir("sourcesSets/$it.name") + it.output.resourcesDir = dir + it.java.destinationDirectory = dir } diff --git a/gradle.properties b/gradle.properties index 0ff583e..37b6df5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,8 +3,8 @@ systemProp.file.encoding=UTF-8 minecraft_version=1.20.6 minecraft_version_range=[1.20.6] forge_version=50.2.0 -forge_version_range=[49,) -loader_version_range=[49,) +forge_version_range=[50,) +loader_version_range=[50,) mapping_channel=official mapping_version=1.20.6 mod_id=enchantmentdoesnotconflict diff --git a/settings.gradle b/settings.gradle index ee3068f..c6e1eb0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,7 +9,7 @@ pluginManagement { } plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' } rootProject.name= "${mod_id}-Forge-${minecraft_version}-${mod_version}" diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/EnchantmentDoNotConflictForge.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/EnchantmentDoNotConflictForge.java index 327a764..1c0d2f5 100644 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/EnchantmentDoNotConflictForge.java +++ b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/EnchantmentDoNotConflictForge.java @@ -2,37 +2,44 @@ package com.mingliqiye.minecraft.enchantment.conflict; import com.mingliqiye.minecraft.enchantment.conflict.config.ModConfig; import com.mingliqiye.minecraft.enchantment.conflict.network.ChannelHander; +import com.mingliqiye.minecraft.enchantment.conflict.network.message.ConfigMessage; import com.mojang.logging.LogUtils; +import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.server.ServerStartingEvent; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.ModContainer; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.slf4j.Logger; +/** + * 有没有大佬能够修复该版本的问题
+ * 开发环境可以运行 生产环境报错映射出错 FriendlyByteBuf::writeUtf(String s,int i) + * @see ConfigMessage + * @see FriendlyByteBuf + * @deprecated + */ @Mod(EnchantmentDoNotConflictForge.MODID) public class EnchantmentDoNotConflictForge { public static final String MODID = "enchantmentdoesnotconflict"; private static final Logger LOGGER = LogUtils.getLogger(); - public EnchantmentDoNotConflictForge() { - ModLoadingContext.get().registerConfig(net.minecraftforge.fml.config.ModConfig.Type.COMMON, ModConfig.SPEC); - - IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + public EnchantmentDoNotConflictForge(IEventBus modEventBus, ModContainer container) { + container.addConfig( + new net.minecraftforge.fml.config.ModConfig(net.minecraftforge.fml.config.ModConfig.Type.COMMON, + ModConfig.SPEC, container)); modEventBus.addListener(this::commonSetup); - - IEventBus forgeEventBus = MinecraftForge.EVENT_BUS; - forgeEventBus.register(this); + MinecraftForge.EVENT_BUS.addListener(this::onPlayerLogin); + } + + public EnchantmentDoNotConflictForge(FMLJavaModLoadingContext context) { + this(context.getModEventBus(), context.getContainer()); } - @SubscribeEvent public void commonSetup(FMLCommonSetupEvent event) { event.enqueueWork(() -> { ChannelHander.register(); @@ -40,6 +47,7 @@ public class EnchantmentDoNotConflictForge { LOGGER.info("Network channel registered successfully"); }); } + @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { if (event.getEntity() instanceof ServerPlayer player) { @@ -47,17 +55,4 @@ public class EnchantmentDoNotConflictForge { LOGGER.debug("Sent config to player: {}", player.getName().getString()); } } - - @SubscribeEvent - public void onServerStarting(ServerStartingEvent event) { - LOGGER.info("Server starting initialization"); - } - - @Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) - public static class ClientModEvents { - @SubscribeEvent - public static void onClientSetup(FMLClientSetupEvent event) { - LOGGER.info("Client setup complete"); - } - } } diff --git a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/message/ConfigMessage.java b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/message/ConfigMessage.java index 90d8bc4..8fec5c1 100644 --- a/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/message/ConfigMessage.java +++ b/src/main/java/com/mingliqiye/minecraft/enchantment/conflict/network/message/ConfigMessage.java @@ -9,6 +9,7 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraftforge.event.network.CustomPayloadEvent; import net.minecraftforge.network.NetworkDirection; import net.minecraftforge.network.PacketDistributor; +import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import static com.mingliqiye.minecraft.enchantment.conflict.network.ChannelHander.CONFIG_CHANNEL_INSTANCE; @@ -24,8 +25,11 @@ public record ConfigMessage(ModConfig.ConfigItem data) { .decoder(ConfigMessage::decode).encoder(ConfigMessage::encode).consumerMainThread(ConfigMessage::handle).add(); } + /** + * @deprecated + */ public static void encode(ConfigMessage configMessage, FriendlyByteBuf byteBuf) { - byteBuf.writeUtf(GSON.toJson(configMessage.data)); + byteBuf.writeUtf(GSON.toJson(configMessage.data),32767); } public static ConfigMessage decode(FriendlyByteBuf byteBuf) { @@ -36,7 +40,7 @@ public record ConfigMessage(ModConfig.ConfigItem data) { ModConfig.ConfigItem configItem = ModConfig.getInstance(); CONFIG_CHANNEL_INSTANCE.send(new ConfigMessage(configItem),PacketDistributor.PLAYER.with(player)); LOGGER.info("Send Server Config {} to {} data={}", EnchantmentDoNotConflictForge.MODID, - player.getName().getString(), configItem); + player.getDisplayName().getString(), configItem); } public static void handle(ConfigMessage configMessage, CustomPayloadEvent.Context ctx) { diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index a7b6d5a..b3429c5 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,16 +1,17 @@ modLoader="javafml" loaderVersion="${loader_version_range}" license="${mod_license}" + [[mods]] -modId="${mod_id}" -version="${mod_version}" -displayName="${mod_name}" -authors="${mod_authors}" -description='''${mod_description}''' -logoFile = "assets/${mod_id}/textures/logo/title_full.png" + modId="${mod_id}" + version="${mod_version}" + displayName="${mod_name}" + authors="${mod_authors}" + description='''${mod_description}''' + logoFile = "assets/${mod_id}/textures/logo/title_full.png" [[mixins]] -config="${mod_id}.mixins.json" + config="${mod_id}.mixins.json" [[dependencies.${mod_id}]] modId="forge" diff --git a/src/main/resources/enchantmentdoesnotconflict.mixins.json b/src/main/resources/enchantmentdoesnotconflict.mixins.json index f31298f..fd65809 100644 --- a/src/main/resources/enchantmentdoesnotconflict.mixins.json +++ b/src/main/resources/enchantmentdoesnotconflict.mixins.json @@ -2,7 +2,7 @@ "required": true, "package": "com.mingliqiye.minecraft.enchantment.conflict.mixin", "refmap": "enchantmentdoesnotconflict.mixins.refmap.json", - "compatibilityLevel": "JAVA_21", + "compatibilityLevel": "JAVA_17", "mixins": [ "ArrowInfiniteEnchantmentMixin", "ArrowPiercingEnchantmentMixin", @@ -12,7 +12,7 @@ "injectors": { "defaultRequire": 1 }, - "minVersion": "0.8.5", + "minVersion": "0.8", "overwrites": { "requireAnnotations": true }