在 Discordjs 中创建一个命令,仅当成员是管理员时才执行
Make a command in Discordjs that only executes if the member is admin
我只想为管理员创建一个命令。
//comando nick
if(comando === 'nick'){
if (message.author.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!');
else{
if(args == ''){
message.channel.send(`my message`);
}
else{
message.guild.members.cache.get(client.user.id).setNickname(`${args}`);
message.channel.send(`my message`);
}
}
}
但我遇到了这个问题:
if (message.author.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!');
TypeError: Cannot read properties of undefined (reading 'has')
我在 Discord Js 文档中使用了这段代码,但没有用
permissions
在类型 User
which is what Message#author
returns. Use Message#member
which returns a GuildMember
上不存在
if (message.member.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!')
另请注意,您使用的逻辑 NOT 运算符 (!
) 有误。将其放在 if
语句的开头而不是作为权限(!Permissions.STAGE_MODERATOR
是 false
)
if (!message.member.permissions.has(Permissions.STAGE_MODERATOR)) return message.reply('No Perms!')
我只想为管理员创建一个命令。
//comando nick
if(comando === 'nick'){
if (message.author.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!');
else{
if(args == ''){
message.channel.send(`my message`);
}
else{
message.guild.members.cache.get(client.user.id).setNickname(`${args}`);
message.channel.send(`my message`);
}
}
}
但我遇到了这个问题:
if (message.author.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!');
TypeError: Cannot read properties of undefined (reading 'has')
我在 Discord Js 文档中使用了这段代码,但没有用
permissions
在类型 User
which is what Message#author
returns. Use Message#member
which returns a GuildMember
if (message.member.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!')
另请注意,您使用的逻辑 NOT 运算符 (!
) 有误。将其放在 if
语句的开头而不是作为权限(!Permissions.STAGE_MODERATOR
是 false
)
if (!message.member.permissions.has(Permissions.STAGE_MODERATOR)) return message.reply('No Perms!')