首页 > 解决方案 > 从所有获取公会 ID 的服务器更改昵称

问题描述

有任何方法可以使用机器人所在的所有服务器中的公会 ID 更改机器人的 NICKNAME(机器人具有更改昵称的权限)。

这是我用来获取行会 ID 的代码,但我知道如何使用 id 在所有行会中更改昵称。

const { Client } = require('discord.js');
const client = new Client();

client.on("ready", () => {
    console.log(`Logged in as ${client.user.tag}!`);
    client.user.setPresence({
        status:"online",
        activity: {
            name: "Loading....",
            type: "WATCHING"
        }
    })
})


client.on("message", message => {

    const servers = client.guilds.cache.map(guild => guild.id);
    console.log(servers);


})

client.login(TOKEN)

标签: node.jsdiscord.js

解决方案


首先,当机器人收到新消息时,此代码将控制台记录每个 Guild#id。

client.on("message", message => {

    const servers = client.guilds.cache.map(guild => guild.id);
    console.log(servers);


})

由于个人经验,我建议在ready活动中映射所有公会。

要从机器人更改昵称(您实际上不需要映射所有公会),您可以通过将以下代码写入您的ready事件来做到这一点:

client.guilds.cache.forEach((guild) => {
    guild.me.setNickname(/* Nickname as a string */);
});

您应该将此代码写入您的就绪事件,因为如果您只是将其写入文件中,您将尝试更改您的昵称,而您甚至还没有从 API 获取所有公会。

如果您只想在执行特定命令后执行此操作,则可以使用上面的代码并将其粘贴到命令中。

参考:


推荐阅读