Discord.jsは初めてです。メッセージに「こんにちは、discord.gg/xxxxxから来ました。リンクをスパムします」のようなリンクが含まれているかどうかを確認しようとしています。
メッセージにリンクが含まれているかどうかを確認するにはどうすればよいですか?
不一致の招待リンクを具体的に確認するか、すべてのリンクを確認するかは不明です。どちらの方法でも、message.content.includes
。
例:
bot.on('message', (message) => { //whenever a message is sent
if (message.content.includes('discord.gg/'||'discordapp.com/invite/')) { //if it contains an invite link
message.delete() //delete the message
.then(message.channel.send('Link Deleted:\n**Invite links are not permitted on this server**'))
}
})
私はこれが最高だと思います:
let regx = /^((?:https?:)?\/\/)?((?:www|m)\.)? ((?:discord\.gg|discordapp\.com))/g
let cdu = regx.test(message.content.toLowerCase().replace(/\s+/g, ''))
うまくいくか教えてください!
Regular Expressions (RegEX)を使用してこれを確認できます
例:
// The message to check for a Discord link
var message = "Hi, please join discord.gg/a2dsc for cool conversations";
// The message will be tested on "discord.gg/{any character or digit}"
var containsDiscordUrl = message.test(/discord.gg\/\w*\d*);
// If the test has found a URL..
if (containsDiscordUrl) { // ... Do something }
あなたはこれを試すことができます:
bot.on(`message`, async message => {
const bannedWords = [`discord.gg`, `.gg/`, `.gg /`, `. gg /`, `. gg/`, `discord .gg /`, `discord.gg /`, `discord .gg/`, `discord .gg`, `discord . gg`, `discord. gg`, `discord gg`, `discordgg`, `discord gg /`]
try {
if (bannedWords.some(Word => message.content.toLowerCase().includes(Word))) {
if (message.author.id === message.guild.ownerID) return;
await message.delete();
await message.channel.send(`You cannot send invites to other Discord servers`);
}
} catch (e) {
console.log(e);
}
};