如果您想更改用户昵称,您需要一个GuildMember obj。您可以通过在公会的成员道具中搜索机器人 ID 来将其应用于机器人。以下行将允许您在给定 Message obj 的情况下更改机器人的用户名。
message.guild.me.setNickname('NICKNAME'); 根据@slothiful 的建议更新
如果您需要有关如何创建整个命令的进一步帮助,请参考 https://discordjs.guide/ 和 https://discord.js.org/#/docs/
更新 1:通过您提供的示例,我很难理解您想要的实现。
假设您想要这样的命令:!changenick <@user> <nickname>
在这种情况下,我会引用this。它解释了如何解析提及。关于更改昵称的实际问题,您可以更改任何用户的昵称
(您将通过提及获得此用户)使用message.guild.members.find(user => user.id === mentionUser.id).setNickname('NICKNAME')
更新 2:我现在明白你的意思了。我很抱歉。您无需重新启动机器人即可更新昵称。我已经测试过了。
以下代码每 10 秒更改一次机器人昵称。
const Discord = require('discord.js');
const Client = new Discord.Client();
Client.on('ready', () => {
let value = 0;
setInterval(() => {
Client.guilds.find(guild => guild.id === 'GUILD_ID').me.setNickname(value++);
}, 10000);
});
Client.login('TOKEN');
重要的是
Client.guilds.find(guild => guild.id === 'GUILD_ID').me.setNickname('NICKNAME');
编辑:如果这回答了您的问题,请将答案标记为已接受。