Почему моя команда nickname принимает только одно слово Discord.js ?

#node.js #discord #discord.js

#node.js #Discord #discord.js

Вопрос:

Название говорит само за себя… У меня возникли проблемы с моей командой nickname, поскольку она изменяет псевдоним только на первое написанное слово… Код:

        module.exports = {
        name: "nickname",
        aliases: [],
        run: async (message, args, client) => {

            const nickname = message.mentions.members.first()
            const nick = args[1];
            nickname.setNickname(nick)
        }
    }
  

Ответ №1:

Зависит от того, как args создается после его передачи run . Я предполагаю, что она разделяет командную строку на основе пробелов (например. если вы введете nickname The Person , он разделит его на массив с 3 элементами ["nickname", "The", "Person"] . Если у вас нет более важных аргументов для этой команды, вы можете просто снова объединить разделенные элементы в одну строку.

 let nick = "";

args.map((value, index) => {
    if (index !== 0) nick =value " ";
})
  

Или что-то в этом роде

Комментарии:

1. Использование args.slice(1).join(' ') намного проще, чем цикл с map()

2. @NumberedBore7 Добро пожаловать! Кроме того, используйте альтернативу Lioness100, поскольку она более лаконична.