From 79ce0a146d2ac62045db1e59961d1eb885f81261 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:31:40 -0500 Subject: [PATCH] Update for latest Geyser changes --- .../org/geysermc/connect/MasterServer.java | 30 +++++++++++++++++-- .../connect/proxy/GeyserProxyBootstrap.java | 3 ++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/geysermc/connect/MasterServer.java b/src/main/java/org/geysermc/connect/MasterServer.java index 9034134..45db46a 100644 --- a/src/main/java/org/geysermc/connect/MasterServer.java +++ b/src/main/java/org/geysermc/connect/MasterServer.java @@ -42,11 +42,14 @@ import org.geysermc.geyser.network.MinecraftProtocol; import org.geysermc.geyser.util.FileUtils; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.net.InetSocketAddress; import java.util.*; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.function.Function; import java.util.stream.Collectors; public class MasterServer { @@ -86,7 +89,7 @@ public class MasterServer { logger = new Logger(); try { - File configFile = FileUtils.fileOrCopiedFromResource(new File("config.yml"), "config.yml", (x) -> x); + File configFile = fileOrCopiedFromResource(new File("config.yml"), "config.yml", (x) -> x); this.geyserConnectConfig = FileUtils.loadConfig(configFile, GeyserConnectConfig.class); } catch (IOException ex) { logger.severe("Failed to read/create config.yml! Make sure it's up to date and/or readable+writable!", ex); @@ -120,7 +123,7 @@ public class MasterServer { // Create the base welcome.txt file try { - FileUtils.fileOrCopiedFromResource(new File(getGeyserConnectConfig().getWelcomeFile()), "welcome.txt", (x) -> x); + fileOrCopiedFromResource(new File(getGeyserConnectConfig().getWelcomeFile()), "welcome.txt", (x) -> x); } catch (IOException ignored) { } start(geyserConnectConfig.getPort()); @@ -208,4 +211,27 @@ public class MasterServer { public List getServers(ServerCategory serverCategory) { return getGeyserConnectConfig().getServers().stream().filter(server -> server.getCategory() == serverCategory).collect(Collectors.toList()); } + + private File fileOrCopiedFromResource(File file, String name, Function format) throws IOException { + if (!file.exists()) { + //noinspection ResultOfMethodCallIgnored + file.createNewFile(); + try (FileOutputStream fos = new FileOutputStream(file)) { + try (InputStream input = MasterServer.class.getClassLoader().getResourceAsStream(name)) { + byte[] bytes = new byte[input.available()]; + + //noinspection ResultOfMethodCallIgnored + input.read(bytes); + + for(char c : format.apply(new String(bytes)).toCharArray()) { + fos.write(c); + } + + fos.flush(); + } + } + } + + return file; + } } diff --git a/src/main/java/org/geysermc/connect/proxy/GeyserProxyBootstrap.java b/src/main/java/org/geysermc/connect/proxy/GeyserProxyBootstrap.java index 8c82d37..0d02722 100644 --- a/src/main/java/org/geysermc/connect/proxy/GeyserProxyBootstrap.java +++ b/src/main/java/org/geysermc/connect/proxy/GeyserProxyBootstrap.java @@ -37,6 +37,7 @@ import org.geysermc.geyser.configuration.GeyserConfiguration; import org.geysermc.geyser.dump.BootstrapDumpInfo; import org.geysermc.geyser.ping.GeyserLegacyPingPassthrough; import org.geysermc.geyser.ping.IGeyserPingPassthrough; +import org.geysermc.geyser.text.GeyserLocale; import java.io.BufferedReader; import java.io.IOException; @@ -58,6 +59,8 @@ public class GeyserProxyBootstrap implements GeyserBootstrap { @Override public void onEnable() { + GeyserLocale.init(this); + // Setup a logger geyserLogger = new GeyserProxyLogger();