mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-11-16 08:24:52 +09:00
Same changes the other packages got in #475 and #476. The permissions move from definePermission calls into the plugin declaration, with the Permissions augmentation in messages.ts so the web build sees it. "type": "module", .js entrypoints and imports, webpack.config.cjs, and the tap tests use import with --type-strip-only. The web plugin now uses a default export function instead of the deprecated BaseWebPlugin class, like exp_roles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
86 lines
2.0 KiB
TypeScript
86 lines
2.0 KiB
TypeScript
import * as lib from "@clusterio/lib";
|
|
import * as messages from "./messages.js";
|
|
|
|
declare module "@clusterio/lib" {
|
|
export interface ControllerConfigFields {
|
|
"exp_reports.discord_webhook_url": string | null;
|
|
"exp_reports.json_webhook_url": string | null;
|
|
}
|
|
}
|
|
|
|
export const plugin: lib.PluginDeclaration = {
|
|
name: "exp_reports",
|
|
title: "ExpGaming - Reports",
|
|
description: "Clusterio plugin storing player reports on the controller",
|
|
|
|
features: [
|
|
"SavePatching",
|
|
"ScriptCommands",
|
|
],
|
|
|
|
messages: [
|
|
messages.ReportUpdatedEvent,
|
|
|
|
messages.ReportListRequest,
|
|
messages.ReportGetRequest,
|
|
messages.ReportCreateRequest,
|
|
messages.ReportDeleteRequest,
|
|
],
|
|
|
|
permissions: [
|
|
{
|
|
name: "exp_reports.report.get",
|
|
title: "Get Reports",
|
|
description: "Retrieve a specific report by id.",
|
|
grantByDefault: true,
|
|
},
|
|
{
|
|
name: "exp_reports.report.list",
|
|
title: "List Reports",
|
|
description: "List the reports against every player, or against one player.",
|
|
grantByDefault: true,
|
|
},
|
|
{
|
|
name: "exp_reports.report.subscribe",
|
|
title: "Subscribe to Report Updates",
|
|
description: "Receive updates when reports are made or deleted.",
|
|
grantByDefault: true,
|
|
},
|
|
{
|
|
name: "exp_reports.report.create",
|
|
title: "Create Reports",
|
|
description: "Report a player.",
|
|
grantByDefault: false,
|
|
},
|
|
{
|
|
name: "exp_reports.report.delete",
|
|
title: "Delete Reports",
|
|
description: "Delete reports made against a player.",
|
|
grantByDefault: false,
|
|
},
|
|
],
|
|
|
|
instanceEntrypoint: "./dist/node/instance.js",
|
|
|
|
controllerEntrypoint: "./dist/node/controller.js",
|
|
controllerConfigFields: {
|
|
"exp_reports.discord_webhook_url": {
|
|
title: "Discord Webhook URL",
|
|
description: "Discord channel webhook which new reports are posted to as an embed.",
|
|
type: "string",
|
|
optional: true,
|
|
},
|
|
"exp_reports.json_webhook_url": {
|
|
title: "JSON Webhook URL",
|
|
description: "URL which new reports are posted to as JSON.",
|
|
type: "string",
|
|
optional: true,
|
|
},
|
|
},
|
|
|
|
webEntrypoint: "./web",
|
|
routes: [
|
|
"/reports",
|
|
],
|
|
};
|