Merge pull request #55 from EoD/fix-chat-config-being-ignored

fix chat sync always being enabled
This commit is contained in:
mlus 2025-05-03 11:15:59 +08:00 committed by GitHub
commit 19559bf9e2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 4 deletions

View File

@ -35,9 +35,14 @@ public class PlayerSync {
private void commonSetup(final FMLCommonSetupEvent event) { private void commonSetup(final FMLCommonSetupEvent event) {
VanillaSync.register(); VanillaSync.register();
if (JdbcConfig.SYNC_CHAT.get()) { event.enqueueWork(() -> {
ChatSync.register(); // read SYNC_CHAT only within the enqueueWork to reliably get the real
} // config value and not its default value.
if (JdbcConfig.SYNC_CHAT.get()) {
LOGGER.info("Chat sync enabled.");
ChatSync.register();
}
});
} }
@SubscribeEvent @SubscribeEvent

View File

@ -18,7 +18,12 @@ import java.util.Set;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import org.slf4j.Logger;
import com.mojang.logging.LogUtils;
public class ChatSync { public class ChatSync {
private static final Logger LOGGER = LogUtils.getLogger();
static PlayerList playerList; static PlayerList playerList;
@ -28,8 +33,10 @@ public class ChatSync {
static ExecutorService executorService = Executors.newCachedThreadPool(); static ExecutorService executorService = Executors.newCachedThreadPool();
public static void register(){ public static void register(){
if(JdbcConfig.IS_CHAT_SERVER.get()) if(JdbcConfig.IS_CHAT_SERVER.get()) {
LOGGER.info("Launching chat server thread.");
new Thread(ChatSync::ServerSocket).start(); new Thread(ChatSync::ServerSocket).start();
}
ClientSocket(); ClientSocket();
MinecraftForge.EVENT_BUS.register(ChatSync.class); MinecraftForge.EVENT_BUS.register(ChatSync.class);
} }
@ -37,6 +44,7 @@ public class ChatSync {
private static void ServerSocket() { private static void ServerSocket() {
try { try {
LOGGER.info("Trying to setup chat server at port " + JdbcConfig.CHAT_SERVER_PORT.get());
serverSocket = new ServerSocket(JdbcConfig.CHAT_SERVER_PORT.get()); serverSocket = new ServerSocket(JdbcConfig.CHAT_SERVER_PORT.get());
while (true) { while (true) {
Socket newSocket = serverSocket.accept(); Socket newSocket = serverSocket.accept();
@ -44,6 +52,7 @@ public class ChatSync {
executorService.submit(() -> handleClient(newSocket)); executorService.submit(() -> handleClient(newSocket));
} }
} catch (IOException e) { } catch (IOException e) {
LOGGER.error("Unable to start chat server");
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
try { try {
@ -89,6 +98,10 @@ public class ChatSync {
private static void ClientSocket() { private static void ClientSocket() {
try { try {
LOGGER.info("Trying to connect to chat server "
+ JdbcConfig.CHAT_SERVER_IP.get()
+ ":"
+ JdbcConfig.CHAT_SERVER_PORT.get());
clientSocket = new Socket(JdbcConfig.CHAT_SERVER_IP.get(), JdbcConfig.CHAT_SERVER_PORT.get()); clientSocket = new Socket(JdbcConfig.CHAT_SERVER_IP.get(), JdbcConfig.CHAT_SERVER_PORT.get());
Scanner scanner = new Scanner(clientSocket.getInputStream()); Scanner scanner = new Scanner(clientSocket.getInputStream());
while (scanner.hasNextLine()) { while (scanner.hasNextLine()) {
@ -103,6 +116,7 @@ public class ChatSync {
} }
private static void reconnectClient() { private static void reconnectClient() {
LOGGER.warn("TODO: implement reconnectClient()");
//TODO //TODO
} }