[英]How do I change a users nick name using Discord.js v14
I am using the following code to register the slash command:我正在使用以下代码来注册斜杠命令:
const nick = new SlashCommandBuilder()
.setName('nick')
.setDescription('Change the nickname of a user')
.setDefaultMemberPermissions(PermissionFlagsBits.ChangeNickname)
.addUserOption((option) =>
option
.setName('user')
.setDescription('The user to change the nickname')
.setRequired(true),
)
.addStringOption((option) =>
option.setName('nickname').setDescription('New nickname for the user'),
);
The logic:逻辑:
client.on('interactionCreate', (interaction) =>{
if (interaction.commandName === 'nick') {
const user = interaction.options.getUser('user');
const name = interaction.options.getString('nickname');
user.setNickname(name);
}
});
Which gives me the following error:这给了我以下错误:
user.setNickname(name)
^
TypeError: user.setNickname is not a function
It's because interaction.user
is a User
, not a GuildMember
and only members have the setNickname()
method.这是因为
interaction.user
是一个User
,而不是一个GuildMember
并且只有成员有setNickname()
方法。
You should get the member instead of the user.您应该获取成员而不是用户。 Try something like this:
尝试这样的事情:
const member = await interaction.options.getMember('user')
user.setNickname(name)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.