我在我的 Discord 机器人上添加“自动审核”功能时遇到问题

Posted

技术标签:

【中文标题】我在我的 Discord 机器人上添加“自动审核”功能时遇到问题【英文标题】:I'm having an issue with adding an "Auto-Moderating" feature on my Discord bot 【发布时间】:2020-12-04 22:20:18 【问题描述】:

G'day,我真的需要一些关于“自动审核”功能的帮助,我想在我的第一个 Discord Bot 中包含该功能,它是用 javascript 编码的。另外,我对这种编程语言和 discord.js 本身真的很陌生,所以我真的不知道如何正确使用所有参数。

无论如何,重点是,我希望我的机器人分析我的 Discord 服务器的每个成员发送的消息,并在所述消息中寻找冒犯性或不恰当的词语。如果找到至少一个,它将发送一条消息,提及发送该消息的成员以及警告命令。

我让机器人在检测到冒犯性词时正确注册成员用户名并发送带有所述名称的消息,问题是它只写@(用户名),而没有实际提及和警告所述成员。由于没有其他信息可以提供给您,我将把代码留给您:

client.on('message', message => 
    if (message.toString().toLowerCase().includes("idiot")) 
        var y = message.author.username
        message.channel.send("!warn " + "@" + y + "Use of offensive language.");
    
);

如果您能帮我解决这个小问题,我将不胜感激。感谢您花时间阅读本文,祝您有美好的一天。

【问题讨论】:

message 本身就是一个字符串,所以你不需要 .toString() 它。要提及用户,您也可以使用 <@userID>@username 只返回文字 @username 感谢您提供的信息,我将在我的代码中更改这些内容,看看是否可以让它工作。 对于看到此帖子的人有类似问题,请注意message 实际上不是 字符串;你应该使用message.content 【参考方案1】:

您可以使用语法<@USERID> 提及用户。

另外,最好是获取消息的内容而不是 .toString()。

client.on('message', message => 
    if (message.content.toLowerCase().includes("idiot")) 
        message.channel.send("!warn <@" + message.author.id + "> Use of offensive language.");
    
);

【讨论】:

【参考方案2】:
client.on("message", message => 
    if (message.content.toLowerCase().includes("idiot")) 
        message.channel.send(`!warn $message.author.member Use of offensive language.`);
    
);

或者只是使用message.author.member 会做同样的事情。 你把你的代码放在这个符号“`”之间而不是双引号,以使代码更易于阅读。您可以使用$variable 添加变量。

【讨论】:

感谢您的信息,我会尝试更改这些方面,看看是否有效。

以上是关于我在我的 Discord 机器人上添加“自动审核”功能时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 无法永远在服务器上使用 process.env 启动机器人,但它可以通过 Visual Studio 在我的本地驱动器上正常工作

Discord 在我的 GitHub 上编译的 dll 中找到了机器人令牌

Discord.js :将特定服务器上的角色添加到 DM 机器人的用户

数据库无法连接到我在 digitalocean 上的不和谐机器人 (discord.py)

Discord.Py Opus Heroku 问题

Discord 机器人帮助命令 [discord.py]