From 1209beb47d842a1bbafd2980fc05b7a760644ba6 Mon Sep 17 00:00:00 2001 From: Myles Date: Mon, 14 Nov 2016 12:38:39 +0000 Subject: [PATCH] Allow servers to manually be probed with API --- .../ViaVersion/bungee/platform/BungeeViaAPI.java | 11 +++++++++++ .../bungee/service/ProtocolDetectorService.java | 7 ++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaAPI.java b/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaAPI.java index 51b7a9c3e..df6951bf5 100644 --- a/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaAPI.java +++ b/bungee/src/main/java/us/myles/ViaVersion/bungee/platform/BungeeViaAPI.java @@ -2,6 +2,7 @@ package us.myles.ViaVersion.bungee.platform; import io.netty.buffer.ByteBuf; import lombok.NonNull; +import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.ViaAPI; @@ -10,6 +11,7 @@ import us.myles.ViaVersion.api.boss.BossColor; import us.myles.ViaVersion.api.boss.BossStyle; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.protocol.ProtocolRegistry; +import us.myles.ViaVersion.bungee.service.ProtocolDetectorService; import us.myles.ViaVersion.protocols.base.ProtocolInfo; import java.util.Map; @@ -75,4 +77,13 @@ public class BungeeViaAPI implements ViaAPI { public Map getPortedPlayers() { return Via.getManager().getPortedPlayers(); } + + /** + * Forces ViaVersion to probe a server + * + * @param serverInfo The serverinfo to probe + */ + public void probeServer(ServerInfo serverInfo) { + ProtocolDetectorService.probeServer(serverInfo); + } } diff --git a/bungee/src/main/java/us/myles/ViaVersion/bungee/service/ProtocolDetectorService.java b/bungee/src/main/java/us/myles/ViaVersion/bungee/service/ProtocolDetectorService.java index 5de23dd7e..1a1f77d1e 100644 --- a/bungee/src/main/java/us/myles/ViaVersion/bungee/service/ProtocolDetectorService.java +++ b/bungee/src/main/java/us/myles/ViaVersion/bungee/service/ProtocolDetectorService.java @@ -45,12 +45,13 @@ public class ProtocolDetectorService implements Runnable { @Override public void run() { for (final Map.Entry lists : plugin.getProxy().getServers().entrySet()) { - updateProtocolInfo(lists.getKey(), lists.getValue()); + probeServer(lists.getValue()); } } - private void updateProtocolInfo(final String key, ServerInfo value) { - value.ping(new Callback() { + public static void probeServer(final ServerInfo serverInfo) { + final String key = serverInfo.getName(); + serverInfo.ping(new Callback() { @Override public void done(ServerPing serverPing, Throwable throwable) { if (throwable == null) {