Skip to content
Advertisement

discord.js “TypeError: fn is not a function”

So I started getting this “TypeError: fn is not a function” after I added the if-else statement to the code

module.exports = {
    name: `verify`,
    description: "Verification part of bot",
    execute (client, message, args){
        let { channel, content, member } = message
        let timeout;

        const verified = message.guild.roles.cache.find(r => r.name === "Verified");
        const notverified = message.guild.roles.cache.find(r => r.name === "Not Verified");
        const rolemember = message.guild.roles.cache.find(r => r.name === "Member");

      if(message.member.roles.cache.some(notverified)){ 
        
       message.delete({timeout: 100})
        message.member.roles.remove(notverified)
        message.member.roles.add(verified) 
        message.member.roles.add(rolemember)
     
        message.channel.send(`${member}You have been successfully verified!`);


        message.channel.send(`Type to verify yourself!`);


       } else {
          message.delete({timeout: 100})
          message.channel.send("You have already been verified!");
          message.delete({timeout: 1000})
          message.member.roles.add(role).catch(console.error);

       }
      }
    };

Thats the code I have and my error is

if (fn(val, key, this))
                ^

TypeError: fn is not a function

Thank you to anyone that is able to help me find a fix for this.

Advertisement

Answer

It’s because .some() accepts a callback function only but notverified is a Role or a falsy value.

Instead of .some(), you could use .has() to check if the user has the notverified role:

if(message.member.roles.cache.has(notverified.id)) {}
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement