From 622d3727763135fc83f7f7079cb26b0c1c629efc Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:44:30 +0000 Subject: [PATCH] Add feature flags to first party plugins --- plugins/global_chat/index.ts | 4 ++++ plugins/global_chat/instance.ts | 4 ---- plugins/inventory_sync/index.ts | 5 +++++ plugins/inventory_sync/instance.ts | 6 ------ plugins/player_auth/index.ts | 4 ++++ plugins/player_auth/instance.ts | 4 ---- plugins/research_sync/index.ts | 5 +++++ plugins/research_sync/instance.ts | 7 ------- plugins/statistics_exporter/index.ts | 5 +++++ plugins/statistics_exporter/instance.ts | 9 --------- plugins/subspace_storage/index.ts | 4 ++++ plugins/subspace_storage/instance.ts | 4 ---- 12 files changed, 27 insertions(+), 34 deletions(-) diff --git a/plugins/global_chat/index.ts b/plugins/global_chat/index.ts index 97c0985a..a02d5cfd 100644 --- a/plugins/global_chat/index.ts +++ b/plugins/global_chat/index.ts @@ -9,6 +9,10 @@ export const plugin: lib.PluginDeclaration = { instanceEntrypoint: "dist/node/instance", ctlEntrypoint: "dist/node/control", + features: [ + "ScriptCommands", + ], + messages: [ ChatEvent, ], diff --git a/plugins/global_chat/instance.ts b/plugins/global_chat/instance.ts index 10c0401c..2cfb2c6e 100644 --- a/plugins/global_chat/instance.ts +++ b/plugins/global_chat/instance.ts @@ -16,10 +16,6 @@ export class InstancePlugin extends BaseInstancePlugin { messageQueue: string[] = []; async init() { - if (!this.instance.config.get("factorio.enable_script_commands")) { - throw new Error("global_chat plugin requires script commands."); - } - this.instance.handle(ChatEvent, this.handleChatEvent.bind(this)); } diff --git a/plugins/inventory_sync/index.ts b/plugins/inventory_sync/index.ts index a796ee97..f38ec669 100644 --- a/plugins/inventory_sync/index.ts +++ b/plugins/inventory_sync/index.ts @@ -45,6 +45,11 @@ export const plugin: lib.PluginDeclaration = { }, }, + features: [ + "SavePatching", + "ScriptCommands", + ], + messages: [ messages.AcquireRequest, messages.ReleaseRequest, diff --git a/plugins/inventory_sync/instance.ts b/plugins/inventory_sync/instance.ts index 275d033e..c831e8fd 100644 --- a/plugins/inventory_sync/instance.ts +++ b/plugins/inventory_sync/instance.ts @@ -31,12 +31,6 @@ export class InstancePlugin extends BaseInstancePlugin { disconnecting!: boolean; async init() { - if (!this.instance.config.get("factorio.enable_save_patching")) { - throw new Error("inventory_sync plugin requires save patching."); - } - if (!this.instance.config.get("factorio.enable_script_commands")) { - throw new Error("inventory_sync plugin requires script commands."); - } this.playersToRelease = new Set(); this.disconnecting = false; diff --git a/plugins/player_auth/index.ts b/plugins/player_auth/index.ts index 62e7b109..79fa909d 100644 --- a/plugins/player_auth/index.ts +++ b/plugins/player_auth/index.ts @@ -33,6 +33,10 @@ export const plugin: lib.PluginDeclaration = { }, }, + features: [ + "SavePatching", + ], + messages: [ messages.FetchPlayerCodeRequest, messages.SetVerifyCodeRequest, diff --git a/plugins/player_auth/instance.ts b/plugins/player_auth/instance.ts index c6d90a4c..780dd1a3 100644 --- a/plugins/player_auth/instance.ts +++ b/plugins/player_auth/instance.ts @@ -13,10 +13,6 @@ type IpcPlayerAuth = { export class InstancePlugin extends BaseInstancePlugin { async init() { - if (!this.instance.config.get("factorio.enable_save_patching")) { - throw new Error("player_auth plugin requires save patching."); - } - this.instance.server.on( "ipc-player_auth", (ipcPlayerAuth: IpcPlayerAuth) => this.handleEvent(ipcPlayerAuth).catch( diff --git a/plugins/research_sync/index.ts b/plugins/research_sync/index.ts index 42f162d5..85afabdc 100644 --- a/plugins/research_sync/index.ts +++ b/plugins/research_sync/index.ts @@ -9,6 +9,11 @@ export const plugin: lib.PluginDeclaration = { instanceEntrypoint: "dist/node/instance", controllerEntrypoint: "dist/node/controller", + features: [ + "SavePatching", + "ScriptCommands", + ], + messages: [ messages.ContributionEvent, messages.ProgressEvent, diff --git a/plugins/research_sync/instance.ts b/plugins/research_sync/instance.ts index c905ff34..5ce28907 100644 --- a/plugins/research_sync/instance.ts +++ b/plugins/research_sync/instance.ts @@ -27,13 +27,6 @@ export class InstancePlugin extends BaseInstancePlugin { } async init() { - if (!this.instance.config.get("factorio.enable_save_patching")) { - throw new Error("research_sync plugin requires save patching."); - } - if (!this.instance.config.get("factorio.enable_script_commands")) { - throw new Error("research_sync plugin requires script commands."); - } - this.instance.server.on("ipc-research_sync:contribution", (tech: IpcContribution) => { this.researchContribution(tech).catch(err => this.unexpectedError(err)); }); diff --git a/plugins/statistics_exporter/index.ts b/plugins/statistics_exporter/index.ts index 5de5fc80..6e769973 100644 --- a/plugins/statistics_exporter/index.ts +++ b/plugins/statistics_exporter/index.ts @@ -22,4 +22,9 @@ export const plugin: lib.PluginDeclaration = { initialValue: 1, }, }, + + features: [ + "SavePatching", + "ScriptCommands", + ], }; diff --git a/plugins/statistics_exporter/instance.ts b/plugins/statistics_exporter/instance.ts index 2557089c..c76bf1f0 100644 --- a/plugins/statistics_exporter/instance.ts +++ b/plugins/statistics_exporter/instance.ts @@ -104,15 +104,6 @@ function setForceFlowStatistic( export class InstancePlugin extends BaseInstancePlugin { - async init() { - if (!this.instance.config.get("factorio.enable_save_patching")) { - throw new Error("statistics_exporter plugin requires save patching."); - } - if (!this.instance.config.get("factorio.enable_script_commands")) { - throw new Error("statistics_exporter plugin requires script commands."); - } - } - async gatherMetrics() { let string = await this.sendRcon("/sc statistics_exporter.export()"); let stats: IpcStats; diff --git a/plugins/subspace_storage/index.ts b/plugins/subspace_storage/index.ts index 1909ef29..300c8895 100644 --- a/plugins/subspace_storage/index.ts +++ b/plugins/subspace_storage/index.ts @@ -49,6 +49,10 @@ export const plugin: lib.PluginDeclaration = { }, }, + features: [ + "ScriptCommands", + ], + messages: [ messages.PlaceEvent, messages.RemoveRequest, diff --git a/plugins/subspace_storage/instance.ts b/plugins/subspace_storage/instance.ts index 77cfd818..4de15afb 100644 --- a/plugins/subspace_storage/instance.ts +++ b/plugins/subspace_storage/instance.ts @@ -22,10 +22,6 @@ export class InstancePlugin extends BaseInstancePlugin { } async init() { - if (!this.instance.config.get("factorio.enable_script_commands")) { - throw new Error("subspace_storage plugin requires script commands."); - } - this.pendingTasks = new Set(); this.instance.server.on("ipc-subspace_storage:output", (output: IpcItems) => { this.logger.info("Received output items:");