Plugin Setup exp_groups

This commit is contained in:
Cooldude2606
2026-05-20 01:48:26 +01:00
parent 538714acdb
commit b64e109bf1
13 changed files with 133 additions and 4 deletions
+6
View File
@@ -0,0 +1,6 @@
import * as lib from "@clusterio/lib";
import { BaseControllerPlugin } from "@clusterio/controller";
export class ControllerPlugin extends BaseControllerPlugin {
}
+22
View File
@@ -0,0 +1,22 @@
import * as lib from "@clusterio/lib";
declare module "@clusterio/lib" {
export interface InstanceConfigFields {
}
export interface ControllerConfigFields {
}
}
export const plugin: lib.PluginDeclaration = {
name: "exp_groups",
title: "ExpGaming - Permission Groups",
description: "Clusterio plugin providing syncing of permission groups",
instanceEntrypoint: "./dist/node/instance",
instanceConfigFields: {
},
controllerEntrypoint: "./dist/node/controller",
controllerConfigFields: {
},
};
+6
View File
@@ -0,0 +1,6 @@
import * as lib from "@clusterio/lib";
import { BaseInstancePlugin } from "@clusterio/host";
export class InstancePlugin extends BaseInstancePlugin {
}
+11
View File
@@ -0,0 +1,11 @@
{
"name": "exp_groups",
"load": [
"control.lua"
],
"require": [
],
"dependencies": {
"clusterio": "*"
}
}
+3
View File
@@ -0,0 +1,3 @@
-- Access the exports from other modules using require("modules/exp_groups")
return require("modules/exp_groups/control")
+37
View File
@@ -0,0 +1,37 @@
{
"name": "@expcluster/permission-groups",
"version": "0.1.0",
"description": "Clusterio plugin providing syncing of permission groups",
"author": "Cooldude2606 <https://github.com/Cooldude2606>",
"license": "MIT",
"repository": "explosivegaming/ExpCluster",
"main": "dist/node/index.js",
"scripts": {
"prepare": "tsc --build && webpack-cli --env production"
},
"engines": {
"node": ">=18"
},
"peerDependencies": {
"@clusterio/lib": "catalog:"
},
"devDependencies": {
"typescript": "catalog:",
"@types/node": "catalog:",
"@clusterio/lib": "catalog:",
"webpack": "catalog:",
"webpack-cli": "catalog:",
"webpack-merge": "catalog:"
},
"dependencies": {
"@sinclair/typebox": "catalog:"
},
"publishConfig": {
"access": "public"
},
"keywords": [
"clusterio",
"clusterio-plugin",
"factorio"
]
}
+4
View File
@@ -0,0 +1,4 @@
{
"extends": "../tsconfig.browser.json",
"include": [ "web/**/*.tsx", "web/**/*.ts", "package.json" ],
}
+7
View File
@@ -0,0 +1,7 @@
{
"files": [],
"references": [
{ "path": "./tsconfig.node.json" },
{ "path": "./tsconfig.browser.json" }
]
}
+5
View File
@@ -0,0 +1,5 @@
{
"extends": "../tsconfig.node.json",
"include": ["./**/*.ts"],
"exclude": ["test/*", "./dist/*"],
}
View File
+29
View File
@@ -0,0 +1,29 @@
"use strict";
const path = require("path");
const webpack = require("webpack");
const { merge } = require("webpack-merge");
const common = require("@clusterio/web_ui/webpack.common");
module.exports = (env = {}) => merge(common(env), {
context: __dirname,
entry: "./web/index.tsx",
output: {
path: path.resolve(__dirname, "dist", "web"),
},
plugins: [
new webpack.container.ModuleFederationPlugin({
name: "exp_groups",
library: { type: "window", name: "plugin_exp_groups" },
exposes: {
"./": "./index.ts",
"./package.json": "./package.json",
"./web": "./web/index.tsx",
},
shared: {
"@clusterio/lib": { import: false },
"@clusterio/web_ui": { import: false },
},
}),
],
});