【问题标题】:Convert Discord.js v11 module to v12?将 Discord.js v11 模块转换为 v12?
【发布时间】:2020-12-11 03:55:42
【问题描述】:

我主要有这个不和谐的机器人工作。我只是在这个模块上遇到了一些麻烦。问题的根源在于这段代码是为 discord.js v11 编写的。我需要为 v12 重写它。 原始 v11 模块可以在这里找到: https://github.com/Meschdog18/disnet/blob/master/commands/broadcast.js

这是我目前所拥有的:

exports.run = (client, message, args) => {
    var serverlist = client.guilds.cache.size;
    console.log(client.Networks)

    var server = message.guild.channels.cache;
    var Sender = client.Networks.get(message.guild.name);
    const input = args.join(" "); //rejoins arg array into string
    for (var i = 0; i < serverlist.length; i++) {
        //get network id of message sender
        var Recipient = client.Networks.get(serverlist[i].name);
        Recipient = parseInt(Recipient);



        if (Sender == Recipient) {
            try {
                var serv = serverlist[i].channels.cache.find(
                    serv => serv.name === "broadcast"
                );
                serv.send({
                    embed: {

                        /* author: { works but is disabled, because not sure if i like the look
                           name: "Disnet", 
                           icon_url: client.user.defaultAvatarURL
                         },*/
                        color: 0x3850eb,
                        title: "**__BROADCAST__**",

                        thumbnail: {
                            url: message.guild.iconURL
                        },
                        fields: [{
                                name: "Broadcasted From ",
                                value: message.guild.name
                            }, {

                                name: "Message",
                                value: input
                            }

                        ],
                        timestamp: new Date(),
                        footer: {
                            icon_url: message.author.avatarURL,
                            text: "Executed By " + message.author.username

                        }
                    }
                })
            } catch (error) {
                console.log(error);
                message.reply(
                    "You must create a #broadcast channel to recieve messages!"
                );
                break;
            }
        }
    }
};
exports.help = {
    name: "broadcast",
    description: "Broadcasts message to all servers on your network",
    usage: "N$broadcast <Message>"
};
exports.config = {
    permLevel: "admin"
}

此模块旨在让机器人向我的不和谐服务器网络中的每台服务器发送消息。 (它确实使用了 enmap 和 MySQL,但这个模块似乎没有使用 SQL 组件) 它没有将消息传输到我网络中的其他服务器,但我的终端没有收到任何错误。机器人只是给了我这个:

Enmap(2) [Map] {
  'Discord Sports & Athletics Associations' => 'DSAAnet',
  'NFL Discussion 2.0' => 'DSAAnet'
}

这似乎是正确的。 (DSAAnet 是网络的名称,另外两个名称是网络中的服务器名称。) 它是否正确?为了使这个 v12 兼容,我还需要进行哪些更改?

【问题讨论】:

  • What's the error?
  • 就是这样,没有抛出错误信息。我在终端中唯一得到的是我的 OP 中包含的 Enmap 消息。 @Jakye 我读过那篇文章,但它只是说 .array() 已从 v12 中删除。它没有告诉您如何重写该字符串以使其在 v12 中起作用。

标签: networking bots discord.js


【解决方案1】:

你可以在这个网站上看到每一个变化:Updating from v11 to v12

【讨论】:

  • 它只是说 array() 被删除了。它没有告诉你应该使用什么。
【解决方案2】:

我想你正在阅读这部分。


集合#filterArray

​​>

collection.filterArray() 被完全删除,因为它只是collection.filter().array() 的辅助方法,而且大多数时候将集合转换为数组是不必要的步骤。


不,.array() 从未被删除。 对于你的问题,上面写着.avatarURL.iconURL.defaultAvatarURL 现在是.avatarURL().iconURL().defaultAvatarURL()

这应该可以解决问题:)

【讨论】:

  • 即使我移除嵌入代码并尝试只发送一条基本的短信,但我仍然得到相同的结果:消息未传输且未引发错误。
猜你喜欢
  • 2021-04-09
  • 2021-01-02
  • 2020-10-14
  • 2020-10-19
  • 2021-08-04
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多