From 017542570804194b8b2e857e0dec4b5ec1d478e1 Mon Sep 17 00:00:00 2001 From: RaidMax Date: Wed, 20 Apr 2022 10:45:30 -0500 Subject: [PATCH] fix subnet ban and vpn detection persistence --- Plugins/ScriptPlugins/SubnetBan.js | 9 +++++---- Plugins/ScriptPlugins/VPNDetection.js | 13 +++++++------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Plugins/ScriptPlugins/SubnetBan.js b/Plugins/ScriptPlugins/SubnetBan.js index 78b79c0cb..84bbce88e 100644 --- a/Plugins/ScriptPlugins/SubnetBan.js +++ b/Plugins/ScriptPlugins/SubnetBan.js @@ -1,5 +1,6 @@ const cidrRegex = /^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$/; const validCIDR = input => cidrRegex.test(input); +let subnetList = []; const commands = [{ name: "bansubnet", @@ -20,8 +21,8 @@ const commands = [{ return; } - plugin.subnetList.push(input); - _configHandler.SetValue('SubnetBanList', plugin.subnetList); + subnetList.push(input); + _configHandler.SetValue('SubnetBanList', subnetList); gameEvent.Origin.Tell(`Added ${input} to subnet banlist`); } @@ -73,7 +74,7 @@ const plugin = { onEventAsync: (gameEvent, server) => { if (gameEvent.TypeName === 'Join') { - if (!isSubnetBanned(gameEvent.Origin.IPAddressString, this.subnetList, this.logger)) { + if (!isSubnetBanned(gameEvent.Origin.IPAddressString, subnetList, this.logger)) { return; } @@ -91,7 +92,7 @@ const plugin = { if (list !== undefined) { list.forEach(element => { const ban = String(element); - this.subnetList.push(ban) + subnetList.push(ban) }); this.logger.WriteInfo(`Loaded ${list.length} banned subnets`); } else { diff --git a/Plugins/ScriptPlugins/VPNDetection.js b/Plugins/ScriptPlugins/VPNDetection.js index 993f40c2a..2a47683a8 100644 --- a/Plugins/ScriptPlugins/VPNDetection.js +++ b/Plugins/ScriptPlugins/VPNDetection.js @@ -1,3 +1,4 @@ +let vpnExceptionIds = []; const commands = [{ name: "whitelistvpn", description: "whitelists a player's client id from VPN detection", @@ -9,8 +10,8 @@ const commands = [{ required: true }], execute: (gameEvent) => { - plugin.vpnExceptionIds.push(gameEvent.Target.ClientId); - plugin.configHandler.SetValue('vpnExceptionIds', plugin.vpnExceptionIds); + vpnExceptionIds.push(gameEvent.Target.ClientId); + plugin.configHandler.SetValue('vpnExceptionIds', vpnExceptionIds); gameEvent.Origin.Tell(`Successfully whitelisted ${gameEvent.Target.Name}`); } @@ -22,12 +23,12 @@ const plugin = { name: 'VPN Detection Plugin', manager: null, logger: null, - vpnExceptionIds: [], + checkForVpn: function (origin) { let exempt = false; // prevent players that are exempt from being kicked - this.vpnExceptionIds.forEach(function (id) { + vpnExceptionIds.forEach(function (id) { if (id === origin.ClientId) { exempt = true; return false; @@ -79,8 +80,8 @@ const plugin = { this.logger = manager.GetLogger(0); this.configHandler = _configHandler; - this.configHandler.GetValue('vpnExceptionIds').forEach(element => this.vpnExceptionIds.push(element)); - this.logger.WriteInfo(`Loaded ${this.vpnExceptionIds.length} ids into whitelist`); + this.configHandler.GetValue('vpnExceptionIds').forEach(element => vpnExceptionIds.push(element)); + this.logger.WriteInfo(`Loaded ${vpnExceptionIds.length} ids into whitelist`); }, onUnloadAsync: function () {