From 841109177468b8cfec9a73b5aa0e3f2bab3e38a3 Mon Sep 17 00:00:00 2001 From: Troy Frew Date: Wed, 29 Jun 2016 13:56:57 -0500 Subject: [PATCH] Configurable server version in ping response diff --git a/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java b/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java index edbae4ea..749059ab 100644 --- a/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java +++ b/api/src/main/java/net/md_5/bungee/api/ProxyConfig.java @@ -214,6 +214,13 @@ public interface ProxyConfig // Waterfall Options // + /** + * The supported versions + * + * @return the supported versions + */ + String getGameVersion(); + // Throttling options /** diff --git a/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java b/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java index 91743f01..111404fb 100644 --- a/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java +++ b/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java @@ -1,12 +1,20 @@ package io.github.waterfallmc.waterfall.conf; +import com.google.common.base.Joiner; import net.md_5.bungee.conf.Configuration; import net.md_5.bungee.conf.YamlConfig; +import net.md_5.bungee.protocol.ProtocolConstants; import java.io.File; public class WaterfallConfiguration extends Configuration { + /** + * The supported versions displayed to the client + *

Default is a comma separated list of supported versions. For example 1.8.x, 1.9.x, 1.10.x

+ */ + private String gameVersion; + /* * Throttling options * Helps prevent players from overloading the servers behind us @@ -26,11 +34,17 @@ public class WaterfallConfiguration extends Configuration { super.load(); YamlConfig config = new YamlConfig(new File("waterfall.yml")); config.load(false); // Load, but no permissions + gameVersion = config.getString("game_version", "").isEmpty() ? Joiner.on(", ").join(ProtocolConstants.SUPPORTED_VERSIONS) : config.getString("game_version", ""); // Throttling options tabThrottle = config.getInt("throttling.tab_complete", tabThrottle); disableModernTabLimiter = config.getBoolean("disable_modern_tab_limiter", disableModernTabLimiter); } + @Override + public String getGameVersion() { + return gameVersion; + } + @Override public int getTabThrottle() { return tabThrottle; diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java index 5a3acccf..7e2688ee 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java @@ -721,7 +721,7 @@ public class BungeeCord extends ProxyServer @Override public String getGameVersion() { - return ProtocolConstants.SUPPORTED_VERSIONS.get( 0 ) + "-" + ProtocolConstants.SUPPORTED_VERSIONS.get( ProtocolConstants.SUPPORTED_VERSIONS.size() - 1 ); + return getConfig().getGameVersion(); // Waterfall } @Override -- 2.44.0