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

Diff of /trunk/src/commands/moderation/EchoCommand.ts

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

revision 51 by rakin, Mon Jul 29 17:28:23 2024 UTC revision 258 by rakin, Mon Jul 29 17:29:14 2024 UTC
# Line 1  Line 1 
1  import { BanOptions, CommandInteraction, EmojiIdentifierResolvable, GuildMember, Interaction, Message, TextChannel, User } from 'discord.js';  import { BanOptions, CommandInteraction, EmojiIdentifierResolvable, FileOptions, GuildMember, Interaction, Message, Permissions, TextChannel, User } from 'discord.js';
2  import BaseCommand from '../../utils/structures/BaseCommand';  import BaseCommand from '../../utils/structures/BaseCommand';
3  import DiscordClient from '../../client/Client';  import DiscordClient from '../../client/Client';
4  import CommandOptions from '../../types/CommandOptions';  import CommandOptions from '../../types/CommandOptions';
# Line 8  import getUser from '../../utils/getUser Line 8  import getUser from '../../utils/getUser
8  import getMember from '../../utils/getMember';  import getMember from '../../utils/getMember';
9  import History from '../../automod/History';  import History from '../../automod/History';
10  import { fetchEmoji } from '../../utils/Emoji';  import { fetchEmoji } from '../../utils/Emoji';
11    import { parseEmbedsInString } from '../../utils/util';
12    
13  export default class EchoCommand extends BaseCommand {  export default class EchoCommand extends BaseCommand {
14      supportsInteractions: boolean = true;      supportsInteractions: boolean = true;
# Line 47  export default class EchoCommand extends Line 48  export default class EchoCommand extends
48    
49              content = await options.args.join(' ');              content = await options.args.join(' ');
50          }          }
51            
52            if (!channel.send) {
53                await msg.reply({
54                    content: 'Invalid text channel.',
55                    ephemeral: true
56                });
57    
58                return;
59            }
60    
61            try {                
62                let { embeds, content: parsedContent } = parseEmbedsInString(content);
63    
         try {  
64              await channel.send({              await channel.send({
65                  content                  content: parsedContent.trim() === '' ? undefined : parsedContent,
66                    embeds,
67                    files: msg instanceof CommandInteraction ? undefined : [...msg.attachments.map(a => ({
68                        attachment: a.proxyURL,
69                        description: a.description,
70                        name: a.name
71                    } as FileOptions)).values()]
72              });              });
73    
74              if (options.isInteraction) {              if (options.isInteraction) {
# Line 74  export default class EchoCommand extends Line 92  export default class EchoCommand extends
92                  embeds: [                  embeds: [
93                      new MessageEmbed()                      new MessageEmbed()
94                      .setColor('#f14a60')                      .setColor('#f14a60')
95                      .setDescription(`Failed to send message. Maybe missing permissions?`)                      .setDescription(`Failed to send message. Maybe missing permissions or invalid embed schema?`)
96                  ],                  ],
97                  ephemeral: true                  ephemeral: true
98              });              });

Legend:
Removed from v.51  
changed lines
  Added in v.258

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26