JavaScript Discord.js Level Roles

Dus11n

Newbie
Registriert
Juni 2021
Beiträge
1
Javascript:
  //level system

  bot.on('message', function(message){
    if(message.author.bot) return;
    var addXP = Math.floor(Math.random() * 5) + 1;

    if(!xpfile[message.author.id]){
      xpfile[message.author.id] = {
        xp: 0,
        level: 0,
        reqxp: 100
      }

      fs.writeFile("./xp.json",JSON.stringify(xpfile),function(err){
        if(err) console.log(err)
      })
    }

  xpfile[message.author.id].xp += addXP

  if(xpfile[message.author.id].xp > xpfile[message.author.id].reqxp){
    xpfile[message.author.id].xp -= xpfile[message.author.id].reqxp
    xpfile[message.author.id].reqxp *=1.5
    xpfile[message.author.id].reqxp = Math.floor(xpfile[message.author.id].reqxp)
    xpfile[message.author.id].level += 1

    message.reply("ist auf Level **"+ xpfile[message.author.id].level +"** aufgestiegen.")
  }


  fs.writeFile("./xp.json",JSON.stringify(xpfile),function(err){
    if(err) console.log(err)
 
  //level roles

let role = message.guild.roles.cache.find(r => r.name === 'TEST') ||  message.guild.roles.fetch('852878679318069258');

if(xpfile[message.author.id].level == 1)message.member.guild.roles.add(role);

  //rank command

  if(message.content.startsWith("fg!rank")){

    let user = message.mentions.users.first() || message.author

    if(!xpfile[user.id]) return message.channel.send("Dieser User hat noch keine XP gefarmt.")

    const rank = new Discord.MessageEmbed()

    .setTitle("**RANK**")
    .setColor("GREEN")
    .setAuthor(user.tag,user.avatarURL({dynamic:true}))
    .addField("Level: ",xpfile[user.id].level)
    .addField("XP: ",xpfile[user.id].xp +"/"+ xpfile[user.id].reqxp)

    message.channel.send(rank)
  }

    })

  })


Hey, ich versuche momentan in meinem Discord.js level System, Level Roles einzubauen. Also wenn man ein bestimmtes Level erreicht bekommt man eine bestimmte Role.
Leider funktioniert das ganze nicht, es kommt kein error aber der Bot added dem User die Role nicht.
Weiß jemand woran das liegt?
 
läuft das im browser?
was sagt die konsole?
kannst du anhand console.log() feststellen bis zu welcher zeile du kommst und ob die variablen die erwarteten werte haben?
 
Was passiert denn hier?
Javascript:
let role = message.guild.roles.cache.find(r => r.name === 'TEST') ||  message.guild.roles.fetch('852878679318069258');
Kommt da wirklich was zurück?
 
Zurück
Oben