Discord.js 尝试仅为管理员创建kick功能

Discord.js 尝试仅为管理员创建kick功能,discord.js,Discord.js,我正在尝试创建一个kick功能,如果AdminRole类型/kick@user,它就会踢他们,但是如果MemberRole中的某个人试图说/kick@user它会回复对不起,你没有使用此功能的权限 client.on("message", (message) => { if (message.content.startsWith("/kick")) //checking if user is an admin role if (message.member.roles.

我正在尝试创建一个
kick
功能,如果AdminRole类型
/kick
@user,它就会踢他们,但是如果MemberRole中的某个人试图说
/kick@user
它会回复
对不起,你没有使用此功能的权限

client.on("message", (message) => 
{
if (message.content.startsWith("/kick")) 
    //checking if user is an admin role
    if (message.member.roles.find('AdminRole'))
        {
            var member= message.mentions.members.first();
             // Kick
    member.kick().then((member) => {
        // Successmessage
        message.channel.send(":wave: " + member.displayName + " has been successfully kicked :point_right: ");
    }).catch(() => {
         // Failmessage
        message.channel.send("Sorry, command failed");
    });
}

  if (message.member.roles.find('MemberRole'))
    {
        message.reply("Sorry, you don't have permissions to use this!");
    }
}))

这是它抛出的错误,请记住,它只在有人键入
/kick
命令时抛出此错误,而不考虑角色

如果
(typeof value==“undefined”)
抛出新错误
(“必须指定值”)
; ^

错误:必须指定值。 在Map.find(/Users/MainUser/Desktop/bot/node_modules/discord.js/src/util/Collection.js:499:45) 在Client.Client.on(/Users/MainUser/Desktop/bot/index.js:12:34) 在Client.emit(events.js:198:13) 在MessageCreateHandler.handle(/Users/MainUser/Desktop/bot/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34) 在WebSocketPacketManager.handle(/Users/MainUser/Desktop/bot/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:105:65) 在WebSocketConnection.onPacket(/Users/MainUser/Desktop/bot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35) 在WebSocketConnection.onMessage(/Users/MainUser/Desktop/bot/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17) 在WebSocket.onMessage(/Users/MainUser/Desktop/bot/node_modules/ws/lib/event target.js:120:16) 在WebSocket.emit(events.js:198:13) 在Receiver.receiverOnMessage(/Users/MainUser/Desktop/bot/node_modules/ws/lib/websocket.js:789:20)


您的错误来自您当前使用的

不正确:
集合。查找('property')

不推荐使用:
集合。查找('property','value')

正确:
Collection.find(element=>element.property==value)

const prefix='/';
client.on('message',异步消息=>{
如果(!message.content.startsWith(prefix)| | message.author.bot)返回;
const[cmd,…args]=message.content.trim().slice(前缀.length).split(/\s+/g);
开关(cmd.toLowerCase()){
“踢”一案:
试一试{
如果(!message.guild)返回wait message.channel.send(“:x:Guilds only.”);
如果(!message.member.roles.find(r=>r.name==='Admin'))返回wait message.channel.send(':x:No permission');
如果(!args[1]| |!message.indications.members.first())返回wait message.channel.send(“:x:未提供成员”);
const toKick=message.indications.members.first();
const reason=args.slice(2).join(“”)| |“无原因”;
如果(!toKick.kickable | | toKick.roles.find(r=>r.name=='Admin'))返回wait message.channel.send(':x:无权限');
等待托克。踢(理由);
wait message.channel.send(`:wave:${toKick.user.displayName}已被踢出。`);
}捕捉(错误){
控制台错误(err);
}
打破
}
});

您的错误来自您当前使用的

不正确:
集合。查找('property')

不推荐使用:
集合。查找('property','value')

正确:
Collection.find(element=>element.property==value)

const prefix='/';
client.on('message',异步消息=>{
如果(!message.content.startsWith(prefix)| | message.author.bot)返回;
const[cmd,…args]=message.content.trim().slice(前缀.length).split(/\s+/g);
开关(cmd.toLowerCase()){
“踢”一案:
试一试{
如果(!message.guild)返回wait message.channel.send(“:x:Guilds only.”);
如果(!message.member.roles.find(r=>r.name==='Admin'))返回wait message.channel.send(':x:No permission');
如果(!args[1]| |!message.indications.members.first())返回wait message.channel.send(“:x:未提供成员”);
const toKick=message.indications.members.first();
const reason=args.slice(2).join(“”)| |“无原因”;
如果(!toKick.kickable | | toKick.roles.find(r=>r.name=='Admin'))返回wait message.channel.send(':x:无权限');
等待托克。踢(理由);
wait message.channel.send(`:wave:${toKick.user.displayName}已被踢出。`);
}捕捉(错误){
控制台错误(err);
}
打破
}
});