From ddf15f9b92ad8be48a9df3aa5e2792babe7c5906 Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Wed, 8 Jun 2022 22:43:58 +0200 Subject: [PATCH] Add option to turn on authentication server bans Factorio 1.1.40 added a feature to use a centralized banlist maintained by Wube. For the dedicated server this needs to be turned on with the command line flag --use-authserver-bans. --- packages/lib/config/definitions.js | 6 ++++++ packages/lib/factorio/server.js | 6 ++++++ packages/slave/slave.js | 1 + 3 files changed, 13 insertions(+) diff --git a/packages/lib/config/definitions.js b/packages/lib/config/definitions.js index 608ce496..35e28eb8 100644 --- a/packages/lib/config/definitions.js +++ b/packages/lib/config/definitions.js @@ -277,6 +277,12 @@ FactorioGroup.define({ type: "boolean", initial_value: false, }); +FactorioGroup.define({ + name: "enable_authserver_bans", + description: "Turn on Factorio.com based multiplayer bans.", + type: "boolean", + initial_value: false, +}); FactorioGroup.define({ name: "settings", description: "Settings overridden in server-settings.json", diff --git a/packages/lib/factorio/server.js b/packages/lib/factorio/server.js index cbe6bb39..a199f04e 100644 --- a/packages/lib/factorio/server.js +++ b/packages/lib/factorio/server.js @@ -429,6 +429,8 @@ class FactorioServer extends events.EventEmitter { * @param {number} options.rconPort - TCP port to use for RCON. * @param {string} options.rconPassword - Password use for RCON. * @param {boolean} options.enableWhitelist - Turn on whitelisting. + * @param {boolean} options.enableAuthserverBans - + * Enable Factorio.com based multiplayer bans. * @param {boolean} options.verboseLogging - Enable verbose logging. * @param {boolean} options.stripPaths - Strip paths in the console. * @param {number} options.maxConcurrentCommands - @@ -457,6 +459,8 @@ class FactorioServer extends events.EventEmitter { this.rconPassword = options.rconPassword; /** Enable player whitelist */ this.enableWhitelist = options.enableWhitelist; + /** Enable Factorio.com based multiplayer bans **/ + this.enableAuthserverBans = options.enableAuthserverBans; /** Enable verbose logging */ this.verboseLogging = options.verboseLogging; /** Maximum number of RCON commands transmitted in parallel on the RCON connection */ @@ -828,6 +832,7 @@ class FactorioServer extends events.EventEmitter { "--rcon-port", this.rconPort, "--rcon-password", this.rconPassword, ...(this.enableWhitelist ? ["--use-server-whitelist"] : []), + ...(this.enableAuthserverBans ? ["--use-authserver-bans"] : []), ...(this.verboseLogging ? ["--verbose"] : []), ], { @@ -872,6 +877,7 @@ class FactorioServer extends events.EventEmitter { "--rcon-port", this.rconPort, "--rcon-password", this.rconPassword, ...(this.enableWhitelist ? ["--use-server-whitelist"] : []), + ...(this.enableAuthserverBans ? ["--use-authserver-bans"] : []), ...(this.verboseLogging ? ["--verbose"] : []), ], { diff --git a/packages/slave/slave.js b/packages/slave/slave.js index db3d0281..586152ec 100755 --- a/packages/slave/slave.js +++ b/packages/slave/slave.js @@ -167,6 +167,7 @@ class Instance extends libLink.Link { rconPort: this.config.get("factorio.rcon_port"), rconPassword: this.config.get("factorio.rcon_password"), enableWhitelist: this.config.get("factorio.enable_whitelist"), + enableAuthserverBans: this.config.get("factorio.enable_authserver_bans"), verboseLogging: this.config.get("factorio.verbose_logging"), stripPaths: this.config.get("factorio.strip_paths"), maxConcurrentCommands: this.config.get("factorio.max_concurrent_commands"),