Files
Bastiaan 4a2c164188 Merge pull request #1183 from bbassie/fix/save-patching-plugin-default
Default load_plugin to off when the instance lacks required features
2026-11-04 01:19:10 +00:00

71 lines
1.9 KiB
TypeScript

import * as lib from "@clusterio/lib";
import * as messages from "./messages.js";
declare module "@clusterio/lib" {
export interface ControllerConfigFields {
"subspace_storage.division_method": "simple" | "dole" | "neural_dole";
"subspace_storage.log_item_transfers": boolean;
}
export interface InstanceConfigFields {
"subspace_storage.log_item_transfers": boolean;
}
export interface Permissions {
"subspace_storage.storage.view": never;
}
}
export const plugin: lib.PluginDeclaration = {
name: "subspace_storage",
title: "Subspace Storage",
description: "Provides shared storage across instances for the Subspace Storage mod",
instanceEntrypoint: "dist/node/instance.js",
instanceConfigFields: {
"subspace_storage.log_item_transfers": {
title: "Log Item Transfers",
description: "Spam host console with item transfers done.",
type: "boolean",
initialValue: false,
},
},
controllerEntrypoint: "dist/node/controller.js",
controllerConfigFields: {
"subspace_storage.division_method": {
title: "Division Method",
description: "Method for dividing resource requests between instances.",
type: "string",
enum: ["simple", "dole", "neural_dole"],
initialValue: "simple",
},
"subspace_storage.log_item_transfers": {
title: "Log Item Transfers",
description: "Spam controller console with item transfers done.",
type: "boolean",
initialValue: false,
},
},
features: [
"SavePatching",
"ScriptCommands",
],
messages: [
messages.PlaceEvent,
messages.RemoveRequest,
messages.GetStorageRequest,
messages.UpdateStorageEvent,
messages.SetStorageSubscriptionRequest,
],
permissions: [
{
name: "subspace_storage.storage.view",
title: "View Subspace Storage",
description: "View the items and fluids stored in the shared subspace.",
grantByDefault: true,
},
],
webEntrypoint: "./web",
routes: ["/storage"],
};