I am trying to disable @everyone, @here and other role pings in my say command.
Basically when someone tries doing {prefix}say @everyone hi bot will reply everyone-ping hi and won’t ping everyone
(replacing @everyone with everyone-ping
Here’s my code
const response = args.slice(0).join(" ")
message.channel.send(response)
i tried something like
response.splice(‘@everyone’, 1, ‘everyone-ping’)
but didn’t work
Hey @umutplus,
Before you send the message, you can look for the everyone ping and change it’s value using .indexOf
.
let everyoneping = (args.indexOf("@everyone") > -1);
if (everyoneping === true) {
let index = args.indexOf("@everyone");
response[index] = "everyoneping";
}
Use this code before the response = args.slice(0).join(" ")
line.
This code is untested, so I’m not sure this might work. However, let me know if it doesn’t work.
Hope this helps!
2 Likes
Simply just use this:
message.content = message.content.replace(/@(everyone)/gi, "everyone").replace(/@(here)/gi, "here");
2 Likes
You could also use the one built into discordjs
1 Like
Oh! Didn’t know Discord.js had that!
1 Like
I sent the link above, also removes role pings
2 Likes
The meta tags made it look like you just sent the docs and not a specific function
https://discord.js.org/#/docs/main/stable/class/Util?scrollTo=s-removeMentions
You can put <>
s around a URL and it will just show as a URL, not a card, like above ^^^
3 Likes