我想创建一个命令 > 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);
}
};
答案 0 :(得分:0)
试试:
const ideaChannelId = client.channels.cache.find(
(channel) => channel.id === "YOUR ID"
);