我一直在清理我的index.js文件,并决定我希望将help命令放在更实际的位置。唯一的问题:在页脚中有机器人的化身,但它带有TypeError: Cannot read property 'avatarURL' of null
//code in help.js
const Discord = require('discord.js');
const client = new Discord.Client();
var version = process.env.VERSION;
module.exports = {
name: 'help',
execute(message, args){
const Discord = require('discord.js');
const helpcommands = new Discord.RichEmbed()
.setTitle('Akasuki Command List')
.addField('Info Commands', 'userinfo, version, ping, invite, avatar')
.addField('Moderation Commands', 'kick, ban, clear')
.addField('Fun Commands', 'samwise, say')
.setColor(0xFF8AFF)
.setFooter(`Akasuki ${version}`, client.user.avatarURL)
message.channel.send(helpcommands);
}
}
//code in index.js
if (command === 'help') {
client.commands.get('help').execute(message, args);
}
我还想知道是否有一种方法可以一次导出多个命令,还是必须一次一个地导出所有命令?
如果有人可以帮助我解决此错误,我将非常感谢<3感谢您检查此错误。
答案 0 :(得分:0)
我一直在清理我的index.js文件,并决定我希望将help命令放在更实际的位置。唯一的问题:在页脚中有机器人的头像,但出现TypeError:无法读取null的属性'avatarURL'
错误TypeError: Cannot read property 'avatarURL' of null
已清除。就是说,您正在尝试访问null的对象的属性。
要调试此错误,您可以尝试记录有关对象:console.log(client.user)
;如果出现null
,可能是由于未使用Discord.js客户端登录。
根据您的代码,您似乎尚未登录Discord.js的Client实例。我建议您检出login方法,这是您要用来登录Discord的方法。您想先登录Discord,然后再访问客户的用户属性。
另外,要查看或创建您的机器人应用程序,visit your Discord applications。
我还想知道是否有一种方法可以一次导出多个命令,还是必须一次一个地导出所有命令?
导出乘法命令的简单方法是使用数组。您可以像这样定义和导出多个命令:
module.exports = [
{
// command 1 ...
},
{
// command 2 ...
]
];
然后您可以使用循环访问它们。