fix: 修复服务端崩溃的问题

This commit is contained in:
C-H716 2025-09-21 18:16:27 +08:00
parent 47c56a91a4
commit 9966205aa2
3 changed files with 16 additions and 8 deletions

View File

@ -166,11 +166,14 @@ dependencies {
runtimeOnly "curse.maven:ex-pattern-provider-892005:6863556" runtimeOnly "curse.maven:ex-pattern-provider-892005:6863556"
//aea //aea
implementation "curse.maven:advancedae-1084104:6921281" implementation "curse.maven:advancedae-1084104:6932981"
//geckolib //geckolib
runtimeOnly "curse.maven:geckolib-388172:7009924" runtimeOnly "curse.maven:geckolib-388172:7009924"
runtimeOnly fileTree(dir: 'libs', includes: ['*.jar'])
// setup Xei (EMI/REI/JEI) using project property 'use_Xei' // setup Xei (EMI/REI/JEI) using project property 'use_Xei'
switch (project.findProperty('use_Xei') ?: 'emi') { switch (project.findProperty('use_Xei') ?: 'emi') {
case 'emi': case 'emi':

View File

@ -7,6 +7,8 @@ import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import net.neoforged.neoforge.network.handling.IPayloadContext; import net.neoforged.neoforge.network.handling.IPayloadContext;
import java.util.ArrayList; import java.util.ArrayList;
@ -58,11 +60,14 @@ public class ProvidersListS2CPacket implements CustomPacketPayload {
} }
public static void handle(final ProvidersListS2CPacket msg, final IPayloadContext ctx) { public static void handle(final ProvidersListS2CPacket msg, final IPayloadContext ctx) {
ctx.enqueueWork(() -> { ctx.enqueueWork(() -> handleClient(msg));
var mc = Minecraft.getInstance(); }
if (mc == null) return;
var current = mc.screen; @OnlyIn(Dist.CLIENT)
mc.setScreen(new ProviderSelectScreen(current, msg.ids, msg.names, msg.emptySlots)); private static void handleClient(ProvidersListS2CPacket msg) {
}); var mc = Minecraft.getInstance();
if (mc == null) return;
var current = mc.screen;
mc.setScreen(new ProviderSelectScreen(current, msg.ids, msg.names, msg.emptySlots));
} }
} }

View File

@ -14,7 +14,6 @@
"ae2.CraftingCalculationMixin", "ae2.CraftingCalculationMixin",
"ae2.CraftingCPUClusterMixin", "ae2.CraftingCPUClusterMixin",
"ae2.EncodedPatternItemMixin", "ae2.EncodedPatternItemMixin",
"ae2.QuartzCuttingKnifeItemMixin",
"ae2.accessor.MEStorageMenuAccessor", "ae2.accessor.MEStorageMenuAccessor",
"ae2.accessor.PatternEncodingTermMenuAccessor", "ae2.accessor.PatternEncodingTermMenuAccessor",
"ae2.accessor.PatternProviderLogicAccessor", "ae2.accessor.PatternProviderLogicAccessor",
@ -46,6 +45,7 @@
"accessor.ScreenAccessor", "accessor.ScreenAccessor",
"advancedae.client.gui.AdvPatternProviderScreenMixin", "advancedae.client.gui.AdvPatternProviderScreenMixin",
"advancedae.client.gui.SmallAdvPatternProviderScreenMixin", "advancedae.client.gui.SmallAdvPatternProviderScreenMixin",
"ae2.QuartzCuttingKnifeItemMixin",
"ae2.accessor.AEBaseScreenAccessor", "ae2.accessor.AEBaseScreenAccessor",
"ae2.accessor.AEBaseScreenInvoker", "ae2.accessor.AEBaseScreenInvoker",
"ae2.accessor.MEStorageScreenAccessor", "ae2.accessor.MEStorageScreenAccessor",