當我設定某人的昵稱時,例如 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

uj5u.com熱心網友回復:
在第 11 行,你有這個:
const nickname = args.slice(1).join('');
在您的情況下args.slice(1)回傳陣列['The', 'God']。join()方法獲取陣列的每個元素并將其放在一個字串中,每個元素之間都有給定的字串。你給函式的字串是'',所以它會把元素放在一起,中間沒有任何東西。因此,它從陣列['The', 'God']中生成字串TheGod而不是The God.
所以你需要的是.join(' '),不是.join('')。
我希望這會有所幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/487419.html
標籤:javascript 节点.js 不和谐 不和谐.js
