问题描述
所以,有一天我使用 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.