首页 > 解决方案 > 将 Discord.js v11 模块转换为 v12?

问题描述

我主要有这个不和谐的机器人工作。我只是在这个模块上遇到了一些麻烦。问题的根源在于这段代码是为 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 兼容?

标签: networkingbotsdiscord.js

解决方案


你可以在这个网站上看到每一个变化:从 v11 更新到 v12


推荐阅读