#javascript #discord.js
Вопрос:
Я создаю команду, если для этого потребуется ввести 3-значный номер и комментарий, но как я могу получить и то, и другое. Например, если я запущу .onboard <@user> [call-sign] [comments]
, как я могу разместить в команде как часть позывного, так и комментарии. Потому что у меня это есть прямо сейчас, как показано ниже в коде, и когда я запускаю команду, она выглядит так
const Discord = require("discord.js")
const ms = require("ms");
const botconfig = require("../../botconfig.json");
module.exports.run = async (bot, message, args) => {
message.delete();
let leoRole = message.guild.roles.cache.find(role => role.id === botconfig["leo_setup"].leo_role);
let cadetRole = message.guild.roles.cache.find(role => role.id === botconfig["leo_setup"].cadet_role);
if (!cadetRole) return console.log("Role not found (Config: 'leo_setup - cadet_role')");
if (!leoRole) return console.log("Role not found (Config: 'leo_setup - leo_role')");
if(!message.member.roles.cache.some(r => r.id === botconfig["leo_setup"].supervisor_role) amp;amp; !message.member.roles.cache.some(r => r.id === botconfig["leo_setup"].command_role) amp;amp; !message.member.roles.cache.some(r => r.id === botconfig["leo_setup"].high_command_role) amp;amp; !message.member.hasPermission("ADMINISTRATOR") amp;amp; !message.member.roles.cache.some(r => r.id === botconfig["leo_setup"].asst_commish_role)) return message.channel.send('Invalid permissions.').then(msg => msg.delete({ timeout: 8000 })).catch(console.error)
let user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
let callSign = args.slice(1).join(" ");
let comments = args.slice(1).join(" ");
if (!args[0]) return message.channel.send("Please put a valid member or a user ID for me to onboard").then(msg => msg.delete({ timeout: 8000 })).catch(console.error);
if (!user) return message.channel.send("Sorry, I was unable to find this user.")
//if (!user) return message.channel.send("Please put a valid member or a user ID for me to onboard").then(msg => msg.delete({ timeout: 8000 })).catch(console.error);
//if (!callSign) return message.channel.send("Please enter in the call-sign.").then(msg => msg.delete({ timeout: 8000 })).catch(console.error);
if (user.roles.cache.some(role => role.id === botconfig["leo_setup"].leo_role)) return message.channel.send('This member is already Law Enforcement').then(msg => msg.delete({ timeout: 8000 })).catch(console.error);
if (user.id === message.author.id) return message.channel.send('Why are you trying to onboard yourself?').then(msg => msg.delete({ timeout: 8000 })).catch(console.error);
if (user.user.bot) return message.channel.send('You can't onboard a bot').then(msg => msg.delete({ timeout: 8000 })).catch(console.error);
if (user.hasPermission('ADMINISTRATOR') || user.roles.highest.rawPosition >= message.guild.me.roles.highest.rawPosition) return message.channel.send("You cannot onboard this member").then(msg => msg.delete({ timeout: 8000 })).catch(console.error);
if(botconfig["module_toggles"].leo_module) {
const logEmbed = new Discord.MessageEmbed()
.setAuthor(`LEO Onboarding Log`, botconfig["bot_setup"].embed_logo_cropped)
.setThumbnail(botconfig["bot_setup"].embed_logo_cropped)
.setDescription(`**Onboarder:** <@${message.author.id}> nn**Cadet:** <@${user.id}>nn**Cadet ID:** ${user.id}nn**Comments:** ${comments || "No Comments"}`,)
/*.addField(
{ name: `Onboarder:`, value: `<@${message.author.tag}>` },
{ name: `Cadet:`, value: `<@${user.name}>` },
{ name: `Cadet ID:`, value: user.id },
{ name: `Comments:`, value: comments },
)*/
.setFooter(message.guild.name)
.setColor(botconfig["bot_setup"].main_embed_color)
.setTimestamp();
let onboardLogChannel = message.guild.channels.cache.find(channel => channel.id === botconfig["channel_setup"].onboard_log_channel);
if (!onboardLogChannel) return console.log("Channel not found (Config: 'onboard_log_channel')");
onboardLogChannel.send(logEmbed);
}
await(user.roles.add(leoRole.id));
await(user.roles.add(cadetRole.id));
}
module.exports.help = {
name: "onboard"
}
Комментарии:
1. пожалуйста, приведите пример ввода, который вам нужен, и то, что вы ожидаете в качестве вывода. например: 321 это_ис_т_коммент?
Ответ №1:
Я действительно не знаю, с чем вам нужна помощь, но почему бы не сделать
let callsign = args[1]
let comments = args[2]
И если в аргументах есть пробелы, используйте»,», чтобы разделить их.
Комментарии:
1. Пожалуйста, укажите дополнительную информацию в своем ответе. Как это написано в настоящее время, трудно понять ваше решение.
2. Извините, я не знал, как это объяснить, но это помогло, и теперь все работает, спасибо.
3. @mrzeny, пожалуйста, отметьте ответ как «ответил»