如何在 discord.js 中创建 setNickname 命令
how do I make a setNickname command in discord.js
我在 discord.js v13 中创建了一个更改昵称命令,但它不起作用。我没有收到任何错误。
我的代码:
const target = message.mentions.members.first();
const nickname = args.slice(1).join(' ');
if(!target) return message.channel.send('Please specify a target to change nickname');
if(!nickname) return message.channel.send('Please specify a nickname to change');
target.setNickname(nickname);
我正在使用 node.js v16
我猜测您尝试设置的昵称是 null 或空的,这将导致 discord 将昵称重置为用户正常的 discord 用户名。
确保调试正在传递的值并在此处提出问题时提供此类信息,因为这将帮助人们更轻松地帮助您。
话虽如此,下面的代码对我来说效果很好
const target = msg.mentions.members.first();
if (!target) return msg.reply('Please mention a user');
const nick = args[1];
if (!nick) return msg.reply('Please provide a nickname');
const oldNick = target.nickname;
if (oldNick === nick) return msg.reply('That user already has that nickname');
console.log(`Changing ${target.user.tag}'s nickname from ${oldNick} to ${nick}`);
target.setNickname('');
您的代码对我有用,但请确保您的机器人具有以下权限,并且机器人的角色高于想要编辑昵称的用户的角色:
改变这个:
https://i.stack.imgur.com/lKP9h.png
对此:
https://i.stack.imgur.com/xX8GF.png
还要确保您的命令是小写的,因为命令名称中不允许使用大写字符。
您提供的代码似乎可以正常工作。错误可能是您的机器人的意图。确保你 enabled/requested 这个命令所需的所有意图(如果我没记错的话,公会成员)。确保您还为您的机器人提供了所需的权限:MANAGE_NICKNAMES
在服务器设置(角色)中。
祝你好运!
我在 discord.js v13 中创建了一个更改昵称命令,但它不起作用。我没有收到任何错误。 我的代码:
const target = message.mentions.members.first();
const nickname = args.slice(1).join(' ');
if(!target) return message.channel.send('Please specify a target to change nickname');
if(!nickname) return message.channel.send('Please specify a nickname to change');
target.setNickname(nickname);
我正在使用 node.js v16
我猜测您尝试设置的昵称是 null 或空的,这将导致 discord 将昵称重置为用户正常的 discord 用户名。
确保调试正在传递的值并在此处提出问题时提供此类信息,因为这将帮助人们更轻松地帮助您。
话虽如此,下面的代码对我来说效果很好
const target = msg.mentions.members.first();
if (!target) return msg.reply('Please mention a user');
const nick = args[1];
if (!nick) return msg.reply('Please provide a nickname');
const oldNick = target.nickname;
if (oldNick === nick) return msg.reply('That user already has that nickname');
console.log(`Changing ${target.user.tag}'s nickname from ${oldNick} to ${nick}`);
target.setNickname('');
您的代码对我有用,但请确保您的机器人具有以下权限,并且机器人的角色高于想要编辑昵称的用户的角色: 改变这个: https://i.stack.imgur.com/lKP9h.png 对此: https://i.stack.imgur.com/xX8GF.png 还要确保您的命令是小写的,因为命令名称中不允许使用大写字符。
您提供的代码似乎可以正常工作。错误可能是您的机器人的意图。确保你 enabled/requested 这个命令所需的所有意图(如果我没记错的话,公会成员)。确保您还为您的机器人提供了所需的权限:MANAGE_NICKNAMES
在服务器设置(角色)中。
祝你好运!