9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-26 18:39:20 +00:00

fix(client): 修复断开链接处理问题

This commit is contained in:
jhqwqmc
2025-03-25 05:34:22 +08:00
parent 322cf1474d
commit f7f45e3d7d

View File

@@ -7,10 +7,12 @@ import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.block.Block;
import net.minecraft.client.color.world.BiomeColors;
import net.minecraft.client.gui.screen.DisconnectedScreen;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.network.DisconnectionInfo;
import net.minecraft.registry.Registries;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
@@ -19,7 +21,11 @@ import net.minecraft.world.biome.FoliageColors;
import net.momirealms.craftengine.fabric.client.config.ModConfig;
import net.momirealms.craftengine.fabric.client.network.CraftEnginePayload;
import java.net.URI;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.Optional;
public class CraftEngineFabricModClient implements ClientModInitializer {
public static final String MOD_ID = "craftengine";
@@ -47,11 +53,21 @@ public class CraftEngineFabricModClient implements ClientModInitializer {
if (decoded.startsWith("cp:")) {
int blockRegistrySize = Integer.parseInt(decoded.substring(3));
if (Block.STATE_IDS.size() != blockRegistrySize) {
client.disconnect(new DisconnectedScreen(
client.currentScreen,
Text.translatable("disconnect.craftengine.title"),
Text.translatable("disconnect.craftengine.block_registry_mismatch", Block.STATE_IDS.size(), blockRegistrySize))
);
if (client.player != null) {
client.player.networkHandler.getConnection().disconnect(
new DisconnectionInfo(
Text.translatable("disconnect.craftengine.block_registry_mismatch", Block.STATE_IDS.size(), blockRegistrySize),
Optional.of(FabricLoader.getInstance().getConfigDir().resolve("craft-engine-fabric-mod/mappings.yml")),
Optional.of(URI.create("https://github.com/Xiao-MoMi/craft-engine"))
)
);
} else {
client.disconnect(new DisconnectedScreen(
client.currentScreen,
Text.translatable("disconnect.craftengine.title"),
Text.translatable("disconnect.craftengine.block_registry_mismatch", Block.STATE_IDS.size(), blockRegistrySize))
);
}
}
}
});