编辑:我只需要让客户通过
这是我在其自己的文件中编写的代码
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
,则会给我同样的错误
答案 0 :(得分:1)
这里的问题是bot
是new Discord.Client();
您应该做的是将客户端对象从index.js文件传递到命令文件,并使用该对象来设置其活动。
或者,您也可以使用message.client
获取客户端,因此您的代码应类似于:
message.client.user.setActivity(...);