From 1f77d10eed04158062d90c4fa10093afac906614 Mon Sep 17 00:00:00 2001 From: RaidMax Date: Sat, 8 Apr 2023 12:00:28 -0500 Subject: [PATCH] fix extra IP lookups in server banner plugin --- Plugins/ScriptPlugins/ServerBanner.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Plugins/ScriptPlugins/ServerBanner.js b/Plugins/ScriptPlugins/ServerBanner.js index 1be7a41a5..efec72a49 100644 --- a/Plugins/ScriptPlugins/ServerBanner.js +++ b/Plugins/ScriptPlugins/ServerBanner.js @@ -29,21 +29,29 @@ const plugin = { }, onServerMonitoringStart: function (startEvent) { + let lookupComplete = true; if (serverLocationCache[startEvent.server.listenAddress] === undefined) { - serverLocationCache[startEvent.server.listenAddress] = 'UA'; + serverLocationCache[startEvent.server.listenAddress] = 'SO'; + lookupComplete = false; } if (serverOrderCache[startEvent.server.gameCode] === undefined) { serverOrderCache[startEvent.server.gameCode] = []; } - const lookupIp = startEvent.server.resolvedIpEndPoint.address.isInternal() ? - this.manager.externalIPAddress : - startEvent.server.listenAddress; - serverOrderCache[startEvent.server.gameCode].push(startEvent.server); serverOrderCache[startEvent.server.gameCode].sort((a, b) => b.clientNum - a.clientNum); + if (lookupComplete) { + return; + } + + const lookupIp = startEvent.server.resolvedIpEndPoint.address.isInternal() ? + this.manager.externalIPAddress : + startEvent.server.resolvedIpEndPoint.toString().split(':')[0]; + + this.logger.logInformation('Looking up server location for IP {IP}', lookupIp); + this.scriptHelper.getUrl(`https://ipinfo.io/${lookupIp}/country`, (result) => { let error = true; @@ -143,7 +151,7 @@ const plugin = { const displayIp = server.resolvedIpEndPoint.address.isInternal() ? plugin.manager.externalIPAddress : - server.listenAddress; + server.resolvedIpEndPoint.toString().split(':')[0]; return `