From 11013d01b0662ded95bfbc6a536de258b57e20e7 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Wed, 13 Aug 2025 00:17:40 +0900 Subject: [PATCH] . --- controller.js | 3 ++- message.ts | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 message.ts diff --git a/controller.js b/controller.js index 0854a37..b7dbfd6 100644 --- a/controller.js +++ b/controller.js @@ -3,6 +3,7 @@ const Discord = require('discord.js'); const fetch = require('node-fetch'); const {BaseControllerPlugin} = require('@clusterio/controller'); const {InstanceActionEvent} = require('./info.js'); +import { ChatEvent } from "./messages"; const MAX_DISCORD_MESSAGE_LENGTH = 1950; const MIN_CONFIDENCE_SCORE = 10.0; @@ -182,7 +183,7 @@ class ControllerPlugin extends BaseControllerPlugin { if (result && result.action) { await this.sendMessage(request, `**\`${nrc_username}\`**: ${result.passage}`); - return `[color=255,255,255]\`${nrc_username}\`: ${result}[/color]`; + this.instance.sendTo({ instanceId: this.instance.id }, new ChatEvent(this.instance.name, `[color=255,255,255]\`${nrc_username}\`: ${result}[/color]`)); } } } diff --git a/message.ts b/message.ts new file mode 100644 index 0000000..8c58d27 --- /dev/null +++ b/message.ts @@ -0,0 +1,24 @@ +import { Type, Static } from "@sinclair/typebox"; +export class ChatEvent { + declare ["constructor"]: typeof ChatEvent; + static type = "event" as const; + static src = ["control", "instance"] as const; + static dst = "instance" as const; + static plugin = "global_chat" as const; + static permission = null; + + constructor( + public instanceName: string, + public content: string, + ) { + } + + static jsonSchema = Type.Object({ + "instanceName": Type.String(), + "content": Type.String(), + }); + + static fromJSON(json: Static) { + return new this(json.instanceName, json.content); + } +} \ No newline at end of file