Reputation: 35
I am currently trying to code a Discord link blocker:
My code:
client.on('message', (message) => {
if (message.content.includes('discord.gg/')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
if (message.content.includes('discordapp.com/')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
if (message.content.includes('https:')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
if (message.content.includes('http:')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
if (message.content.includes('www.')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
})
How can I put all keywords (http: ; discord.gg/ ; etc.) in a single "if part"?
I would need that, because I want the bot to write the message only once, even if you write "https://discord.gg/" for example. If you just write "https://discord.gg/" the message comes twice because of first "https://" and once because of "discord.gg/".
Upvotes: 0
Views: 534
Reputation: 763
Option 1 - else if
When one of the if
statements matches, all following else if
blocks are skipped.
client.on('message', (message) => {
if (message.content.includes('discord.gg/')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
else if (message.content.includes('discordapp.com/')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
else if (message.content.includes('https:')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
else if (message.content.includes('http:')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
else if (message.content.includes('www.')) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
})
Option 2 - regex
You can combine all the searches into one regular expression
client.on('message', (message) => {
if (message.content.match(/discord\.gg|discordapp\.com|https?:|www\./) !== null) {
message.delete()
.then(message.channel.send('<@!' + message.member + '>' + config.link_deleted_chat_message))
.then(message.member.send('<@!' + message.member + '>' + config.link_deleted_dm_message))
}
})
Upvotes: 3