From 096c707a25c0157a97465e8ef1f5cb0ad8351a2f Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Tue, 15 Jun 2021 12:48:45 -0400 Subject: [PATCH] Don't look up git properties for news handler in development --- .../geysermc/connector/GeyserConnector.java | 38 +++++++++++++------ .../command/defaults/VersionCommand.java | 4 +- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/GeyserConnector.java b/connector/src/main/java/org/geysermc/connector/GeyserConnector.java index 4de9768f7..4b94af433 100644 --- a/connector/src/main/java/org/geysermc/connector/GeyserConnector.java +++ b/connector/src/main/java/org/geysermc/connector/GeyserConnector.java @@ -228,16 +228,20 @@ public class GeyserConnector { String branch = "unknown"; int buildNumber = -1; - try { - Properties gitProperties = new Properties(); - gitProperties.load(FileUtils.getResource("git.properties")); - branch = gitProperties.getProperty("git.branch"); - String build = gitProperties.getProperty("git.build.number"); - if (build != null) { - buildNumber = Integer.parseInt(build); + if (this.isProductionEnvironment()) { + try { + Properties gitProperties = new Properties(); + gitProperties.load(FileUtils.getResource("git.properties")); + branch = gitProperties.getProperty("git.branch"); + String build = gitProperties.getProperty("git.build.number"); + if (build != null) { + buildNumber = Integer.parseInt(build); + } + } catch (Throwable e) { + logger.error("Failed to read git.properties", e); } - } catch (Throwable e) { - logger.error("Failed to read git.properties", e); + } else { + logger.debug("Not getting git properties for the news handler as we are in a development environment."); } newsHandler = new NewsHandler(branch, buildNumber); @@ -526,17 +530,27 @@ public class GeyserConnector { return timeSyncer; } + /** + * Returns false if this Geyser instance is running in an IDE. This only needs to be used in cases where files + * expected to be in a jarfile are not present. + * + * @return true if the version number is not 'DEV'. + */ + public boolean isProductionEnvironment() { + //noinspection ConstantConditions - changes in production + return !"DEV".equals(GeyserConnector.VERSION); + } + /** * Whether to use XML reflections in the jar or manually find the reflections. - * Will return true if the version number is not 'DEV' and the platform is not Fabric. + * Will return true and the platform is not Fabric. * On Fabric - it complains about being unable to create a default XMLReader. * On other platforms this should only be true in compiled jars. * * @return whether to use XML reflections */ public boolean useXmlReflections() { - //noinspection ConstantConditions - return !this.getPlatformType().equals(PlatformType.FABRIC) && !"DEV".equals(GeyserConnector.VERSION); + return !this.getPlatformType().equals(PlatformType.FABRIC) && isProductionEnvironment(); } public static GeyserConnector getInstance() { diff --git a/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java b/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java index 21a891c0e..48026e84e 100644 --- a/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java +++ b/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java @@ -25,7 +25,6 @@ package org.geysermc.connector.command.defaults; -import com.github.steveice10.mc.protocol.MinecraftConstants; import com.nukkitx.protocol.bedrock.BedrockPacketCodec; import org.geysermc.common.PlatformType; import org.geysermc.connector.GeyserConnector; @@ -67,8 +66,7 @@ public class VersionCommand extends GeyserCommand { sender.sendMessage(LanguageUtils.getPlayerLocaleString("geyser.commands.version.version", sender.getLocale(), GeyserConnector.NAME, GeyserConnector.VERSION, GeyserConnector.MINECRAFT_VERSION, bedrockVersions)); // Disable update checking in dev mode and for players in Geyser Standalone - //noinspection ConstantConditions - changes in production - if (!GeyserConnector.VERSION.equals("DEV") && !(!sender.isConsole() && connector.getPlatformType() == PlatformType.STANDALONE)) { + if (GeyserConnector.getInstance().isProductionEnvironment() && !(!sender.isConsole() && connector.getPlatformType() == PlatformType.STANDALONE)) { sender.sendMessage(LanguageUtils.getPlayerLocaleString("geyser.commands.version.checking", sender.getLocale())); try { Properties gitProp = new Properties();