0

I'm making a "Give Tag To All Users" Command

But i get "Missing Permissions" error. When I get this error, I want to skip the process. How do i

Here Is My Code

let member = message.guild.members.cache.array()

for(var i = 0 ; i < member.length ; i++) {

  require("util").promisify(setTimeout)(1000);
  member[i].setNickname(`${tag} ${member[i].user.username}`)

  };
Alpha
  • 172
  • 1
  • 6

1 Answers1

0

just add a permission check

const promised = require("util").promisfy(setTimeout);
if(message.guild.me.hasPermission("MANAGE_NICKNAMES")){
  for(var i = 0 ; i < member.length; i++) 
    require("util").promisify(setTimeout)(1000);
    member[i].setNickname(`${tag} ${member[i].user.username}`)
  };
}

Not sure what require("util").promisify(setTimeout)(1000) does, did you intend for it to wait 1 second? It doesn't wait 1000 ms since you arent using await or .then

Also since the first argument is the callback instead of the last it might be a bit dysfunctional

relevant comment: https://stackoverflow.com/a/51796168/13429955

An alternative is:

setTimeout(() => member[i].setNickname(`${tag} ${member[i].user.username}`), 1000);