Skip to content

Commit 9a41a6f

Browse files
authored
Feat include current channel in repel (#963)
* refractor: use repel role id instead of name * fix: fix typescript errors * feat: add channel logger utility * feat: add Discord error codes enum * feat: implement new repel command options + logging * fix: include channel where the command is used in * remove unused imports
1 parent f333a08 commit 9a41a6f

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

src/v2/commands/repel/index.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ export const repelInteraction: CommandDataWithHandler = {
162162
RepelCommandOptions.TARGET,
163163
false,
164164
)?.user as User;
165-
console.log('Target User:', targetUser);
166165

167166
let targetGuildMember: GuildMember | null = null;
168167
let userNotInServer = false;
@@ -236,11 +235,22 @@ export const repelInteraction: CommandDataWithHandler = {
236235
false,
237236
) ?? REPEL_DEFAULT_DELETE_COUNT;
238237
let deletedCount = 0;
239-
const textChannels = interaction.guild.channels.cache.filter(
240-
ch => ch.type === ChannelType.GuildText,
241-
);
238+
const textChannels = interaction.guild.channels.cache
239+
.filter(
240+
(ch): ch is TextChannel =>
241+
(ch.type === ChannelType.GuildText ||
242+
ch.type === ChannelType.GuildVoice) &&
243+
ch.id !== interaction.channelId &&
244+
Boolean(ch.lastMessageId),
245+
)
246+
.sort((a, b) => {
247+
const aLastMessage = a.lastMessageId ? BigInt(a.lastMessageId) : 0n;
248+
const bLastMessage = b.lastMessageId ? BigInt(b.lastMessageId) : 0n;
249+
return Number(bLastMessage - aLastMessage);
250+
})
251+
.first(50);
242252

243-
for (const [, channel] of textChannels) {
253+
for (const channel of [interaction.channel, ...textChannels]) {
244254
if (deletedCount >= messagesToDelete) break;
245255

246256
try {
@@ -289,10 +299,15 @@ export const repelInteraction: CommandDataWithHandler = {
289299
});
290300
}
291301

302+
const channelInfo =
303+
interaction.channel?.type === ChannelType.GuildVoice
304+
? `**${interaction.channel.name}** voice chat`
305+
: `<#${interaction.channelId}>`;
306+
292307
const embed = new EmbedBuilder()
293308
.setTitle('Repel Action')
294309
.setDescription(
295-
`<@${targetId}> has been repelled by <@${member.id}> in <#${interaction.channelId}>.`,
310+
`<@${targetId}> has been repelled by <@${member.id}> in ${channelInfo}.`,
296311
)
297312
.addFields(
298313
{

0 commit comments

Comments
 (0)