[英]setNickname is not including spaces in discord.js v13
当我设置某人的昵称时,例如 Stack Overflow”,它没有正确设置它。它将我的昵称设置为“stackoverflow”,没有空格。
我的代码:
const { MessageEmbed } = require('discord.js');
module.exports = {
name: 'changenickname',
aliases: ['changenick'],
permissions: ["MANAGE_NICKNAMES"],
cooldown: 5,
description: "change your target's nickname",
usage: "d!changenickname <@user> <nickname>",
async execute(message, args, cmd, client, Discord, profileData){
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');
if (member.roles.highest.position >= message.guild.me.roles.highest.position) return message.reply('I cannot moderate this user as their highest role is higher than mine or I have the same highest role position as them.')
target.setNickname(nickname);
const done = new MessageEmbed()
.setColor("GREEN")
.setTitle("✅ Done")
.setDescription(`Changed <@${target.id}> nickname to ${nickname}`)
.setTimestamp()
message.channel.send({embeds: [done]})
}
}
注意:该命令设置昵称没有任何错误,但它必须设置带有空格的昵称(如果args中有)。
我正在使用 discord.js v13 和 node.js v16
在第 11 行,你有这个:
const nickname = args.slice(1).join('');
在您的情况下args.slice(1)
返回数组['The', 'God']
。 join()方法获取数组的每个元素并将其放在一个字符串中,每个元素之间都有给定的字符串。 你给函数的字符串是''
,所以它会把元素放在一起,中间没有任何东西。 因此,从数组['The', 'God']
中,它生成了字符串TheGod
而不是The God
。
所以你需要的是.join(' ')
,而不是.join('')
。
我希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.