Псевдонимы всех участников на сервере discord

#javascript #discord #discord.js

Вопрос:

Я пытаюсь создать скрипт, который может давать псевдонимы всем людям на сервере discord, я бы хотел, чтобы он переименовывал всех участников, а не только активных, на данный момент у меня есть это

 module.exports.run = async (client, msg, args, config) => {
msg.delete();
const guild = client.guilds.get("888868333498290176");
    if(!msg.guild.me.hasPermission("MANAGE_NICKNAMES")) return console.log('Cette commande a besoin de permissions')
    await msg.guild.members.cache;
    let members = msg.guild.id

    if (args.join(" ").length > 32) return msg.reply('Le nom ne peut pas dépasser 32 caractères.')
    console.log('Modifier le surnom de '   members.length   ' member(s), attendez un moment.')
    for(let i = 0; i < members.length; i  ) {

        await members[i].setNickname(args.join(" "))
       
    }

    console.log('  [ ] Le surnom de tout le monde sur le serveur a été changé !'.green)

}
 

и эта ошибка

 C:UsersPCDesktopdiscord1140commandsnickall.js:12
        await members[i].setNickname(args.join(" "))
                         ^

TypeError: members[i].setNickname is not a function
 

Комментарии:

1. members это идентификатор гильдии. Это не массив участников. Это даже не массив вообще, это строка.

2. Также msg.guild.members.cache не возвращает обещание и не имеет никаких побочных эффектов, почему вы этого ждете?

Ответ №1:

  • Вы можете использовать forEach() и изменять псевдонимы для всех членов гильдии. Пример:
 try {
   message.guild.members.forEach((member) => {
      member.setNickname("nickname")
   })
} catch (error) {
   console.error(error)
   return message.channel.send(`Error changing nicknames: `${error}``)
} 
 

Комментарии:

1. спасибо, это сработало, но это не переименовывает всех людей