【问题标题】:My bot keeps restarting with this error: GUILD_CHANNEL_RESOLVE?我的机器人不断重启并出现此错误:GUILD_CHANNEL_RESOLVE?
【发布时间】:2022-02-15 22:41:04
【问题描述】:

在过去的几天里,机器人总是在 01:02 每 24 小时重新启动一次,但今天我已经出现了 3 次错误,我不知道错误是如何发生的,我该如何解决它.

这是错误:

/home/container/node_modules/discord.js/src/structures/Message.js:651
    if (!channel) throw new Error('GUILD_CHANNEL_RESOLVE');
                        ^

Error [GUILD_CHANNEL_RESOLVE]: Could not resolve channel to a guild channel.
    at Message.fetchReference (/home/container/node_modules/discord.js/src/structures/Message.js:651:25)
    at Client.<anonymous> (/home/container/src/events/reply/reply.js:9:45)
    at Client.emit (node:events:532:35)
    at MessageCreateAction.handle (/home/container/node_modules/discord.js/src/client/actions/MessageCreate.js:26:14)
    at Object.module.exports [as MESSAGE_CREATE] (/home/container/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:351:31)
    at WebSocketShard.onPacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/home/container/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/home/container/node_modules/ws/lib/event-target.js:199:18)
    at WebSocket.emit (node:events:520:28) {
  [Symbol(code)]: 'GUILD_CHANNEL_RESOLVE'
}

我认为代码来自的代码: 我想用它来检查消息是否是回复,以及回复的消息是否来自特定的人

const client = require('../../index.js');
const { MessageEmbed } = require('discord.js');
const databese = require('../../database/enabled.json');
const fs = require('fs');

//Log ID: 780479980663603260
//Braxic Reply
client.on('messageCreate', async message => {
    if (message.reference && (await message.fetchReference())?.author.id == '442479859801784320'){
        //Check if the person is allowed to ping
        if(!message.guild) return;
        if(message.author.bot) return;
        const banList = require('../../database/enabled.json').botBanList;
        if(banList.includes(message.author.id)) return;
        //Message in Chat
        message.channel.send(`<@${message.author.id}> Bitte nicht die YouTuber pingen.`)
        message.delete()
    }
})

也许有人可以帮助我,或者给我发一个代码 sn-p 来解决这个问题

【问题讨论】:

  • 我不完全明白您想在这里做什么if (message.reference &amp;&amp; (await message.fetchReference())?.author.id == '442479859801784320'),您是否要检查来自message.reference 和message.fetchReference 的author.id?
  • 我想用它来检查消息是否是回复以及回复的消息是否来自特定的人@19mike95
  • 因为没有通道而抛出错误;您应该发布整个代码或至少相关部分!
  • 我发送了整个代码,我还应该发送什么?消息创建?我怀疑这与它有什么关系@dcolazin
  • 抱歉,堆栈跟踪不是最好的。

标签: node.js discord.js


【解决方案1】:

虽然我不确定我认为您的线路if (message.reference &amp;&amp; (await message.fetchReference())?.author.id == '442479859801784320') 有问题。如果有 message.fetchReference() 这意味着它是一个回复,对吧?如果是这样,您可以尝试下面的代码。 我真的不知道这是否可行,但请尝试一下:

client.on('messageCreate', async message => {
    message.fetchReference().then(msg => 
    if (msg.author.id=='442479859801784320'){
        //Check if the person is allowed to ping
        if(!message.guild) return;
        if(message.author.bot) return;
        const banList = require('../../database/enabled.json').botBanList;
        if(banList.includes(message.author.id)) return;
        //Message in Chat
        message.channel.send(`<@${message.author.id}> Bitte nicht die YouTuber pingen.`)
        message.delete()
    
    }
    )
})

【讨论】:

  • 那么我们就有了这个问题: if (!this.reference) throw new Error('MESSAGE_REFERENCE_MISSING'); ^ 错误 [MESSAGE_REFERENCE_MISSING]:该消息未引用另一条消息
【解决方案2】:

我检查了source code of discord.js(第 612 行),问题出在fetchReference(),它将“获取此交叉发布/回复/pin-add 引用的消息,如果客户端可用” .也许您正在尝试在您不可用的频道中阅读。

【讨论】:

  • 好的,我会检查我的机器人是否无法访问某些频道@dcolazin
猜你喜欢
  • 2020-08-29
  • 2022-12-07
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
  • 2022-07-17
  • 2019-05-12
  • 2019-10-06
  • 2020-09-17
相关资源
最近更新 更多