gpt4 book ai didi

javascript - 踢球时的等级问题| Discord.js

转载 作者:行者123 更新时间:2023-12-02 22:16:29 25 4
gpt4 key购买 nike

我不知道如何解决此问题使用此代码时出现错误:

I can't kick that person due to role hierarchy.

即使很困难,我的机器人也高于我想要踢的人。导致此问题的原因是什么?


module.exports = {
name: 'kick',
description: 'Kick someone!',
alias: '',
access: 'Moderators',
command: '!kick',
execute(Discord, client, msg, args) {
msg.delete(5000);

if (!args[0]) {
return msg.reply("Please provide a person to kick.")
.then(m => m.delete(5000));
}
if (!args[1]) {
return msg.reply("Please provide a reason to kick.")
.then(m => m.delete(5000));
}
if (!msg.member.hasPermission("KICK_MEMBERS")) {
return msg.reply("❌ You need to be an **admin** or **moderator** to use this command.")
.then(m => m.delete(5000));
}
if (!msg.guild.me.hasPermission("KICK_MEMBERS")) {
return msg.reply("❌ I do not have permissions to kick members. Please contact a staff member")
.then(m => m.delete(5000));
}

var kUser = msg.mentions.users.first() || msg.guild.members.get(args[0]);

if (!kUser) {
return msg.reply("Couldn't find that member, try again")
.then(m => m.delete(5000));
}
if (kUser.id === msg.author.id) {
return msg.reply("You can't kick yourself...")
.then(m => m.delete(5000));
}
if (!kUser.kickable) {
return msg.reply("I can't kick that person due to role hierarchy.")
.then(m => m.delete(5000));
}

const embed = new RichEmbed()
.setColor("#ff0000")
.setThumbnail(kUser.user.displayAvatarURL)
.setFooter(msg.member.displayName, msg.author.displayAvatarURL)
.setTimestamp()
.setDescription(stripIndents`**> Kicked member:** ${kUser} (${kUser.id})
**> Kicked by:** ${msg.member} (${msg.member.id})
**> Reason:** ${args.slice(1).join(" ")}`);

const promptEmbed = new RichEmbed()
.setColor("GREEN")
.setAuthor(`This verification becomes invalid after 30s.`)
.setDescription(`Do you want to kick ${kUser}?`)

// Send the msg
msg.channel.send(promptEmbed).then(async msg => {
// Await the reactions and the reaction collector
const emoji = await promptmsg(msg, msg.author, 30, ["✅", "❌"]);

// The verification stuffs
if (emoji === "✅") {
msg.delete();

kUser.kick(args.slice(1).join(" "))
.catch(err => {
if (err) return msg.channel.send(`Well.... the kick didn't work out. Here's the error ${err}`)
});

} else if (emoji === "❌") {
msg.delete();

msg.reply(`Kick canceled.`)
.then(m => m.delete(10000));
}
});
}
};



const fs = require('fs');
const Discord = require("discord.js");
const client = new Discord.Client();

const {prefix, token} = require("./config/dependencies.json");

client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.name, command);
}

client.once('ready', () => {
console.log(`${client.user.username} is ready!`);
client.user.setActivity("m!", { type: 'LISTENING' })
});

client.on('message', msg => {

if (!msg.content.startsWith(prefix) || msg.author.bot) return;

const args = msg.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();

if (!client.commands.has(command)) return;

try {
client.commands.get(command).execute(Discord, client, msg, args);
} catch (error) {
console.error(error);
msg.reply(`That command does not exist ErrorID : &${Math.ceil(Math.random() * 10)}SE`);
}

});


client.login(token);


问题可能出在 KICK.JS 文件中,我在其中检查该人是否可踢,但我无法弄清楚原因。

谢谢!

最佳答案

正如我在这里看到的:

var kUser = msg.mentions.users.first() || msg.guild.members.get(args[0]);

您有时会使用 User 定义 kUser 变量:

var kUser = msg.mentions.users.first() // Returns a User object

有时还有成员:

var kUser = msg.guild.members.get(args[0]) // Returns a Member object

但是,kickable 属性仅在Member 对象上可用。您可以通过编辑此行轻松修复它:

var kUser = msg.mentions.members.first() || msg.guild.members.get(args[0]);

在所有情况下,它将返回一个 Member 对象。 (您还应该使用 kMember 重命名您的变量)

关于javascript - 踢球时的等级问题| Discord.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59369833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com