Skip to content

Commit c2349d4

Browse files
jaw0r3kvladfrangukodiakhq[bot]
authored
feat(cleanContent): add slash commands and emojis (#9809)
* feat(cleanContent): add missing commands and emojis Co-authored-by: Vlad Frangu <[email protected]> * fix: check for every possible name * fix: use non capturing group --------- Co-authored-by: Vlad Frangu <[email protected]> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
1 parent 31d914e commit c2349d4

File tree

1 file changed

+32
-24
lines changed
  • packages/discord.js/src/util

1 file changed

+32
-24
lines changed

packages/discord.js/src/util/Util.js

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -365,32 +365,40 @@ function basename(path, ext) {
365365
* @returns {string}
366366
*/
367367
function cleanContent(str, channel) {
368-
return str.replaceAll(/<(@[!&]?|#)(\d{17,19})>/g, (match, type, id) => {
369-
switch (type) {
370-
case '@':
371-
case '@!': {
372-
const member = channel.guild?.members.cache.get(id);
373-
if (member) {
374-
return `@${member.displayName}`;
368+
return str.replaceAll(
369+
/* eslint-disable max-len */
370+
/<(?:(?<type>@[!&]?|#)|(?:\/(?<commandName>[-_\p{L}\p{N}\p{sc=Deva}\p{sc=Thai} ]+):)|(?:a?:(?<emojiName>[\w]+):))(?<id>\d{17,19})>/gu,
371+
(match, type, commandName, emojiName, id) => {
372+
if (commandName) return `/${commandName}`;
373+
374+
if (emojiName) return `:${emojiName}:`;
375+
376+
switch (type) {
377+
case '@':
378+
case '@!': {
379+
const member = channel.guild?.members.cache.get(id);
380+
if (member) {
381+
return `@${member.displayName}`;
382+
}
383+
384+
const user = channel.client.users.cache.get(id);
385+
return user ? `@${user.displayName}` : match;
386+
}
387+
case '@&': {
388+
if (channel.type === ChannelType.DM) return match;
389+
const role = channel.guild.roles.cache.get(id);
390+
return role ? `@${role.name}` : match;
391+
}
392+
case '#': {
393+
const mentionedChannel = channel.client.channels.cache.get(id);
394+
return mentionedChannel ? `#${mentionedChannel.name}` : match;
395+
}
396+
default: {
397+
return match;
375398
}
376-
377-
const user = channel.client.users.cache.get(id);
378-
return user ? `@${user.username}` : match;
379-
}
380-
case '@&': {
381-
if (channel.type === ChannelType.DM) return match;
382-
const role = channel.guild.roles.cache.get(id);
383-
return role ? `@${role.name}` : match;
384-
}
385-
case '#': {
386-
const mentionedChannel = channel.client.channels.cache.get(id);
387-
return mentionedChannel ? `#${mentionedChannel.name}` : match;
388-
}
389-
default: {
390-
return match;
391399
}
392-
}
393-
});
400+
},
401+
);
394402
}
395403

396404
/**

0 commit comments

Comments
 (0)