试图让我的 Discord 机器人响应“我不是婴儿潮一代 >:(”但它不会响应。我该如何修复代码?

Posted

技术标签:

【中文标题】试图让我的 Discord 机器人响应“我不是婴儿潮一代 >:(”但它不会响应。我该如何修复代码?【英文标题】:Trying to get my Discord bot to respond with "Im not a boomer >:(" but it won't respond. How can I fix the code? 【发布时间】:2020-11-09 02:47:40 【问题描述】:

我制作了一个 Discord 机器人,该机器人将上线,但每当我说 boomer 时,机器人不会响应 Im not a boomer >:( 就像它应该的那样。我的代码有什么问题?标记的图片中的out区域是我的令牌。代码中“在此处输入令牌”的部分是令牌的实际位置。我把它拿出来是因为我不想让任何人得到令牌。这都是视觉上的工作室代码。

const Discord = require('discord.js');


const bot = new Discord.Client();



const token = 'Enter token here';


bot.on('ready', () =>
    console.log('This bot is online!');
)

 if(msg.content ===  "boomer")
        msg.reply('Im not a boomer!>:(');
    
)

bot.login(token);

New code image link...

【问题讨论】:

为什么要在图片中显示已经在文本中的代码 我认为如果我有两种不同的方式,人们可能更容易知道代码是什么。你知道我的问题是什么吗?如果有,请告诉我。 你的机器人在同一个服务器上,它会说话吗? 当我尝试运行命令时它在同一台服务器上,但它不会说话。这就是我正在处理的问题。它不会以正确的文本回复。我说婴儿潮一代,它应该回答我不是婴儿潮一代 >:(,但它不会。我怀疑代码有问题。 如果他们无法阅读文字版,您真的认为他们能够阅读图片版吗?文本版本可以缩放并提高可读性,而图像则不是这样。而且你不知道图片会在线多久。 【参考方案1】:

这可能有多种原因。我将假设图像是代码的较新版本,因为您的消息处理程序位于图片中的 on 'message' 事件中,但不在代码中。如果不是,那就是你的问题。

    机器人无权在频道中发言。 消息不完全是boomer。检查消息时您有===,因此它只会检查它是否完全相同。

如果是这种情况,您可以通过使用 toLowerCase()includes() 来解决此问题,如下所示: msg.content.toLowerCase().includes("boomer")

【讨论】:

泰。我会试试的。这可能是第二件事。我很确定我允许机器人说话。在频道中。 我想我做错了什么。我已经在我的问题中发布了新代码,图片还包括我遇到的问题。如果你能说出新代码应该是什么。我需要很多帮助,因为显然我在这里做错了什么。【参考方案2】:
bot.on('message', message => 
  if (msg.content === "boomer") msg.reply('Im not a boomer!>:(');
);

编辑:图像中的代码似乎在错误的位置有一个右括号

【讨论】:

泰。我会尽快尝试。 现在我收到一条错误消息,指出 node .找不到模块。昨天不是这样,我没有用 node.js 改变任何东西。我该如何解决这个问题? 转到文件所在的目录并运行npm install <missing package> --save 好的。 Ty 提供所有帮助。

以上是关于试图让我的 Discord 机器人响应“我不是婴儿潮一代 >:(”但它不会响应。我该如何修复代码?的主要内容,如果未能解决你的问题,请参考以下文章

Discord.py 机器人:如何让我的不和谐机器人向我发送对用户在 DM 中使用的命令的响应,例如进行调查?

具有不同响应的命令上的 discord.js-commando 参数

Discord.js - Discord 机器人停止响应命令

Discord.js 机器人在提及时做出响应

当我们提到(@)机器人时,如何使 Discord.js 机器人响应本地图片?

如何让我的 Discord Bot 离开我不在的服务器