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

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

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

trunk/commands/addqueue.js revision 49 by rakin, Mon Jul 29 17:28:21 2024 UTC trunk/src/commands/automation/AddQueueCommand.ts revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1  const { MessageEmbed } = require("discord.js");  /**
2  const ms = require("ms");  * This file is part of SudoBot.
3  const { clearTimeoutv2, getTimeout, setTimeoutv2 } = require("../src/setTimeout");  *
4  const { timeSince } = require("../src/util");  * Copyright (C) 2021-2022 OSN Inc.
5    *
6  module.exports = {  * SudoBot is free software; you can redistribute it and/or modify it
7      async handle(msg, cm) {  * under the terms of the GNU Affero General Public License as published by
8          if (cm.args[1] === undefined) {  * 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 { Message } from 'discord.js';
21    import BaseCommand from '../../utils/structures/BaseCommand';
22    import DiscordClient from '../../client/Client';
23    import CommandOptions from '../../types/CommandOptions';
24    import MessageEmbed from '../../client/MessageEmbed';
25    import ms from 'ms';
26    import { timeSince } from '../../utils/util';
27    import { setTimeoutv2 } from '../../utils/setTimeout';
28    
29    export default class AddQueueCommand extends BaseCommand {
30        constructor() {
31            super('addqueue', 'automation', []);
32        }
33    
34        async run(client: DiscordClient, msg: Message, options: CommandOptions) {
35            if (options.args[1] === undefined) {
36              await msg.reply({              await msg.reply({
37                  embeds: [                  embeds: [
38                      new MessageEmbed()                      new MessageEmbed()
# Line 17  module.exports = { Line 44  module.exports = {
44              return;              return;
45          }          }
46    
47          const time = await ms(cm.args[0]);          const time = await ms(options.args[0]);
48            let cmd: string[];
49    
50          if (!time) {          if (!time) {
51              await msg.reply({              await msg.reply({
# Line 31  module.exports = { Line 59  module.exports = {
59              return;              return;
60          }          }
61    
62          const args = [...cm.args];          cmd = [...options.args];
63          args.shift();          cmd.shift();
64    
65          if (typeof cm.commands[args[0]] === 'undefined') {          const cmdObj = client.commands.get(cmd[0]);
66    
67            if (!cmdObj) {
68              await msg.reply({              await msg.reply({
69                  embeds: [                  embeds: [
70                      new MessageEmbed()                      new MessageEmbed()
# Line 46  module.exports = { Line 76  module.exports = {
76              return;              return;
77          }          }
78    
79          const command = await args.join(' ');          if (!cmdObj.supportsLegacy) {
80                await msg.reply({
81                    embeds: [
82                        new MessageEmbed()
83                        .setColor('#f14a60')
84                        .setDescription(`This command conflicts with queued jobs.`)
85                    ]
86                });
87    
88                return;
89            }
90    
91            const command = await cmd.join(' ');
92    
93          const queue = await setTimeoutv2('queue.js', time, msg.guild.id, command, command, msg.id, msg.channel.id, msg.guild.id);          const queue = await setTimeoutv2('queue', time, msg.guild!.id, command, command, msg.id, msg.channel!.id, msg.guild!.id);
94    
95          await msg.reply({          await msg.reply({
96              embeds: [              embeds: [
# Line 72  module.exports = { Line 114  module.exports = {
114              ]              ]
115          });          });
116      }      }
 };  
117    }

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26