Discord 机器人类型错误。无法连接到我的服务器
Posted
技术标签:
【中文标题】Discord 机器人类型错误。无法连接到我的服务器【英文标题】:Discord bot TypeError. Can't connect it to my server 【发布时间】:2020-09-23 16:15:52 【问题描述】:我正在尝试制作一个 Discord 机器人,它每 30 分钟或类似的时间向 Discord 上的指定文本频道发送特定消息(“!clean”)。我遇到了一堆问题,这是我遇到的最远的问题。 我收到此错误:
TypeError: Cannot read property 'find' of undefined
这是我尝试启动机器人时发生的情况:
My Code
不,我自己没有编写任何代码……这是我第一次使用 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 个字符的限制,它可能会在很长一段时间内向服务器发送垃圾邮件。
重置你的令牌,你刚刚泄露了它
【参考方案1】:
有点晚了,但是在使用 Eris 时,您无法轻松地从客户端访问每个频道。您可以改用Client.getChannel(<ChannelID>)
。如果您必须过滤所有频道,您可以使用Client.channelGuildMap
,它返回 Guild ID 及其频道 ID 的对象。
如果 Channel ID 根据用户提供的内容发生变化,请务必检查 Channel 是否允许发送消息!
(请务必将Client
替换为您的机器人变量:>)
编辑:请记住这一点:机器人通常会故意忽略其他机器人帐户。为了安全起见,您必须自己制定自己的消息清除命令。如果此机器人在用户帐户而不是机器人帐户上运行,我会advise against that,因为您可能会被完全禁止使用 Discord。
【讨论】:
以上是关于Discord 机器人类型错误。无法连接到我的服务器的主要内容,如果未能解决你的问题,请参考以下文章
我的机器人没有抛出任何错误,但似乎无法连接到 Discord
为啥我的 Heroku Discord 机器人无法连接到端口后崩溃? [复制]