嵌入的消息没有发送到指定的频道

时间:2021-04-26 04:38:33

标签: javascript node.js discord.js

我想创建一个命令 > idea 来向 **ideaChannelId** 通道输出一条消息。但是我做不到,并且控制台没有给出任何错误。我尝试将 ideas 频道 ID 添加到单独的 config.json 文件中。但这也不起作用。如果您指出我的错误,我将不胜感激。

这是我的代码:

const Command = require('../Command.js');
const { MessageEmbed } = require('discord.js');
const { oneLine } = require('common-tags');
const ideaChannelId = 832843651406233670

module.exports = class IdeaCommand extends Command {
  constructor(client) {
    super(client, {
      name: 'idea',
      aliases: ['идея'],
      usage: 'idea <Идея>',
      description: 'Отправляет ваш отзыв на сервер поддержи Eligos.',
      type: client.types.MISC,
      examples: ['idea добавить команду >hentai']
    });
  }
  run(message, args) {
    const ideaChannel = message.client.channels.cache.get(ideaChannelId);
      if (!ideaChannel) 
      return this.sendErrorMessage(message, 1, 'Свойство ideaChannelId не задано. Обратитесь к создателю бота для исправления проблемы.');
    if (!args[0]) return this.sendErrorMessage(message, 0, 'Пожалуйста, напишите свое сообщение перед отправкой');
    let idea = message.content.slice(message.content.indexOf(args[0]), message.content.length);

    const ideaEmbed = new MessageEmbed()
      .setTitle('Идея')
      .setThumbnail(ideaChannel.guild.iconURL({ dynamic: true }))
      .setDescription(idea)
      .addField('Отправил:', message.member, true)
      .addField('С Сервера:', message.guild.name, true)
      .setFooter(message.member.displayName,  message.author.displayAvatarURL({ dynamic: true }))
      .setTimestamp()
      .setColor(message.guild.me.displayHexColor);
      ideaChannel.send(ideaEmbed);

    if (idea.length > 1024) idea = idea.slice(0, 1021) + '...';
    const embed = new MessageEmbed()
      .setTitle('Идея')
      .setDescription(oneLine`
      Отзыв успешно отправлен!
      Вы так же можете присоединиться к [Официальному Серверу Поддержи Eligos](https://discord.gg/VCDNCfhajz) для его просмотра.
      `) 
      .addField('Отправил:', message.member, true)
      .addField('Сообщение:', idea)
      .setFooter(message.member.displayName,  message.author.displayAvatarURL({ dynamic: true }))
      .setTimestamp()
      .setColor(message.guild.me.displayHexColor);
    message.channel.send(embed);
  }
};

1 个答案:

答案 0 :(得分:0)

试试:

 const ideaChannelId = client.channels.cache.find(
      (channel) => channel.id === "YOUR ID"
    );