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",
 | 
			
		||||
        "eslint": "^8.24.0",
 | 
			
		||||
        "standalone-electron-types": "^1.0.0",
 | 
			
		||||
        "type-fest": "^3.1.0",
 | 
			
		||||
        "typescript": "^4.8.4",
 | 
			
		||||
        "yazl": "^2.5.1"
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										7
									
								
								pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -11,6 +11,7 @@ specifiers:
 | 
			
		|||
  esbuild: ^0.15.5
 | 
			
		||||
  eslint: ^8.24.0
 | 
			
		||||
  standalone-electron-types: ^1.0.0
 | 
			
		||||
  type-fest: ^3.1.0
 | 
			
		||||
  typescript: ^4.8.4
 | 
			
		||||
  yazl: ^2.5.1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +28,7 @@ devDependencies:
 | 
			
		|||
  esbuild: 0.15.5
 | 
			
		||||
  eslint: 8.24.0
 | 
			
		||||
  standalone-electron-types: 1.0.0
 | 
			
		||||
  type-fest: 3.1.0
 | 
			
		||||
  typescript: 4.8.4
 | 
			
		||||
  yazl: 2.5.1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1190,6 +1192,11 @@ packages:
 | 
			
		|||
    engines: {node: '>=10'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /type-fest/3.1.0:
 | 
			
		||||
    resolution: {integrity: sha512-StmrZmK3eD9mDF9Vt7UhqthrDSk66O9iYl5t5a0TSoVkHjl0XZx/xuc/BRz4urAXXGHOY5OLsE0RdJFIApSFmw==}
 | 
			
		||||
    engines: {node: '>=14.16'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /typescript/4.8.4:
 | 
			
		||||
    resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
 | 
			
		||||
    engines: {node: '>=4.2.0'}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,10 @@
 | 
			
		|||
import { Channel, Guild } from "discord-types/general";
 | 
			
		||||
import { waitFor } from "../webpack";
 | 
			
		||||
import { Channel, Guild, Embed, Message } from "discord-types/general";
 | 
			
		||||
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[]) {
 | 
			
		||||
    try {
 | 
			
		||||
| 
						 | 
				
			
			@ -77,7 +82,21 @@ export function registerCommand(command: Command, plugin: string) {
 | 
			
		|||
    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);
 | 
			
		||||
    if (idx === -1)
 | 
			
		||||
        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…
	
	Add table
		Add a link
		
	
		Reference in a new issue