我使用的是discord.js,我在做一个ban命令的时候出现了这个错误。UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'calculatedPosition' of undefined
我的代码是:
let banUser = message.guild.member(message.mentions.users.first())
let bannerHighRole = message.member.highestRole.calculatedPosition;
let getBannedHighRole = banUser.highestRole.calculatedPosition;
if (bannerHighRole < getBannedHighRole) return message.reply("You cannot ban users that have higher roles than you!")
if (bannerHighRole = getBannedHighRole) return message.reply("You cannot ban users that have same highest role!")
如何解决这个错误?
这必须是v11或更早的代码,检查文档以更新你的其他代码,但无论如何。
他们修改了很多camelCase函数,比如: fetchMessages
到诸如 messages.fetch
,可能会对你有用。
// you can use message.mentions.members instead of converting a user
let banUser = message.mentions.members.first();
let bannerHighRole = message.member.roles.highest.position;
let getBannedHighRole = banUser.roles.highest.position;
if (bannerHighRole < getBannedHighRole) return message.reply("You cannot ban users that have higher roles than you!");
//you had x = y, which is an assignment
if (bannerHighRole === getBannedHighRole) return message.reply("You cannot ban users that have same highest role!");
也看到了完整的代码,你应该在计算所有这些之前,可能会检查用户是否有modadmin。