#node.js #discord.js
Вопрос:
Я искал везде и перепробовал все, что мог придумать, но ничего не нашел, все, казалось, провалилось.
Один бит кода, который я использовал до этого, не удался:
Message.author.send({ embeds: [AttachmentEmbed] }).then(Msg => {
var Collector = Msg.channel.createMessageCollector({ MessageFilter, max: 1, time: 300000 });
Collector.on(`collect`, Collected => {
if (Collected.content.toLowerCase() !== `cancel`) {
console.log([Collected.attachments.values()].length);
if ([Collected.attachments.values()].length > 0) {
var Attachment = [Collected.attachments.values()];
var AttachmentType = `Image`;
PostApproval(false, Mode, Title, Description, Pricing, Contact, Attachment[0], AttachmentType);
} else if (Collected.content.startsWith(`https://` || `http://`) amp;amp; !Collected.content.startsWith(`https://cdn.discordapp.com/attachments/`)) {
var Attachment = Collected.content.split(/[ ] /)[0];
var AttachmentType = `Link`;
PostApproval(false, Mode, Title, Description, Pricing, Contact, Attachment, AttachmentType);
console.log(Attachment)
} else if (Collected.content.startsWith(`https://cdn.discordapp.com/attachments/`)) {
var Attachment = Collected.content.split(/[ ] /)[0];
var AttachmentType = `ImageLink`;
PostApproval(false, Mode, Title, Description, Pricing, Contact, Attachment, AttachmentType);
console.log(Attachment)
}
Комментарии:
1. Что не так с вашим текущим кодом?
2. Там написано, что есть вложение, когда я по какой-то причине отправляю текст. [Собранные.вложения.значения()].длина по какой-то причине равна 1.
Ответ №1:
[Collected.attachments.values()].length
так будет всегда 1
. Почему? Ну, у вас есть эти 2 возможности:
[ [] ] //length 1
[ [someMessageAttachment] ] //length 1
Правильный способ проверки-использовать оператор распространения ( ...
)
[...(Collected.attachments.values())].length //returns amount of attachments in the message
Комментарии:
1. Из этого кода, как бы я получил первое значение?
2. Воспользуйся
[...(Collected.attachments.values())][0]