繁体   English   中英

将嵌入发送到不同的频道 (Discord JS)

[英]Sending an Embed to a different channel (Discord JS)

我正在尝试将嵌入发送到不同的频道,而不是发送到执行命令的频道,但我收到错误“初始化之前无法访问'bot'”我不知道我做错了什么,我在顶部声明了所有内容index.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]){
...

好的,根据您提供的信息,我发现了一些问题,但错误消息不是我所期望的。 这些当然是问题,但我不确定不是问题。

在 v12 中,大多数 collections 被包含名为cache的集合的管理器对象替换。 这包括 message.channels。 因此,要访问通道缓存集合,您需要使用:

message.channels.cache.find()

然而,这仍然存在问题,因为在 v11 中不推荐使用基于字符串的 find 并在 v12 中删除。 你必须传入一个 function 如果它是你想要的,它会返回 true。

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

更新:我注意到的另一件事.. embed.Message.react("")我没有看到名为 embed 的变量。 我认为您的意思是从发送中执行此操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM