Не могу добавить и удалить роль - PullRequest
0 голосов
/ 10 марта 2019

Я работаю над диссон-ботом, и у меня проблема, которая поражает меня.
У меня есть система выравнивания с ролями, она отлично работает с ролью «участник», но затем возникают проблемы, это мой код:

var member = msg.guild.roles.find(role => role.name === 'member')
var Lurker = msg.guild.roles.find(role => role.name === 'Lurker')
var Shy = msg.guild.roles.find(role => role.name === 'Shy')
if (msg.member.roles.find(role => role.name === 'member')) {

 if (profile.xp + 35 > 230) {
   let card = await jimp.read('https://i.imgur.com/mZD99TV.png')
   await dl.AddLevel(msg.author.id, 1)
   await dl.SetXp(msg.author.id, 0)

   jimp.read(msg.author.displayAvatarURL).then(avatar => {
     avatar.resize(180, 180)
     mask.resize(180, 180)
     avatar.mask(mask)
     card.print(font64, 470, 100, `Level UP!`)
     card.composite(avatar, 40, 50).write('LVLUP.png')
     client.channels.get('552975320131567638').send(``, {
       files: ["LVLUP.png"]
     })

     console.log('Image sent!')
   })

   msg.channel.send("Congratulations " + `<@` + msg.author.id + `>` + ` You've just advanced  level ${profile.level + 1}`)
 }
 if (profile.level + 1 == 6) {
   msg.member.addRole(Lurker)
 }
}

if (msg.member.roles.find(role => role.name === 'Lurker')) {

 if (profile.xp + 35 > 467) {
   let card = await jimp.read('https://i.imgur.com/mZD99TV.png')
   await dl.AddLevel(msg.author.id, 1)
   await dl.SetXp(msg.author.id, 0)

   jimp.read(msg.author.displayAvatarURL).then(avatar => {
     avatar.resize(180, 180)
     mask.resize(180, 180)
     avatar.mask(mask)
     card.print(font64, 470, 100, `Level UP!`)
     card.composite(avatar, 40, 50).write('LVLUP.png')
     client.channels.get('552975320131567638').send(``, {
       files: ["LVLUP.png"]
     })

     console.log('Image sent!')
   })

   msg.channel.send("Congratulations " + `<@` + msg.author.id + `>` + ` You've just advanced  level ${profile.level + 1}`)
 }

 if (profile.level + 1 == 11) {
   msg.member.addRole(Shy);
 }
}

Первый if (msg.member.roles.find(role => role.name === 'member')) отлично работает, но if (msg.member.roles.find(role => role.name === 'Lurker')) просто нет.
Бот не добавляет роль члену, и он посылает 2 сообщения «Уровень вверх» вместо 1. Я не могу понять, что не так, в логах ничего нет.

...