@Slupy

Как исправить проблему с аргументами discord.js?

Здравствуйте, имеется код:
const Discord = require('discord.js');
const moment = require('moment');
const client = new Discord.Client();

module.exports = {
	name: 'поцеловать',
	description: 'Целует участника :)',
	execute(message) {
    const args = message.content.split(' ').slice(1);
    const amount = args.join(' ');
    const member = message.mentions.members.last();
    const errorno = new Discord.MessageEmbed()
    .setFooter(message.author.tag, message.author.avatarURL())
    .setTimestamp()
    .setColor('RED')
    .setAuthor('Поцеловать')
    .setDescription('❌ | Впишите пользователя, которого хотите поцеловать.')
    if(!amount) return message.channel.send(errorno);
    if(!member) return message.channel.send('Упомяните пользователя')
    if(member.user.tag === args.slice(1).join(' ')) return;
    const kiss = new Discord.MessageEmbed()
    .setFooter(message.author.tag, message.author.avatarURL())
    .setTimestamp()
    .setAuthor('Поцеловать')
    .setColor('#FFC0CB')
    .setDescription(` | ${message.author.username} поцеловал ${member.displayName} \n | С репликой: ${args.slice(1).join(' ')}`)
    message.channel.send(kiss)
  }
}

Нужно сделать, если человек пишет "Поцеловать @..." (то есть без ввода реплики) не было строки "С репликой:", так как она попросту пуста. А если человек пишет "Поцеловать @... (тут любой текст)" писало в строку "С репликой:" тот текст, который человек написал. Как это сделать?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@Agrix
Например так
const Discord = require('discord.js');
const moment = require('moment');
const client = new Discord.Client();

module.exports = {
	name: 'поцеловать',
	description: 'Целует участника :)',
	execute(message) {
		const args = message.content.split(' ').slice(1);
		const amount = args.join(' ');
		const member = message.mentions.members.last();
		const errorno = new Discord.MessageEmbed()
		.setFooter(message.author.tag, message.author.avatarURL())
		.setTimestamp()
		.setColor('RED')
		.setAuthor('Поцеловать')
		.setDescription('❌ | Впишите пользователя, которого хотите поцеловать.')
		if(!amount) return message.channel.send(errorno);
		if(!member) return message.channel.send('Упомяните пользователя')
		if(member.user.tag === args.slice(1).join(' ')) return;
		let description = ` | ${message.author.username} поцеловал ${member.displayName}`;
		if(args.length > 1) {
		 description += ` \n | С репликой: ${args.slice(1).join(' ')}`;
		}
		const kiss = new Discord.MessageEmbed()
		.setFooter(message.author.tag, message.author.avatarURL())
		.setTimestamp()
		.setAuthor('Поцеловать')
		.setColor('#FFC0CB')
		.setDescription(description)
		message.channel.send(kiss)
	}
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Alexandre888
@Alexandre888 Куратор тега Discord
Javascript-разработчик
так у вас же есть константа
const args = message.content.split(' ').slice(1);
если же она возвращает контент сообщения, разбитый на слова, в массиве, то и смотрите по его элементам:
if (args[1]) { // если контент сообщения содержит >= двух слов
  ...
} else {

}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы