FakeClyde (plugin) and sendBotMessage (API addition) (#66)
Co-authored-by: Ven <vendicated@riseup.net>
This commit is contained in:
parent
09b3f6d19b
commit
ebe62a1790
4 changed files with 53 additions and 3 deletions
|
@ -23,6 +23,7 @@
|
||||||
"esbuild": "^0.15.5",
|
"esbuild": "^0.15.5",
|
||||||
"eslint": "^8.24.0",
|
"eslint": "^8.24.0",
|
||||||
"standalone-electron-types": "^1.0.0",
|
"standalone-electron-types": "^1.0.0",
|
||||||
|
"type-fest": "^3.1.0",
|
||||||
"typescript": "^4.8.4",
|
"typescript": "^4.8.4",
|
||||||
"yazl": "^2.5.1"
|
"yazl": "^2.5.1"
|
||||||
},
|
},
|
||||||
|
|
|
@ -11,6 +11,7 @@ specifiers:
|
||||||
esbuild: ^0.15.5
|
esbuild: ^0.15.5
|
||||||
eslint: ^8.24.0
|
eslint: ^8.24.0
|
||||||
standalone-electron-types: ^1.0.0
|
standalone-electron-types: ^1.0.0
|
||||||
|
type-fest: ^3.1.0
|
||||||
typescript: ^4.8.4
|
typescript: ^4.8.4
|
||||||
yazl: ^2.5.1
|
yazl: ^2.5.1
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ devDependencies:
|
||||||
esbuild: 0.15.5
|
esbuild: 0.15.5
|
||||||
eslint: 8.24.0
|
eslint: 8.24.0
|
||||||
standalone-electron-types: 1.0.0
|
standalone-electron-types: 1.0.0
|
||||||
|
type-fest: 3.1.0
|
||||||
typescript: 4.8.4
|
typescript: 4.8.4
|
||||||
yazl: 2.5.1
|
yazl: 2.5.1
|
||||||
|
|
||||||
|
@ -1190,6 +1192,11 @@ packages:
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/type-fest/3.1.0:
|
||||||
|
resolution: {integrity: sha512-StmrZmK3eD9mDF9Vt7UhqthrDSk66O9iYl5t5a0TSoVkHjl0XZx/xuc/BRz4urAXXGHOY5OLsE0RdJFIApSFmw==}
|
||||||
|
engines: {node: '>=14.16'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/typescript/4.8.4:
|
/typescript/4.8.4:
|
||||||
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
|
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
|
||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
import { Channel, Guild } from "discord-types/general";
|
import { Channel, Guild, Embed, Message } from "discord-types/general";
|
||||||
import { waitFor } from "../webpack";
|
import { lazyWebpack, mergeDefaults } from "../utils/misc";
|
||||||
|
import { waitFor, findByProps, find, filters } from "../webpack";
|
||||||
|
import type { PartialDeep } from "type-fest";
|
||||||
|
|
||||||
|
const createBotMessage = lazyWebpack(filters.byCode('username:"Clyde"'));
|
||||||
|
const MessageSender = lazyWebpack(filters.byProps([ "receiveMessage" ]));
|
||||||
|
|
||||||
export function _init(cmds: Command[]) {
|
export function _init(cmds: Command[]) {
|
||||||
try {
|
try {
|
||||||
|
@ -77,7 +82,21 @@ export function registerCommand(command: Command, plugin: string) {
|
||||||
BUILT_IN.push(command);
|
BUILT_IN.push(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function unregisterCommand(name: string) {
|
/**
|
||||||
|
* Send a message as Clyde
|
||||||
|
* @param {string} channelId ID of channel to send message to
|
||||||
|
* @param {Message} message Message to send
|
||||||
|
* @returns {Message}
|
||||||
|
*/
|
||||||
|
export function sendBotMessage(channelId: string, message: PartialDeep<Message>) {
|
||||||
|
const botMessage = createBotMessage({ channelId, content: "", embeds: [] });
|
||||||
|
|
||||||
|
MessageSender.receiveMessage(channelId, mergeDefaults(message, botMessage));
|
||||||
|
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function unregisterCommand(name: string) { 1;
|
||||||
const idx = BUILT_IN.findIndex(c => c.name === name);
|
const idx = BUILT_IN.findIndex(c => c.name === name);
|
||||||
if (idx === -1)
|
if (idx === -1)
|
||||||
return false;
|
return false;
|
||||||
|
|
23
src/plugins/echo.ts
Normal file
23
src/plugins/echo.ts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
import definePlugin from "../utils/types";
|
||||||
|
import { ApplicationCommandInputType, sendBotMessage, findOption, OptionalMessageOption } from "../api/Commands";
|
||||||
|
import { ReactionEmoji, Message, MessageReaction, JSMessage } from "discord-types/general";
|
||||||
|
|
||||||
|
export default definePlugin({
|
||||||
|
name: "Echo",
|
||||||
|
description: "Uses Clydes message function to send a custom message of your choice (locally)",
|
||||||
|
authors: [{ name: "ICodeInAssembly", id: 702973430449832038n }],
|
||||||
|
dependencies: ["CommandsAPI"],
|
||||||
|
commands: [
|
||||||
|
{
|
||||||
|
name: "echo",
|
||||||
|
description: "Sends a message as Clyde (locally)",
|
||||||
|
options: [OptionalMessageOption],
|
||||||
|
inputType: ApplicationCommandInputType.BOT,
|
||||||
|
execute: (opts, ctx) => {
|
||||||
|
const message = findOption(opts, "message", "");
|
||||||
|
|
||||||
|
sendBotMessage(ctx.channel.id, { content: message });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
});
|
Loading…
Reference in a new issue