Make showing the connect address a config option

This commit is contained in:
Cooldude2606 committed 2026-07-11 23:04:42 +01:00
1 parent fdfd77df9a
commit eab1a42e07
4 files changed
+19 -7

No files matched your search

+2 -1
View File
@@ -66,10 +66,11 @@ export class ControllerPlugin extends BaseControllerPlugin {
: host.publicAddress;
const settings = instance.config.get("factorio.settings");
const includeAddress = this.controller.config.get("player_auth.show_connect_address");
servers.push({
name: settings["name"] as string || "unnamed server",
factorioVersion: instance.factorioVersion,
address,
address: includeAddress ? address : undefined,
});
}
+7
View File
@@ -8,6 +8,7 @@ declare module "@clusterio/lib" {
export interface ControllerConfigFields {
"player_auth.code_length": number;
"player_auth.code_timeout": number;
"player_auth.show_connect_address": boolean;
}
}
@@ -31,6 +32,12 @@ export const plugin: lib.PluginDeclaration = {
type: "number",
initialValue: 120,
},
"player_auth.show_connect_address": {
title: "Show Connect Address",
description: "Show server connect addresses to unauthenticated users.",
type: "boolean",
initialValue: false,
},
},
features: [
+9 -5
View File
@@ -5,21 +5,25 @@ export class PlayerAuthServer {
static jsonSchema = Type.Object({
name: Type.String(),
address: Type.String(),
address: Type.Optional(Type.String()),
factorioVersion: Type.Optional(Type.String()),
});
constructor(
public name: string,
public address: string,
public address?: string,
public factorioVersion?: string,
) {}
toJSON(): Static<typeof PlayerAuthServer.jsonSchema> {
if (this.factorioVersion === undefined) {
return { name: this.name, address: this.address };
const json = { name: this.name } as Static<typeof PlayerAuthServer.jsonSchema>;
if (this.address !== undefined) {
json.address = this.address;
}
return { name: this.name, address: this.address, factorioVersion: this.factorioVersion };
if (this.factorioVersion !== undefined) {
json.factorioVersion = this.address;
}
return json;
}
static fromJSON(json: Static<typeof PlayerAuthServer.jsonSchema>) {
+1 -1
View File
@@ -26,7 +26,7 @@ describe("player_auth", function() {
it("should be round trip json serialisable", function() {
testRoundTripJsonSerialisable(PlayerAuthServer, testMatrix(
["server1", "server2"], // name
["127.0.0.1", "10.0.0.1:1234"], // address
[undefined, "127.0.0.1", "10.0.0.1:1234"], // address
[undefined, "1.1.0", "2.0.0"], // version
));
});