【问题标题】:Discord bot token resetting itselfDiscord 机器人令牌自行重置
【发布时间】:2019-09-29 14:30:06
【问题描述】:

我收到了来自 discord 的关注消息,他们不断重置我的机器人令牌。任何可能出现问题的帮助。

您的机器人 TEST 似乎在短时间内连接到 Discord 超过 1000 次。由于这种行为通常是错误导致的,因此我们已着手重置您的机器人令牌。

【问题讨论】:

  • 也许提供使用的代码,以便有人可以调试问题。
  • 这里是代码 [链接] (pastebin.com/nr0wSpSm)
  • 您能解释一下您要完成的工作吗?似乎您正在实例化许多不和谐客户端并尝试登录所有客户端。您只需要创建一个 Discord 客户端,并且只需登录一次。另外,您能否将代码直接粘贴到问题正文中,而不是粘贴到 pastebin 中?
  • @Gruntzy,代码太大,不适合问题正文。
  • 你能解释一下你的机器人应该用你的 start 方法和你的 client.on("message", ... ) 做什么吗?您的代码每次处理消息时都会创建一个新客户端,这是不必要的。

标签: node.js discord discord.js


【解决方案1】:

在你的消息事件中

client.on('message', async msg => {
    msg.content = filter(msg.content)

    let channelid1 = 'xxxx' //
    let channelid2 = 'xx' //

    if (msg.channel.id == channelid1 && msg.author.id != client.user.id) {
        let attach = msg.attachments.array()
        let test = getUrls(msg.content);
        let arr = Array.from(test);
        let emojiname = ''

        if (msg.content.startsWith("<:uparrow:")) {
            emojiname = 'uparrow'
        } else if (msg.content.startsWith("<:downarrow:")) {
            emojiname = 'downarrow'
        }

        let name = msg.guild.emojis.find(emoji => emoji.name == emojiname);
        let embed = new Discord.RichEmbed()
            .setDescription(msg.content)
            .setColor('#A9A9A9')

        if (name) {
            start("Bot token xxxxx", 'Landing Discord channel ID xxx', embed, name)
        } else {
            start("Bot token xxxxx", 'Landing Discord channel ID xxx', embed)
        }

        if(arr.length > 0){
        for(let i in arr){
         start("Bot token xxxxx", 'Landing Discord channel ID xxx', arr[i])
         }
        }

        if (attach.length > 0) {
            start("Bot token xxxxx", 'Landing Discord channel ID xxx', attach[0].url)
        }
client.login('Client token xxxx') //
}

您需要删除调用登录功能

client.login('Client token xxxx')

因为您不希望每次触发事件时您的机器人都重新登录。

【讨论】:

  • 我试过了。注释掉 //client.login(token) Bot 上线但不转发消息。恢复回来,消息开始出现。可能我需要别的东西
  • 我的错,你有两个client.login,删除第二个看起来像这样的client.login('Client token xxxx')
  • 第一个是client.login(token),第二个是提到实际令牌ID的地方client.login('11111111')。如果我删除第二个,那么机器人将无法登录。
【解决方案2】:

据我所知,每次触发事件时,它都会再次登录您的机器人。 Discord 识别出这一点,然后重置您的令牌。我建议删除

client.login('Client token xxxx') //

并将其排除在任何事件之外。你也应该删除

client.login(token)

【讨论】:

    猜你喜欢
    • 2020-07-08
    • 2018-05-06
    • 2021-10-06
    • 2021-08-14
    • 2019-12-14
    • 2019-08-10
    • 2021-01-01
    • 2021-04-15
    • 2021-04-19
    相关资源
    最近更新 更多