discord bot ban/kick 命令无效
discord bot ban/kick command is not working
我发出了禁止和踢出命令,但我使用了然后我的机器人崩溃并出现错误 [message.guild.member 不是函数]
这是我的禁止命令代码
if (message.content.startsWith(prefix + 'ban')) {
const user = message.mentions.users.first();
if (user) {
if (message.member.hasPermission('BAN_MEMBERS')) {
message.guild.member(user).ban('Vous avez été ban par un admin').then(() => {
message.channel.send(`${user.username} a été ban !`);
}
).catch(err => {
console.log(err);
}
);
} else {
message.channel.send('Vous n\'avez pas la permission de ban !');
}
} else {
message.channel.send('Vous devez mentionner un utilisateur !');
}
}
});
这是我的 kick 命令代码
client.on('message', message => {
if (message.content.startsWith(prefix + 'kick')) {
const user = message.mentions.users.first();
if (user) {
const member = message.guild.member(user);
if (member) {
if (message.member.hasPermission('KICK_MEMBERS')) {
member.kick('Vous avez été kick par un admin').then(() => {
message.reply(`${user.tag} a été kick !`);
}).catch(err => {
message.reply('Je ne peux pas kick cet utilisateur !');
console.log(err);
});
} else {
message.reply('Vous n\'avez pas la permission de kick !');
}
} else {
message.reply('Cet utilisateur n\'est pas dans le serveur !');
}
} else {
message.reply('Vous devez mentionner un utilisateur !');
}
}
});
这样做:
message.guild.members.cache.get(user).ban()
message.guild.members.cache.get(user).kick()
将权限行更改为此...
message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)
将禁止行更改为此...
user.ban({ reason:'Vous avez été ban par un admin' })
.then(() => {
message.channel.send(`${user.username} a été ban !`);
}
client.on('messageCreate', async (message) => { //since you're using v13, *message* is deprecated. So you need to change it to *messageCreate*
if(message.content.startsWith(prefix + "kick")) { //You can do ${prefix}kick too.
if(!message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) return message.reply("You can't use this command") //This line code is for when the member using this command. It will return when permissions isn't detected.
if(!message.guild.me.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) return message.reply("I can't use this command.") //This is for when the bot missing its permissions.
const member = message.mentions.members.first(); //users is not going to work.
if(!member) return message.reply("Who are you going to kick?") //This line code is for when the member didn't find or pinged.
if(!member.bannable) return message.reply("I can't ban this person") // This is for the person that is not bannable.
await member.ban({ reason: 'Your reply'}) //You need to await, so it can fetch the member.
}
})
您也可以使用他们的 ID 来禁止使用
const member = message.mentions.members.first() || message.guild.members.fetch(args[0]) || message.guild.members.cache.get(args[0])
您也可以添加自己使用的原因
const reason = args.slice(1).join(" ")
member.ban({
reason: reason
})
并使用嵌入
const reason = args.slice(1).join(" ")
member.ban({
reason: reason
})
const embed = new MessageEmbed()
.setDescription(`${reason}`)
.setColor('RANDOM')
message.channel.send({embeds: [embed]})
除了代码行,为了防止任何错误,您可以使用||
。例如:
const reason = args.slice(1).join(" ") || "No Reason" //This is to prevent any errors for your embed
是的,您还可以使用 ===
来防止您不小心 ping 自己时出现错误。
if(!member.id === message.author.id) return message.reply("your_message");
您需要在 args
行
之前添加此代码行
const args = message.content.trim().split(/ +/g);
所以应该是这样
const args = message.content.trim().split(/ +/g);
const reason = args.slice(1).join(" ") || "No Reason"
我发出了禁止和踢出命令,但我使用了然后我的机器人崩溃并出现错误 [message.guild.member 不是函数]
这是我的禁止命令代码
if (message.content.startsWith(prefix + 'ban')) {
const user = message.mentions.users.first();
if (user) {
if (message.member.hasPermission('BAN_MEMBERS')) {
message.guild.member(user).ban('Vous avez été ban par un admin').then(() => {
message.channel.send(`${user.username} a été ban !`);
}
).catch(err => {
console.log(err);
}
);
} else {
message.channel.send('Vous n\'avez pas la permission de ban !');
}
} else {
message.channel.send('Vous devez mentionner un utilisateur !');
}
}
});
这是我的 kick 命令代码
client.on('message', message => {
if (message.content.startsWith(prefix + 'kick')) {
const user = message.mentions.users.first();
if (user) {
const member = message.guild.member(user);
if (member) {
if (message.member.hasPermission('KICK_MEMBERS')) {
member.kick('Vous avez été kick par un admin').then(() => {
message.reply(`${user.tag} a été kick !`);
}).catch(err => {
message.reply('Je ne peux pas kick cet utilisateur !');
console.log(err);
});
} else {
message.reply('Vous n\'avez pas la permission de kick !');
}
} else {
message.reply('Cet utilisateur n\'est pas dans le serveur !');
}
} else {
message.reply('Vous devez mentionner un utilisateur !');
}
}
});
这样做:
message.guild.members.cache.get(user).ban()
message.guild.members.cache.get(user).kick()
将权限行更改为此...
message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)
将禁止行更改为此...
user.ban({ reason:'Vous avez été ban par un admin' })
.then(() => {
message.channel.send(`${user.username} a été ban !`);
}
client.on('messageCreate', async (message) => { //since you're using v13, *message* is deprecated. So you need to change it to *messageCreate*
if(message.content.startsWith(prefix + "kick")) { //You can do ${prefix}kick too.
if(!message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) return message.reply("You can't use this command") //This line code is for when the member using this command. It will return when permissions isn't detected.
if(!message.guild.me.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) return message.reply("I can't use this command.") //This is for when the bot missing its permissions.
const member = message.mentions.members.first(); //users is not going to work.
if(!member) return message.reply("Who are you going to kick?") //This line code is for when the member didn't find or pinged.
if(!member.bannable) return message.reply("I can't ban this person") // This is for the person that is not bannable.
await member.ban({ reason: 'Your reply'}) //You need to await, so it can fetch the member.
}
})
您也可以使用他们的 ID 来禁止使用
const member = message.mentions.members.first() || message.guild.members.fetch(args[0]) || message.guild.members.cache.get(args[0])
您也可以添加自己使用的原因
const reason = args.slice(1).join(" ")
member.ban({
reason: reason
})
并使用嵌入
const reason = args.slice(1).join(" ")
member.ban({
reason: reason
})
const embed = new MessageEmbed()
.setDescription(`${reason}`)
.setColor('RANDOM')
message.channel.send({embeds: [embed]})
除了代码行,为了防止任何错误,您可以使用||
。例如:
const reason = args.slice(1).join(" ") || "No Reason" //This is to prevent any errors for your embed
是的,您还可以使用 ===
来防止您不小心 ping 自己时出现错误。
if(!member.id === message.author.id) return message.reply("your_message");
您需要在 args
行
const args = message.content.trim().split(/ +/g);
所以应该是这样
const args = message.content.trim().split(/ +/g);
const reason = args.slice(1).join(" ") || "No Reason"