Discord.JS |在发布特定 link 后自动踢人?

Discord.JS | Auto-Kick someone after posting a specific link?

我正在尝试向我的机器人添加一些“auto-mod”功能,最近我添加了一个小命令来删除虚假的 Steam 交易链接(因为它们似乎每天都变得越来越普遍)as you can see in this image 基本上它会记录您的不和谐帐户,然后在您的所有服务器中发送相同的垃圾邮件。所以我开发了一些代码来自动删除这些链接,并用 gif 回复...但我想要更多,因为我相信这些机器人在从服务器中删除之前不会停止发送垃圾邮件,所以我想添加一个功能自动踢他们,并给他们发一条关于他们被踢原因的消息,并邀请他们回到服务器(因为这些人中的大多数人很快就会恢复他们的帐户)抱歉说了这么久,我目前的工作代码如下:

client.on('message', (message) => { //whenever a message is sent
if (message.content.includes('https://stearncomminuty.ru/tradofferr/new/?partner=1284276379&token=iMNdOshG')) { 
  message.delete() //delete the message
    .then(message.channel.send('https://media.discordapp.net/attachments/859211601726275636/859977676919013386/5f36hh.gif'))
}})

如有任何帮助或改进建议,我们将不胜感激!

你可以很简单地解决这个问题。只需在第一个后添加另一个 .then() 并调用 <guildMember>.kick() 函数。

例如:

client.on('message', (message) => { //whenever a message is sent
    if (message.content.includes('https://stearncomminuty.ru/tradofferr/new/?partner=1284276379&token=iMNdOshG')) {
        message.delete() //delete the message
            .then(message.channel.send('https://media.discordapp.net/attachments/859211601726275636/859977676919013386/5f36hh.gif'))
            .then(() => message.member.kick('User kicked for sending spam links.'))
    }
});

另外,你为什么不把 https://stearncomminuty.ru/tradofferr/ 放在你的 include() 中?这也将删除类似的假冒 Steam 网址,而不仅仅是一个特定的网址,因为很有可能有很多这样开头的网址。