首页 > 解决方案 > 尝试将消息发送到特定频道,但无法定义我的客户端

问题描述

我有一个命令可以清除一组现在可以正常工作的消息,但我试图让机器人向日志通道发送一条消息,告诉模组和管理员,删除了多少消息以及谁删除了它们。这是来自 clear 文件的所有代码:

module.exports = {
name: 'clear',
description: "clears messages",
async execute(message, args){
    if(message.member.roles.cache.has('802911784892760074')){//If mod
        if(!args[0]) return message.reply('Enter amount');
        if(isNaN(args[0])) return message.reply('Enter amount');

        if(args[0] > 100) return message.reply('To high');
        if(args[0] < 1) return message.reply('To low');

        await message.channel.messages.fetch({limit: args[0]}).then(messages =>{
            message.channel.bulkDelete(messages);
            
            client.channels.cache.get('799292569825443860').send(`${message.author} has cleared ${args} messages!`)
        });
    }
}

这是似乎不起作用的代码行:

client.channels.cache.get('799292569825443860').send(`${message.author} has cleared ${args} messages!`)

命令提示符说没有定义客户端,但是我在主js文件中定义了客户端。

const client = new Discord.Client();

我对此还是很陌生,我可能只是缺少一些非常基本的东西。(如果这个问题对于那些理解的人来说是愚蠢的,我很抱歉)任何帮助都会很棒,因为我似乎在这里遇到了障碍。

标签: javascriptnode.jsdiscord.js

解决方案


client不会只是神奇地出现在您的命令文件中。您需要client作为参数传递:

async execute(message, args, client){
  // ...

并在main.js

commands.get('clear').execute(message, args, client)

推荐阅读