mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2026-11-12 23:54:53 +09:00
93 lines
2.2 KiB
TypeScript
93 lines
2.2 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 interface Permissions {
|
|
"exp_reports.report.get": never;
|
|
"exp_reports.report.list": never;
|
|
"exp_reports.report.subscribe": never;
|
|
"exp_reports.report.create": never;
|
|
"exp_reports.report.delete": never;
|
|
}
|
|
}
|
|
|
|
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",
|
|
],
|
|
};
|