Привет!
Хочу сделать варн систему,но выдает ошибку.
Суть ошибки в том,что бот не распознает hasPermissions ,а это нужно чтобы проверить может ли человек,который дает команду боту сам банить/варнить/кикать . По крайне мере я так думал сделать,но что-то пошло не так.
spoilermodule.exports = {
name: "warn",
description: "Варн,если имеешь право.",
execute(client, message, args) {
if(!message.member.haspermissions("MANAGE_MEMBERS")) return message.reply("У Вас нету прав");
let wUser = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0])
if(!wUser) return message.reply("Не могу найти");
if(wUser.hasPermission("MANAGE_MESSAGES")) return message.reply("pl");
let reason = args.join(" ").slice(22);
if(!warns[wUser.id]) warns[wUser.id] = {
warns: 0
};
warns[wUser.id].warns++;
fs.writeFile("./warnings.json", JSON.stringify(warns), (err) => {
if (err) console.log(err)
});
let warnEmbed = new Discord.RichEmbed()
.setDescription("Warns")
.setAuthor(message.author.username)
.setColor("#fc6400")
.addField("Warned User", `<@${wUser.id}>`)
.addField("Warned In", message.channel)
.addField("Number of Warnings", warns[wUser.id].warns)
.addField("Reason", reason);
let warnchannel = message.guild.channels.find(`name`, "incidents");
if(!warnchannel) return message.reply("Не нашел канал");
warnchannel.send(warnEmbed);
if(warns[wUser.id].warns == 2){
let muterole = message.guild.roles.find(`name`, "muted");
if(!muterole) return message.reply("Нету роли с мутом.");
let mutetime = "10s";
await(wUser.addRole(muterole.id));
message.channel.send(`<@${wUser.id}> был замучен`);
setTimeout(function(){
wUser.removeRole(muterole.id)
message.reply(`<@${wUser.id}> был размучен.`)
}, ms(mutetime))
}
if(warns[wUser.id].warns == 3){
message.guild.member(wUser).ban(reason);
message.reply(`<@${wUser.id}> был забанен.`)
}
}
}
Это код самого warn.
warnings.json как я задумывал будет просто скапливать информацию
Как я думаю,нужно после
spoiler excute(client,messagemargs) {
добавить
spoiler const permissions = channel.permissionsFor(message.client.user)
или что-то такое,что будет ссылаться на канал.Возможно стоило писать не
spoiler .haspermissionsFor а permissions.has
если это что-то меняет,но я не знаю.Я запутался,помогите кто может.Спасибо