Агрументы команд, или же по другому args, это всё что идёт после команды и пробела, пример: !ping аргумент1 аргумент2 и т.д!
И так, давайте создадим первую команду с аргументами, первое что вам нужно сделать, это прописать в начале client.on('message', (message) => {), следующую строчку: const args = message.content.slice(prefix.length).trim().split(/ +/g)
Вкратце что за что отвечает: const args объявляет новую не изменную переменную args. message.content.slice(prefix.length) проверяет есть ли в начале префикс, если есть тогда выполняется следующее: .trim(), он убирает все пробелы после префикса, и перед аргументами!
.split(/ +g) опознаёт пробелы (аргументы) в команде!
Где аргументы могут быть использованы?
Да почти во всех командах где они требуются, примеры это: ban, kick, help, userInfo и т.п, вариантов масса!
Давайте создадим команду, которая при указании пользователя, будет выводить его информацию, а если аргументов не будет, тогда бот будет выводит вашу информацию, всё будем делать через embed сообщения!
Чтобы проверить есть ли аргументы в сообщении, вам нужно прописать следующее: if(args[0]) {}, почему указаны квадратные скобк, и внутри 0? А всё потому, что мы проверяем первый аргумент: Команда args[0] args[1] и т.д!
Я сделаю всё через .addFields({}), расмотренные в 3 уроке!
Вот что у меня получилось:
if (message.content .startsWith (prefix + 'userInfo' )) {
if (args[0]) {
let member = message.mentions.members.first () || message.member
let embed = new Discord.MessageEmbed()
.setTitle('Информация о: ' , member.user )
.addFields({
name : 'Полный никнейм:' ,
value : member.user .tag ,
inline : true
}, {
name : 'Дата создания аккаунта:' ,
value : member.user .createdAt ,
inline : true
}, {
name : 'Аватар' ,
value : ` ${member.user }:` ,
inline : true
})
.setImage (member.user .displayAvatarURL ({ dynamic : true, size : 4096 }))
.setColor('BLUE' )
message.channel.send(embed)
} else {
let embed = new Discord.MessageEmbed()
.setTitle ('Информация о: ' , member.user )
.addFields ({
name : 'Полный никнейм:' ,
value : message.autho.tag ,
inline : true
}, {
name : 'Дата создания аккаунта:' ,
value : message.author createdAt ,
inline : true
}, {
name : 'Аватар' ,
value : ` ${message.author }:` ,
inline : true
})
.setImage (message.author .displayAvatarURL ({ dynamic : true, size : 4096 }))
.setColor('BLUE')
message.channel.send(embed)
}
}
Переменная member, запоминает первого упомянувшего пользователя!
А теперь запускаем бота, и проверяем команду!
Вот что у нас вышло:
При упоминаии пользователя:
Без упоминания пользователя:
А на этом всё, в следующем уроке, мы создадим свой первый обработчик команд, он будет работать следующим образом: ищет папку commands, а ней ещё папку, а в последней папке ищет .js файл! (./Папка/Папка/.js файл)
Пример: commands/Информация/avatar.js