如何将消息发送到命令中的通道?

时间:2020-10-07 16:02:02

标签: javascript node.js discord.js

我正在尝试向config.LOG_CHANNEL内部的通道ID发送消息 当我运行ping命令时,我未记录const通道wich,因此,client.channels.cache为空

module.exports = {
    name: 'ping',
    description: 'This is a ping command!',
    execute(message, args) {
        message.channel.send('Pong');
        const fs = require('fs');
        const Discord = require('discord.js');
        const client = new Discord.Client();

        let config = JSON.parse(fs.readFileSync("./config.json"));

        const channel = client.channels.cache.get(config.LOG_CHANNEL);
        console.log(channel);
        console.log(client.channels.cache);
    }
}

这是我的控制台输出:

undefined
Collection [Map] {}

2 个答案:

答案 0 :(得分:1)

频道ID是雪花ID吗?如果它仍然带有#或<>符号,则将无法获得您的频道。 例如。

        var channelID = config.LOG_CHANNEL.replace(/<|#|>/g, "") //strip snowflake id to reference channel directly
        var channel1 = message.guild.channels.cache.get(channelID)

答案 1 :(得分:0)

似乎未缓存频道。 尝试使用此:

client.channels.fetch(config.LOG_CHANNEL);