我正在尝试发出更改机器人活动的命令

时间:2020-07-28 09:13:13

标签: javascript discord discord.js

编辑:我只需要让客户通过

这是我在其自己的文件中编写的代码

const Discord = require("discord.js");
const bot= new Discord.Client();
module.exports = {
    name: 'set' ,
    execute(message, args){
        if(message.member.hasPermission("MANAGE_GUILD"))
        {
            if (args[2]==='picture')
                {const image=message.attachments.first().url;
                bot.user.setAvatar(image);}
            else if (args[2]==='activity')
            {
                let initial = message.content ;
                initial= initial.replace('asb set activity','').replace(args[3],'');
                bot.user.setActivity(initial, { type: args[3] });
            }
            else
                message.reply('invalid command');
        }
        else
            return message.reply('You can use this command only if u have permisions to manage the server');
    }
}

这是错误

 bot.user.setActivity(initial, { type: args[3] });
                         ^

TypeError: Cannot read property 'setActivity' of null

如果我删除了bot客户端并使用client.message,则会给我同样的错误

1 个答案:

答案 0 :(得分:1)

这里的问题是botnew Discord.Client();

您应该做的是将客户端对象从index.js文件传递到命令文件,并使用该对象来设置其活动。 或者,您也可以使用message.client获取客户端,因此您的代码应类似于:

message.client.user.setActivity(...);