So I've been trying to figure this out but have had a hard time. I can't seem to figure it out. How can I make it so that if a message sent isn't an emoji, it will delete it?
Asked
Active
Viewed 96 times
1
-
1[emoji-regex](https://www.npmjs.com/package/emoji-regex) might be what you're looking for. – Jakye Aug 05 '20 at 07:50
1 Answers
2
I have adapted this answer to detect if the message consists entirely of emojis, and if it doesn't, it gets deleted.
client.on('message', message => {
if (!/[\u{1f300}-\u{1f5ff}\u{1f900}-\u{1f9ff}\u{1f600}-\u{1f64f}\u{1f680}-\u{1f6ff}\u{2600}-\u{26ff}\u{2700}-\u{27bf}\u{1f1e6}-\u{1f1ff}\u{1f191}-\u{1f251}\u{1f004}\u{1f0cf}\u{1f170}-\u{1f171}\u{1f17e}-\u{1f17f}\u{1f18e}\u{3030}\u{2b50}\u{2b55}\u{2934}-\u{2935}\u{2b05}-\u{2b07}\u{2b1b}-\u{2b1c}\u{3297}\u{3299}\u{303d}\u{00a9}\u{00ae}\u{2122}\u{23f3}\u{24c2}\u{23e9}-\u{23ef}\u{25b6}\u{23f8}-\u{23fa}]+$/u.test(message.content)) {
message.delete();
}
});
Alternatively, you could use emoji-regex, as pointed out by Jakye in the comments.

Daemon Beast
- 2,794
- 3
- 12
- 29
-
Thank you this actually works! However, is there any way for me to also delete messages if they are longer than one emoji? – Nico Aug 05 '20 at 17:18
-
@Nico Wait, I made a mistake, you need to replace the `+` on the end of the regex with `{1}`, not `{2,}`. – Daemon Beast Aug 05 '20 at 18:24