将Discord.js v11模块转换为v12?

时间:2020-08-21 18:34:21

标签: networking bots discord.js

我大部分都是这个不和谐的机器人。我在使用这个模块时遇到了一些麻烦。问题的根源是该代码是为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兼容,我还需要更改什么?

2 个答案:

答案 0 :(得分:0)

您可以在此网站上看到所有更改:Updating from v11 to v12

答案 1 :(得分:0)

我认为您正在阅读本部分。


Collection#filterArray

collection.filterArray()被完全删除,因为它只是collection.filter().array()的帮助方法,并且在大多数情况下,将集合转换为数组是不必要的步骤。


否,.array()从未删除。 对于您的问题,它说.avatarURL.iconURL.defaultAvatarURL现在是.avatarURL().iconURL().defaultAvatarURL()

那应该可以解决这个问题:)