我想知道你是否可以提供帮助(我搜索了一下,什么也没有……)我正在学习如何使用 discord.js 节点,我想更改我的用户昵称(而不是用户名本身)
我的代码是
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log('I am ready!');
});
client.on('message', message => {
if (message.content.includes('changeNick')) {
client.setNickname({nick: message.content.replace('changeNick ', '')});
}
});
client.login('token');
原文由 Bossa 发布,翻译遵循 CC BY-SA 4.0 许可协议
Discord.js 通过从消息中获取 GuildMember 并使用 GuildMember#setNickname 方法来实现更改昵称。下面是设置运行消息的用户的昵称的简单示例:
但如果您的机器人没有设置用户昵称的权限,这根本行不通。如果你想设置用户的昵称,bot 本身必须有设置昵称的权限。这需要更多技巧,但您可以使用 Guild#me 获取 GuildMember,然后使用 GuildMember#hasPermission 检查 Permissions#Flags 中的 MANAGE_NICKNAMES 权限。我知道这可能涉及很多内容,所以这里有一个将我刚才所说的所有内容放在一起的示例。
这将用于设置运行该命令的用户的昵称。但是,如果我们想更改 BOT 的昵称,而不是用户的昵称怎么办?那很简单。我们可以将
message.member.setNickname
替换为message.guild.me.setNickname
,类似于我们检查权限的方式。这将更改机器人的昵称,而不是运行命令的用户的昵称。编码愉快!