diff --git a/bootstrap/bungeecord/pom.xml b/bootstrap/bungeecord/pom.xml
index 875991fa..565264f0 100644
--- a/bootstrap/bungeecord/pom.xml
+++ b/bootstrap/bungeecord/pom.xml
@@ -6,7 +6,7 @@
org.geysermc
bootstrap-parent
- 1.0-SNAPSHOT
+ 1.0.0
../
bootstrap-bungeecord
@@ -14,7 +14,7 @@
org.geysermc
connector
- 1.0-SNAPSHOT
+ 1.0.0
compile
diff --git a/bootstrap/pom.xml b/bootstrap/pom.xml
index 87302d4d..85ede346 100644
--- a/bootstrap/pom.xml
+++ b/bootstrap/pom.xml
@@ -10,7 +10,7 @@
../
bootstrap-parent
- 1.0-SNAPSHOT
+ 1.0.0
pom
diff --git a/bootstrap/spigot/pom.xml b/bootstrap/spigot/pom.xml
index 6439eb23..e05ad7f0 100644
--- a/bootstrap/spigot/pom.xml
+++ b/bootstrap/spigot/pom.xml
@@ -6,7 +6,7 @@
org.geysermc
bootstrap-parent
- 1.0-SNAPSHOT
+ 1.0.0
../
bootstrap-spigot
@@ -14,7 +14,7 @@
org.geysermc
connector
- 1.0-SNAPSHOT
+ 1.0.0
compile
diff --git a/bootstrap/sponge/pom.xml b/bootstrap/sponge/pom.xml
index 4a995711..cca3fcaa 100644
--- a/bootstrap/sponge/pom.xml
+++ b/bootstrap/sponge/pom.xml
@@ -6,7 +6,7 @@
org.geysermc
bootstrap-parent
- 1.0-SNAPSHOT
+ 1.0.0
../
bootstrap-sponge
@@ -14,7 +14,7 @@
org.geysermc
connector
- 1.0-SNAPSHOT
+ 1.0.0
compile
diff --git a/bootstrap/standalone/pom.xml b/bootstrap/standalone/pom.xml
index 60b0ba81..468042b8 100644
--- a/bootstrap/standalone/pom.xml
+++ b/bootstrap/standalone/pom.xml
@@ -6,7 +6,7 @@
org.geysermc
bootstrap-parent
- 1.0-SNAPSHOT
+ 1.0.0
../
bootstrap-standalone
@@ -14,7 +14,7 @@
org.geysermc
connector
- 1.0-SNAPSHOT
+ 1.0.0
compile
diff --git a/bootstrap/velocity/pom.xml b/bootstrap/velocity/pom.xml
index 78f21973..7c42ba33 100644
--- a/bootstrap/velocity/pom.xml
+++ b/bootstrap/velocity/pom.xml
@@ -6,7 +6,7 @@
org.geysermc
bootstrap-parent
- 1.0-SNAPSHOT
+ 1.0.0
../
bootstrap-velocity
@@ -14,7 +14,7 @@
org.geysermc
connector
- 1.0-SNAPSHOT
+ 1.0.0
compile
diff --git a/common/pom.xml b/common/pom.xml
index 0a47fbca..0df8ef4b 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -10,7 +10,7 @@
../
common
- 1.0-SNAPSHOT
+ 1.0.0
com.google.code.gson
diff --git a/connector/pom.xml b/connector/pom.xml
index 70ad0e26..b2bc1526 100644
--- a/connector/pom.xml
+++ b/connector/pom.xml
@@ -10,12 +10,12 @@
../
connector
- 1.0-SNAPSHOT
+ 1.0.0
org.geysermc
common
- 1.0-SNAPSHOT
+ 1.0.0
compile
diff --git a/connector/src/main/java/org/geysermc/connector/command/CommandManager.java b/connector/src/main/java/org/geysermc/connector/command/CommandManager.java
index eb75a2df..afa75503 100644
--- a/connector/src/main/java/org/geysermc/connector/command/CommandManager.java
+++ b/connector/src/main/java/org/geysermc/connector/command/CommandManager.java
@@ -51,6 +51,7 @@ public abstract class CommandManager {
registerCommand(new StopCommand(connector, "stop", LanguageUtils.getLocaleStringLog("geyser.commands.stop.desc"), "geyser.command.stop"));
registerCommand(new OffhandCommand(connector, "offhand", LanguageUtils.getLocaleStringLog("geyser.commands.offhand.desc"), "geyser.command.offhand"));
registerCommand(new DumpCommand(connector, "dump", LanguageUtils.getLocaleStringLog("geyser.commands.dump.desc"), "geyser.command.dump"));
+ registerCommand(new VersionCommand(connector, "version", LanguageUtils.getLocaleStringLog("geyser.commands.version.desc"), "geyser.command.version"));
}
public void registerCommand(GeyserCommand command) {
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
new file mode 100644
index 00000000..e29e164b
--- /dev/null
+++ b/connector/src/main/java/org/geysermc/connector/command/defaults/VersionCommand.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2019-2020 GeyserMC. http://geysermc.org
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * @author GeyserMC
+ * @link https://github.com/GeyserMC/Geyser
+ */
+
+package org.geysermc.connector.command.defaults;
+
+import com.github.steveice10.mc.protocol.MinecraftConstants;
+import org.geysermc.connector.GeyserConnector;
+import org.geysermc.connector.command.CommandSender;
+import org.geysermc.connector.command.GeyserCommand;
+import org.geysermc.connector.utils.FileUtils;
+import org.geysermc.connector.utils.LanguageUtils;
+import org.geysermc.connector.utils.WebUtils;
+
+import java.util.Properties;
+
+public class VersionCommand extends GeyserCommand {
+
+ public GeyserConnector connector;
+
+ public VersionCommand(GeyserConnector connector, String name, String description, String permission) {
+ super(name, description, permission);
+ this.connector = connector;
+ }
+
+ @Override
+ public void execute(CommandSender sender, String[] args) {
+ sender.sendMessage(LanguageUtils.getLocaleStringLog("geyser.commands.version.version", GeyserConnector.NAME, GeyserConnector.VERSION, MinecraftConstants.GAME_VERSION, GeyserConnector.BEDROCK_PACKET_CODEC.getMinecraftVersion()));
+
+ // Disable update checking in dev mode
+ //noinspection ConstantConditions - changes in production
+ if (!GeyserConnector.VERSION.equals("DEV")) {
+ sender.sendMessage(LanguageUtils.getLocaleStringLog("geyser.commands.version.checking"));
+ try {
+ Properties gitProp = new Properties();
+ gitProp.load(FileUtils.getResource("git.properties"));
+
+ String buildXML = WebUtils.getBody("https://ci.nukkitx.com/job/GeyserMC/job/Geyser/job/" + gitProp.getProperty("git.branch") + "/lastSuccessfulBuild/api/xml?xpath=//master/buildNumber");
+ if (buildXML.startsWith("")) {
+ int latestBuildNum = Integer.parseInt(buildXML.replaceAll("<(\\\\)?buildNumber>", ""));
+ int buildNum = Integer.parseInt(gitProp.getProperty("git.build.number"));
+ if (latestBuildNum != buildNum) {
+ sender.sendMessage(LanguageUtils.getLocaleStringLog("geyser.commands.version.no_updates"));
+ } else {
+ sender.sendMessage(LanguageUtils.getLocaleStringLog("geyser.commands.version.outdated", (latestBuildNum - buildNum), "http://ci.geysermc.org/"));
+ }
+ } else {
+ throw new AssertionError();
+ }
+ } catch (Exception e) {
+ sender.sendMessage("Failed to check for updates");
+ }
+ }
+ }
+}
diff --git a/connector/src/main/resources/languages b/connector/src/main/resources/languages
index 08be7fdd..c199011b 160000
--- a/connector/src/main/resources/languages
+++ b/connector/src/main/resources/languages
@@ -1 +1 @@
-Subproject commit 08be7fdd7bd3c1ade46fa8968c04d3d67bb0d378
+Subproject commit c199011b6c131b195e94d4785abbc3dd73ca19cd