Отправка вставки на другой канал (Discord JS) - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь отправить вставку на другой канал, а не на канал, где была выполнена команда, но я получаю сообщение об ошибке «Невозможно получить доступ к« боту »до инициализации». Я не знаю, что я сделал неправильно. Tbh b c я объявил все в верхней части индекса. js.

 case "alert":
        let text = message.content.replace(prefix + "alert", "")
        const alertembed = new Discord.MessageEmbed()
        .setTitle("**Embed Title**")
        .setDescription(text)
        bot.channels.find("carts").send(alertembed)
        embed.Message.react("?")
        embed.Message.react("?")
const Discord = require("discord.js")
const bot = new Discord.Client();
const ms = require("ms")
const fs = require("fs")


var version = "1.0"

const config = require("./config.json")
let prefix = config.prefix;
const token = config.token;

bot.on("ready", () =>{
    console.log("Succesfully started the tools bot");
})

bot.on("message", message=>{

   let args = message.content.substring(prefix.length).split(" ");



   switch(args[0]){
...

1 Ответ

0 голосов
/ 16 апреля 2020

Хорошо, основываясь на предоставленной вами информации, я вижу несколько проблем, но сообщение об ошибке не то, что я ожидаю от них. Это, безусловно, проблемы, но я не уверен, что это проблема * 1002. *.

. В v12 большинство коллекций заменяются объектами менеджера, которые содержат коллекцию с именем cache. Это включает в себя message.channels. Таким образом, чтобы получить доступ к коллекции кеша каналов, вам необходимо использовать:

message.channels.cache.find()

Однако это все еще имеет проблему, поскольку использование поиска на основе строки устарело в v11 и удалено в v12. Вы должны передать функцию, которая возвращает true, если это то, что вам нужно.

bot.channels.cache.find(ch => ch.name === "carts")

Обновление: еще одна вещь, которую я заметил ... embed.Message.react("?") Я не вижу переменную с именем встраивать. Я думаю, что вы имели в виду сделать это из отправки.

bot.channels.cache.find(ch => ch.name === "carts").send(alertembed).then(sent => {
    sent.react("?")
    sent.react("?")
});
...