/[sudobot]/trunk/src/commands/automation/EmbedCommand.ts
ViewVC logotype

Diff of /trunk/src/commands/automation/EmbedCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 260 by rakin, Mon Jul 29 17:29:15 2024 UTC revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1    /**
2    * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20  import { CommandInteraction, Message } from 'discord.js';  import { CommandInteraction, Message } from 'discord.js';
21  import BaseCommand from '../../utils/structures/BaseCommand';  import BaseCommand from '../../utils/structures/BaseCommand';
22  import DiscordClient from '../../client/Client';  import DiscordClient from '../../client/Client';
# Line 10  export default class EmbedCommand extend Line 29  export default class EmbedCommand extend
29      subcommands = ['send', 'schema', 'build'];      subcommands = ['send', 'schema', 'build'];
30    
31      constructor() {      constructor() {
32          super('embed', 'settings', []);          super('embed', 'automation', []);
33      }      }
34    
35      async run(client: DiscordClient, message: Message | CommandInteraction, options: CommandOptions | InteractionOptions) {      async run(client: DiscordClient, message: Message | CommandInteraction, options: CommandOptions | InteractionOptions) {
36          if (!options.isInteraction && options.args[0] === undefined) {          if (!options.isInteraction) {
             await message.reply(`${emoji('error')} No subcommand provided.`);  
             return;  
         }  
   
         if (!options.isInteraction && (options.args[0] === 'send' || options.args[0] === 'schema')) {  
37              await message.reply(`${emoji('error')} This command can not be used in legacy mode. Use slash commands instead.`);              await message.reply(`${emoji('error')} This command can not be used in legacy mode. Use slash commands instead.`);
38              return;              return;
39          }          }
40    
41          if (!options.isInteraction && !this.subcommands.includes(options.args[0])) {          const subcommand = options.options.getSubcommand();
             await message.reply(`${emoji('error')} Invalid subcommand provided. Must be one of ${this.subcommands.map(c => `\`${c}\``).join(', ')}.`);  
             return;  
         }  
   
         const subcommand = options.isInteraction ? options.options.getSubcommand() : options.args[0];  
42    
43          const command = client.commands.get('embed__' + subcommand);          const command = client.commands.get('embed__' + subcommand);
44    
45          if (command) {          if (command) {
             if (!options.isInteraction)  
                 options.args.shift();  
46              await command.execute(client, message, options);              await command.execute(client, message, options);
47          }          }
48      }      }

Legend:
Removed from v.260  
changed lines
  Added in v.393

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26