/[sudobot]/trunk/src/commands/moderation/WarningsCommand.ts
ViewVC logotype

Contents of /trunk/src/commands/moderation/WarningsCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 51 - (show annotations)
Mon Jul 29 17:28:23 2024 UTC (8 months, 1 week ago) by rakin
File MIME type: application/typescript
File size: 3317 byte(s)
Release version 2.0
1 import { BanOptions, CommandInteraction, Guild, GuildMember, Interaction, Message, User } from 'discord.js';
2 import BaseCommand from '../../utils/structures/BaseCommand';
3 import DiscordClient from '../../client/Client';
4 import CommandOptions from '../../types/CommandOptions';
5 import InteractionOptions from '../../types/InteractionOptions';
6 import MessageEmbed from '../../client/MessageEmbed';
7 import getUser from '../../utils/getUser';
8 import History from '../../automod/History';
9 import getMember from '../../utils/getMember';
10 import ms from 'ms';
11
12 export default class WarningsCommand extends BaseCommand {
13 supportsInteractions: boolean = true;
14
15 constructor() {
16 super('warnings', 'moderation', []);
17 }
18
19 async run(client: DiscordClient, msg: Message | CommandInteraction, options: CommandOptions | InteractionOptions) {
20 let user: GuildMember | null | undefined;
21
22 if (options.isInteraction) {
23 if (options.options.getMember('member'))
24 user = await <GuildMember> options.options.getMember('member');
25 }
26 else {
27 if (options.args[0]) {
28 try {
29 user = await getMember(msg as Message, options);
30
31 if (!user) {
32 throw new Error();
33 }
34 }
35 catch (e) {
36 await msg.reply({
37 embeds: [
38 new MessageEmbed()
39 .setColor('#f14a60')
40 .setDescription(`Invalid user given.`)
41 ]
42 });
43
44 return;
45 }
46 }
47 }
48
49 var test = false;
50
51 if (!user) {
52 var args1: [string, string[]] = ['SELECT * FROM warnings WHERE guild_id = ?', [msg.guild!.id]];
53 var a: any = {
54 name: `All warnings`
55 };
56 }
57 else {
58 var args1: [string, string[]] = ['SELECT id, user_id, guild_id, reason FROM warnings WHERE user_id = ? AND guild_id = ?', [user.id, msg.guild!.id]];
59 var a: any = {
60 iconURL: user.displayAvatarURL(),
61 name: `All warnings for ${user.user.tag} in ${msg.guild!.name}`
62 };
63
64 test = true;
65 }
66
67 await client.db.all(...args1, async (err: any, data: any) => {
68 if (err) {
69 console.log(err);
70 }
71
72 let i = 0;
73
74 let warnings = await data.map((value: any) => {
75 i++;
76 return {
77 name: "Warning " + i + " (ID: " + value.id + (!test ? ", To: " + value.user_id : "") + ")",
78 value: value.reason === '\c\b\c' ? "No reason provided" : value.reason
79 };
80 });
81
82 if (test) {
83 warnings.push(
84 {
85 name: "Strike",
86 value: i + ' time(s)'
87 }
88 );
89 }
90
91 await msg.reply({
92 embeds: [
93 new MessageEmbed()
94 .setAuthor(a)
95 .addFields(warnings)
96 ]
97 });
98 });
99 }
100 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26