Отправка embed на канал в Discord. js не работает - PullRequest
2 голосов
/ 03 августа 2020

Я пытаюсь отправить вставку на указанный c текстовый канал на моем сервере, и, похоже, мне не удается заставить его работать. Есть идеи?

const botconfig = require("./botconfig.json");
const Discord = require("discord.js");

const client = new Discord.Client({disableEveryone: true})

client.on("ready", async () => {
    console.log(`${client.user.username} is online!`)
});

const channel = client.channels.cache.get('12345678912345');

const rulesEmbed = new Discord.MessageEmbed()
    .setColor('#db5151')
    .setTitle('test')
    .setDescription('test')
    
channel.send(rulesEmbed);

client.login(botconfig.token);

Сообщение об ошибке:

TypeError: Cannot read property 'send' of undefined
    at Object.<anonymous> (C:\loremipsum\index.js:30:9)
←[90m    at Module._compile (internal/modules/cjs/loader.js:1185:30)←[39m
←[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1205:10)←[39m
←[90m    at Module.load (internal/modules/cjs/loader.js:1034:32)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:923:14)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)←[39m
←[90m    at internal/main/run_main_module.js:17:47←[39m

1 Ответ

1 голос
/ 03 августа 2020

Код мне кажется правильным. Но я считаю, что с каналом что-то не так. Идентификаторы каналов разные для каждой гильдии. Для начала нужно выяснить, в какой гильдии находится бот. Вы можете сделать это, получив его из client.guilds, или сделать это следующим образом: (Эта структура, похожая на команду, очень распространена в discords.js; это может помочь разобраться в ней: https://discordjs.guide/popular-topics/embeds.html)

client.on("message", message => {
    if(message.content === "sendEmbed"){
        const channel = message.guilds.cache.get('12345678912345');
        if(channel) {
            channel.send(rulesEmbed);
        }
    }
});

Подумайте о том, чтобы посмотреть на это, если вы еще не сделали :) https://discordjs.guide/popular-topics/embeds.html

...