【发布时间】:2020-09-23 16:15:52
【问题描述】:
我正在尝试制作一个 Discord 机器人,它每 30 分钟或类似的时间向 Discord 上的指定文本频道发送特定消息(“!clean”)。我遇到了一堆问题,这是我遇到的最远的问题。 我收到此错误:
TypeError: Cannot read property 'find' of undefined
不,我自己没有编写任何代码……这是我第一次使用 JS。我复制了别人的代码并合并了。
- 我使用 Node 14.4.0
编辑:我想要做的就是制作一个简单的机器人,它会向特定的文本频道发送一条消息,该消息每 30 分钟为一次“!clean”。我的尝试都惨遭失败。
感谢您的帮助!
【问题讨论】:
-
我删除了您的代码图像,因为它包含您的机器人令牌。请在重新生成令牌后重新编辑您的代码。
-
第一:什么是 eris,第二:你的令牌暴露在你的截图中(编辑:不再),这意味着每个人都可以访问你的机器人,第三:如果你使用 discord.js >= v12 ,bot.channels.find 不再工作,第四:你有多个 bot.on(ready),第五:在 setInterval 的第 49 行,它说它每 5 秒发送一次,即使间隔是 10 秒,第六: 你是 console.warn()ing 错误
-
添加到@Diggy。说,对你的机器人令牌要非常谨慎。如果第一个发现这个的人是其他人,他们很容易接管你的机器人,让它做你不希望它做的各种事情。您可能还记得,在 Discord Developer 页面上生成机器人令牌时,它会提醒您小心使用它。现在你知道了,祝你好运!编辑:我强烈建议重新生成您的令牌,因为任何人都可以查看过去的编辑,其中包括您的屏幕截图和您的令牌。如果您不确定如何操作,我(可能还有其他人)将很乐意提供帮助。
-
另外需要注意的是:如果您尝试发送的消息“!clean”是为了触发另一个机器人,那么这很可能不起作用。大多数主流机器人不会响应其他机器人,作为一种安全措施并防止无限的消息循环或垃圾邮件。编辑:例如,想象两个机器人。一个有一个命令
.say,另一个有!say。两个命令都说后面的话。如果用户运行.say !say .say !say .say !say .say !say hello,那么将有八条机器人消息。如果用户将该消息写入 2000 个字符的限制,它可能会在很长一段时间内向服务器发送垃圾邮件。 -
重置你的令牌,你刚刚泄露了它
标签: javascript node.js bots discord eris