我想使用!Changenick nick
之类的命令来更改我的机器人的名称-“尼克”是指新机器人的名称。你们能帮我吗?我只希望机器人在有人写!Changenick
时更改用户名:
!changenick Freshname
机器人将自己的名字更改为Freshname
答案 0 :(得分:0)
如果要更改用户昵称,则需要一个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');
编辑:如果此操作回答了您的问题,请将答案标记为已接受。