From d766febb11f0300efb49164c9129074e667226df Mon Sep 17 00:00:00 2001 From: mlus <1319237806@qq.com> Date: Fri, 6 Jun 2025 12:59:52 +0800 Subject: [PATCH] Fix error when no player in server --- gradle.properties | 2 +- .../vip/fubuki/playersync/CommandInit.java | 28 +++++++++++++++++++ .../playersync/sync/chat/ChatSyncClient.java | 6 ++-- 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 src/main/java/vip/fubuki/playersync/CommandInit.java diff --git a/gradle.properties b/gradle.properties index 2ea4430..d17616c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -34,7 +34,7 @@ mod_name=PlayerSync # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=GPL-3.0 license # The mod version. See https://semver.org/ -mod_version=2.1.2 +mod_version=2.1.3 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/vip/fubuki/playersync/CommandInit.java b/src/main/java/vip/fubuki/playersync/CommandInit.java new file mode 100644 index 0000000..358513a --- /dev/null +++ b/src/main/java/vip/fubuki/playersync/CommandInit.java @@ -0,0 +1,28 @@ +package vip.fubuki.playersync; + +import com.mojang.brigadier.CommandDispatcher; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraftforge.event.RegisterCommandsEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import vip.fubuki.playersync.sync.chat.ChatSyncClient; + +@Mod.EventBusSubscriber() +public class CommandInit { + + @SubscribeEvent + public static void registerCommand(RegisterCommandsEvent event){ + CommandDispatcher dispatcher=event.getDispatcher(); + dispatcher.register(Commands.literal("playersync") + .requires(cs->cs.hasPermission(2)) + .then(Commands.literal("reconnect") + .executes(context -> { + new ChatSyncClient().run(); +// context.getSource().sendSuccess(()->MutableComponent.create(new TranslatableContents("playersync.command.reconnect")),true); + return 0; + } + )) + ); + } +} diff --git a/src/main/java/vip/fubuki/playersync/sync/chat/ChatSyncClient.java b/src/main/java/vip/fubuki/playersync/sync/chat/ChatSyncClient.java index 535e86e..32f1c61 100644 --- a/src/main/java/vip/fubuki/playersync/sync/chat/ChatSyncClient.java +++ b/src/main/java/vip/fubuki/playersync/sync/chat/ChatSyncClient.java @@ -32,7 +32,9 @@ public class ChatSyncClient { while ((serverMessage = in.readLine()) != null) { PlayerSync.LOGGER.info("Received message from chat server: " + serverMessage); Component textComponents = Component.nullToEmpty(serverMessage); - playerList.broadcastSystemMessage(textComponents,false); + if(playerList!=null){ + playerList.broadcastSystemMessage(textComponents,false); + } } } catch (IOException e) { e.printStackTrace(); @@ -40,7 +42,7 @@ public class ChatSyncClient { } } - private static void reconnectClient() { + private void reconnectClient() { ChatSync.LOGGER.warn("TODO: implement reconnectClient()"); //TODO }