Как я могу вставлять сообщения в несколько каналов с помощью бота Discord?

Я искал среди вопросов остальных пользователей и нашел то, что искал. Моя проблема в том, что я хочу, чтобы один и тот же бот выполнял одну и ту же работу на разных каналах с другим заголовком, нижним колонтитулом и т. д.

Основной код:

const Discord = require("discord.js");

const client = new Discord.Client();

const channel = client.channels.cache.get("channel id");

client.on("ready", async () => {
    console.info(`Bot has started`);

    client.user.setPresence({ activity: { name: "some status " }, status: "online" });
});
client.on("message", (message) => {
    if (message.author.bot) 
    return;
    const embed = new MessageEmbed()
    .setDescription(message.content)
    .setTitle("")
    .setAuthor(message.author.tag,message.author.displayAvatarURL())
    .setImage(message.attachments.first().url)
    .setFooter("", "")
    .setTimestamp();
    channel.send(embed).catch(console.error);
});

client.login("token");

Не могли бы вы дать ссылку на вышеупомянутый вопрос? Это поможет нам лучше понять вашу проблему. Кроме того, вы сталкиваетесь с какими-либо ошибками с кодом, который вы предоставили?

Jakye 10.12.2020 12:44

конечно вот! Спасибо большое ! stackoverflow.com/questions/64072895/… @Jakye

Koza Nostra 10.12.2020 13:05

нет у меня нет ошибок

Koza Nostra 10.12.2020 13:49
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
503
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прежде всего, вы можете объявить свое сообщение в объекте, а затем использовать его для отправки по разным каналам.

    //Here goes the dynamic setting for different channels
    const messages = {
      'IdChannel':{
        embed:{
          title:'foo',
          description: message.content,
          footer: {text:'foo'}
        }
      },
      'scndChannelID':{
        embed:{
          title:'bar',
          description: message.content,
          footer: {text:'bar'}
        }
      }
    }

Затем в сообщении о событии используйте его для отправки на нужные вам каналы, которые вы декалируете на ключах объекта.

      Object.keys(messagex).forEach((value,index) => {
        //Here can go the static things
        message.guild.channels.cache.get(value).send(
          {embed:{...messagex[value].embed,
          timestamp: new Date(),
          image: {url:""}
          }})
      })

с тех пор я пробовал этот код, но когда кто-то пытается прикрепить изображение, он отправляет пустое сообщение!

Koza Nostra 18.12.2020 12:50

Вы изменили URL-адрес изображения на то, что вам нужно?

Cursed 18.12.2020 15:27

Что ты имеешь в виду ? Это не конкретный образ. В этом конкретном канале каждый пользователь будет загружать изображения. Поэтому мне нужно найти способ установить собственный код для изображений, таких как ```message.content``, который идеально подходит для текстовых сообщений!

Koza Nostra 18.12.2020 19:10

так что просто измените url:message.attachments.first().url, как вы сделали в своем коэ

Cursed 18.12.2020 19:25

Другие вопросы по теме