"use strict"; const lib = require("@clusterio/lib"); class InstanceActionEvent { static type = "event"; static src = "instance"; static dst = "controller"; static plugin = "ClusterChatSync"; constructor(instanceName, action, content) { this.instanceName = instanceName; this.action = action; this.content = content; } static jsonSchema = { type: "object", required: ["instanceName", "action", "content"], properties: { "instanceName": { type: "string" }, "action": { type: "string" }, "content": { type: "string" }, }, }; static fromJSON(json) { return new this(json.instanceName, json.action, json.content); } } const plugin = { name: "ClusterChatSync", title: "Cluster Chat Sync", description: "One way chat sync.", instanceEntrypoint: "instance", controllerEntrypoint: "controller", controllerConfigFields: { "ClusterChatSync.discord_bot_token": { title: "Discord Bot Token", description: "API Token", type: "string" }, "ClusterChatSync.datetime_on_message": { title: "Message Datetime", description: "Append datetime in front", type: "boolean", initialValue: true }, "ClusterChatSync.discord_channel_mapping": { title: "Channels", description: "Putting the discord channel id and instance relations here", type: "object", initialValue: { "S1": "123" }, }, "ClusterChatSync.use_libretranslate": { title: "Translate Message", description: "Using self host or paid service of libretranslate", type: "boolean", initialValue: false }, "ClusterChatSync.libretranslate_url": { title: "Translate Server URL", description: "Including http protocol, and the port if needed", type: "string", initialValue: "http://localhost:5000" }, "ClusterChatSync.libretranslate_key": { title: "Translate Server API Key", description: "The API key for the translate server", type: "string", initialValue: "123456" }, "ClusterChatSync.libretranslate_language": { title: "Translate Server Target Language", description: "Put a space between each language, using ISO 639-1 codes", type: "string", initialValue: "zh-Hants en" }, }, messages: [ InstanceActionEvent ], }; module.exports = { plugin, InstanceActionEvent };