使用discord.js v12更改整个服务器的用户名

syqv5f0l  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(372)

我在更改discord服务器中每个人的用户名时遇到问题。我使用的是discord.jsv12,服务器上大约有20人。我是它的所有者,我的bot有管理员,但是bot只更改语音频道中用户的用户名。这是我的密码:

module.exports = {
    name: 'username',
    description: "Changes the whole server's usernames",
    execute(message, args, prefix, Discord, client) {
        let nick = message.content.slice((prefix + "username").length);
        if (!args[0]) {
            message.channel.send("You didn't specify what to change them to!");
        }
        else {
            message.guild.members.cache.forEach(r => {
                if (r.id == '855161030119129090') // This is to not change the username of the bot
                    return;
                r.setNickname(nick);
            });
            message.channel.send('Usernames changed.');
        }
    }
}
krugob8w

krugob8w1#

缓存中没有服务器中的所有成员,因此必须获取它们才能获取服务器的所有成员。您可以使用fetch方法来实现这一点。
下面是一个例子:

client.on("message", async (message) => {
    if (message.content.toLowerCase() === prefix + "username") {
    await message.guild.members.fetch(); // If you don't provide a parameter, it will fetch all the members

    // Rest of the code...
  }
});

相关问题