踢命令 DiscordJS v13
Kick Command DiscordJS v13
只要我的 args[0] 是一个角色和随机字母(不是用户),我就会不断出错。我该如何解决这个问题?或者我可以复制一些可以在 Kick 命令中使用的代码。在 Twitter 上联系我:KiseeIsHere(不是真的有必要,我只是添加更多文本,因为 stacklow 希望我添加更多详细信息。)
module.exports.run = async (client, message, args) => {
const { MessageEmbed } = require('discord.js');
if (!message.member.permissions.has("KICK_MEMBERS")) return message.channel.send("You don't have permission to kick people");
if (!message.guild.me.permissions.has("KICK_MEMBERS")) return message.channel.send("I don't have permission to kick people.");
if (!args[0]) return message.channel.send("Specify a member.");
let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(x => x.user.username.toLowerCase() === args.slice(0).join(" ") || x.user.username === args[0]);
if(member.id == client.user.id){
return message.channel.send("I can't kick myself.")
}
if (message.member.roles.highest.comparePositionTo(message.mentions.members.first().roles.highest)<1) {
return message.channel.send("I have lower role.");
}
if (message.member.id === member.id) return message.channel.send("I can't kick you.");
if (message.mentions.roles) {
return;
}
var args2 = args.slice(1).join(" ");
if(!args2)
{
var args2 = "No reason provided.";
}
await member.kick({ reason : `${args2}`})
const embed = new MessageEmbed()
.setTitle("Member Kicked")
.setDescription(`> ${member} just got kicked.`)
.setColor('#00ff00')
.setFooter(`Requested by ${message.author.username}`)
.setTimestamp();
message.channel.send({ embeds: [embed] })
}
module.exports.config = {
name: "kick",
aliases: []
}
我在下面的命令中添加了一行代码,应该可以解决您的问题。
const {
MessageEmbed
} = require('discord.js');
module.exports.run = async (client, message, args) => {
if (!message.member.permissions.has("KICK_MEMBERS")) return message.channel.send("You don't have permission to kick people");
if (!message.guild.me.permissions.has("KICK_MEMBERS")) return message.channel.send("I don't have permission to kick people.");
if (!args[0]) return message.channel.send("Specify a member.");
let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(x => x.user.username.toLowerCase() === args.slice(0).join(" ") || x.user.username === args[0]);
// Just add the below line
if (!member) return message.channel.send("That was not a member.")
// If member doesn't return a member, then it will kill it
if (member.id == client.user.id) {
return message.channel.send("I can't kick myself.")
}
if (message.member.roles.highest.comparePositionTo(message.mentions.members.first().roles.highest) < 1) {
return message.channel.send("I have lower role.");
}
if (message.member.id === member.id) return message.channel.send("I can't kick you.");
if (message.mentions.roles) {
return;
}
var args2 = args.slice(1).join(" ");
if (!args2) {
var args2 = "No reason provided.";
}
await member.kick({
reason: `${args2}`
})
const embed = new MessageEmbed()
.setTitle("Member Kicked")
.setDescription(`> ${member} just got kicked.`)
.setColor('#00ff00')
.setFooter(`Requested by ${message.author.username}`)
.setTimestamp();
message.channel.send({
embeds: [embed]
})
}
module.exports.config = {
name: "kick",
aliases: []
}
只要我的 args[0] 是一个角色和随机字母(不是用户),我就会不断出错。我该如何解决这个问题?或者我可以复制一些可以在 Kick 命令中使用的代码。在 Twitter 上联系我:KiseeIsHere(不是真的有必要,我只是添加更多文本,因为 stacklow 希望我添加更多详细信息。)
module.exports.run = async (client, message, args) => {
const { MessageEmbed } = require('discord.js');
if (!message.member.permissions.has("KICK_MEMBERS")) return message.channel.send("You don't have permission to kick people");
if (!message.guild.me.permissions.has("KICK_MEMBERS")) return message.channel.send("I don't have permission to kick people.");
if (!args[0]) return message.channel.send("Specify a member.");
let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(x => x.user.username.toLowerCase() === args.slice(0).join(" ") || x.user.username === args[0]);
if(member.id == client.user.id){
return message.channel.send("I can't kick myself.")
}
if (message.member.roles.highest.comparePositionTo(message.mentions.members.first().roles.highest)<1) {
return message.channel.send("I have lower role.");
}
if (message.member.id === member.id) return message.channel.send("I can't kick you.");
if (message.mentions.roles) {
return;
}
var args2 = args.slice(1).join(" ");
if(!args2)
{
var args2 = "No reason provided.";
}
await member.kick({ reason : `${args2}`})
const embed = new MessageEmbed()
.setTitle("Member Kicked")
.setDescription(`> ${member} just got kicked.`)
.setColor('#00ff00')
.setFooter(`Requested by ${message.author.username}`)
.setTimestamp();
message.channel.send({ embeds: [embed] })
}
module.exports.config = {
name: "kick",
aliases: []
}
我在下面的命令中添加了一行代码,应该可以解决您的问题。
const {
MessageEmbed
} = require('discord.js');
module.exports.run = async (client, message, args) => {
if (!message.member.permissions.has("KICK_MEMBERS")) return message.channel.send("You don't have permission to kick people");
if (!message.guild.me.permissions.has("KICK_MEMBERS")) return message.channel.send("I don't have permission to kick people.");
if (!args[0]) return message.channel.send("Specify a member.");
let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.guild.members.cache.find(x => x.user.username.toLowerCase() === args.slice(0).join(" ") || x.user.username === args[0]);
// Just add the below line
if (!member) return message.channel.send("That was not a member.")
// If member doesn't return a member, then it will kill it
if (member.id == client.user.id) {
return message.channel.send("I can't kick myself.")
}
if (message.member.roles.highest.comparePositionTo(message.mentions.members.first().roles.highest) < 1) {
return message.channel.send("I have lower role.");
}
if (message.member.id === member.id) return message.channel.send("I can't kick you.");
if (message.mentions.roles) {
return;
}
var args2 = args.slice(1).join(" ");
if (!args2) {
var args2 = "No reason provided.";
}
await member.kick({
reason: `${args2}`
})
const embed = new MessageEmbed()
.setTitle("Member Kicked")
.setDescription(`> ${member} just got kicked.`)
.setColor('#00ff00')
.setFooter(`Requested by ${message.author.username}`)
.setTimestamp();
message.channel.send({
embeds: [embed]
})
}
module.exports.config = {
name: "kick",
aliases: []
}