我的 Discord.js 机器人正在运行(在线并在控制台中显示)但它不会响应命令 [英] My Discord.js bot is running (online and shows in console) but it won't respond to commands

查看:22
本文介绍了我的 Discord.js 机器人正在运行(在线并在控制台中显示)但它不会响应命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,有一天我使用 TeamViewer 连接到我的 RPi3 并告诉它重新启动.完成后,我连接到 pi,启动了 bot,它看起来正常启动.

So, one day I was using TeamViewer to connect to my RPi3 and told it to reboot. As soon as it finished, I connected to the pi, started the bot, and it looked like it was starting up properly.

当我在 discord 上发送命令时,机器人没有响应.机器人仍在运行.

When I went to send a command on discord, the bot didn't respond. The bot is still running though.

我尝试更改一些代码,但没有任何改变.

I tried changing some of the code, but nothing changed.

代码如下:

[REMOVED]

可能是什么问题?

推荐答案

你的问题是你的 if 语句没有阻塞.

Your problem is lack of blocking of your if statement.

if (message.channel instanceof Discord.DMChannel)
    message.channel.send("``Beep boop! Sorry, I can't respond to direct messages, but you can join the AKAS Gamer's Discord group here: https://discord.gg/QkjQNAr``");
    return

由于缺少括号,您的 return 将始终执行,因为它不是 if 语句的一部分.应该是:

With the lack of bracketing, your return will always execute as it is not part of the if statement. It should be:

if (message.channel instanceof Discord.DMChannel) {
    message.channel.send("``Beep boop! Sorry, I can't respond to direct messages, but you can join the AKAS Gamer's Discord group here: https://discord.gg/QkjQNAr``");
    return
}

C 风格语言中的常见建议是永远不要省略括号.进入那个练习.虽然从技术上讲,单语句条件是允许的,但正如您在此处看到的那样,它稍后会引起头痛.

Common recommendation in C-style languages is to never omit the brackets. Get into that practice. While it is technically allowable for single statement conditionals, it will cause headaches later as you've seen here.

这篇关于我的 Discord.js 机器人正在运行(在线并在控制台中显示)但它不会响应命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆