Задать вопрос
Sonada
@Sonada

Как сделать, чтобы дискорд бот банил по команде?

Как сделать, чтобы бот банил по команде? Например, я ввожу команду :ban @участник#1234 Время Причина, и он его забанил.
  • Вопрос задан
  • 12548 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
fgvnovoross
@fgvnovoross
Тут нужны аргументы!
var prefix = ":";

client.on("message", message => {
if(!message.guild) return; //чтобы команда не работала в личных сообщениях!
if(message.author === client.user) return; //чтобы бот не написал сам себе
if(!message.content.startsWith(":")) return; //иначе может начать работать с любым префиксом
const args = message.content.slice(prefix.length).trim().split(/ +/g); //вычисляем аргументы
        const command = args.shift().toLowerCase(); //отделяем аргументы от команды
if(command === "ban"){
if(!message.member.hasPermission("BAN_MEMBERS")) return (msg.reply("вы не имеете прав на использование этой команды"));
if(!message.guild.me.hasPermission("BAN_MEMBERS")) return (msg.reply("у меня нет права банить пользователей на этом сервере!"));
let member = message.mentions.members.first();
let arg = args[0];
if(!member) return (msg.reply("вы не указали пользователя!"));
if(!member = arg) return (msg.reply("неправильно введены данные!!"));
let reason = args.slice(1).join(" ");
if(reason) {
member.ban(reason).catch(err => console.log(err));
}else{
member.ban().catch(err => console.log(err));
}
}
});


Фух! Вроде-бы ошибок не должно быть! К сожалению тут без времени, только причина. Просто сам не знаю как время сделать. Если будут ошибки - пиши:
fgvnovoross#3014
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
webdisigner
@webdisigner
Даешь команду fas:@nickname(причины)
Ответ написан
Комментировать
@Artem2046
К сожалению , есть ошибки( *по мойму*
Вот исправленный код :
var prefix = "!";

client.on("message", message => {
if(!message.guild) return; //чтобы команда не работала в личных сообщениях!
if(message.author === client.user) return; //чтобы бот не написал сам себе
if(!message.content.startsWith("!")) return; //иначе может начать работать с любым префиксом
const args = message.content.slice(prefix.length).trim().split(/ +/g); //вычисляем аргументы
const command = args.shift().toLowerCase(); //отделяем аргументы от команды
if(command === "ban"){
if(!message.member.hasPermission("BAN_MEMBERS")) return (msg.reply("У вас нет прав для бана !"));
if(!message.guild.me.hasPermission("BAN_MEMBERS")) return (msg.reply("У меня нет прав бана !"));
let member = message.mentions.members.first();
let arg = args[0];
if(!member) return (msg.reply("Вы не написали ник !"));
if(!member ) arg; return (msg.reply("Вы ввели не те данные !"));
let reason = args.slice(1).join(" ");
if(reason) {
member.ban(reason).catch(err => console.log(err));
}else{
member.ban().catch(err => console.log(err));
}
}
});
Ответ написан
@AMOGUS7
куда это водить?var prefix = "!";

client.on("message", message => {
if(!message.guild) return; //чтобы команда не работала в личных сообщениях!
if(message.author === client.user) return; //чтобы бот не написал сам себе
if(!message.content.startsWith("!")) return; //иначе может начать работать с любым префиксом
const args = message.content.slice(prefix.length).trim().split(/ +/g); //вычисляем аргументы
const command = args.shift().toLowerCase(); //отделяем аргументы от команды
if(command === "ban"){
if(!message.member.hasPermission("BAN_MEMBERS")) return (msg.reply("У вас нет прав для бана !"));
if(!message.guild.me.hasPermission("BAN_MEMBERS")) return (msg.reply("У меня нет прав бана !"));
let member = message.mentions.members.first();
let arg = args[0];
if(!member) return (msg.reply("Вы не написали ник !"));
if(!member ) arg; return (msg.reply("Вы ввели не те данные !"));
let reason = args.slice(1).join(" ");
if(reason) {
member.ban(reason).catch(err => console.log(err));
}else{
member.ban().catch(err => console.log(err));
}
}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы