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

Annotation of /trunk/src/commands/automation/QueuesCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 444 - (hide annotations)
Mon Jul 29 17:30:16 2024 UTC (8 months, 2 weeks ago) by rakin
File MIME type: application/typescript
File size: 2389 byte(s)
style: eslint autofix
1 rakin 393 /**
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 rakin 344 import { CommandInteraction, Message } from 'discord.js';
21 rakin 51 import BaseCommand from '../../utils/structures/BaseCommand';
22     import DiscordClient from '../../client/Client';
23     import CommandOptions from '../../types/CommandOptions';
24     import InteractionOptions from '../../types/InteractionOptions';
25     import MessageEmbed from '../../client/MessageEmbed';
26     import { timeProcess, timeSince } from '../../utils/util';
27    
28     export default class QueuesCommand extends BaseCommand {
29     supportsInteractions: boolean = true;
30    
31     constructor() {
32     super('queues', 'automation', []);
33     }
34    
35     async run(client: DiscordClient, msg: Message | CommandInteraction, options: CommandOptions | InteractionOptions) {
36 rakin 430 const map = [...client.queueManager.queues.values()].slice(0, 8);
37 rakin 51 let str = '';
38    
39     await map.forEach(value => {
40 rakin 430 if (value.guild !== msg.guild!.id)
41 rakin 51 return;
42    
43 rakin 430 console.log(new Date(value.runOn).getTime() - new Date().getTime());
44     str += `**ID: ${value.id}**\n`;
45    
46     if (value.data?.cmd) {
47     `**Command**: \`${value.data.cmd}\`\n`;
48     }
49    
50     str += `**ETA**: ${timeProcess((new Date(value.runOn).getTime() - new Date().getTime()) / 1000).replace(' ago', '')}\n**Queue Added**: ${value.model.createdAt.toLocaleString()} (${timeSince(value.model.createdAt.getTime())})\n\n`;
51 rakin 51 });
52    
53     await msg.reply({
54     embeds: [
55     new MessageEmbed()
56     .setTitle('Queue List')
57     .setDescription(str === '' ? 'No queue.' : str)
58     .setTimestamp()
59     ]
60     });
61     }
62     }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26