繁体   English   中英

setNickname 不包括 discord.js v13 中的空格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM