Преобразовать Discord.js модуль v11 в v12?

#networking #bots #discord.js

#сеть #боты #discord.js

Вопрос:

У меня в основном работает этот бот discord. У меня просто возникли некоторые проблемы с этим одним модулем. Корень проблемы в том, что этот код был написан для 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"
}
  

Этот модуль предназначен для того, чтобы бот передавал сообщение на каждый сервер в моей сети серверов discord. (он использует enmap и MySQL, но этот модуль, похоже, не использует компоненты SQL)
Он не передает сообщения на другие серверы в моей сети, но я не получаю никаких ошибок, выдаваемых в моем терминале. Бот просто выдает мне это:

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

Который кажется правильным. (DSAAnet — это название сети, а два других имени — это названия серверов в сети.)
Это правильно? Что еще мне нужно изменить, чтобы сделать этот v12 совместимым?

Комментарии:

1. discordjs.guide/additional-info/changes-in-v12.html

2. What's the error?

3. В том-то и дело, что сообщения об ошибке не выдается. Единственное, что я получаю в терминале, — это сообщение Enmap, включенное в мой OP. @Jakye Я прочитал эту статью, но там просто говорится . array () был удален из версии 12. Это не говорит вам, как переписать эту строку, чтобы она была функциональной в v12.

Ответ №1:

вы можете увидеть все изменения на этом веб-сайте: Обновление с v11 до v12

Комментарии:

1. Там просто написано, что array () был удален. Он не говорит вам, что использовать вместо этого.

Ответ №2:

Я думаю, вы читали эту часть.


Коллекция#filterArray

collection.filterArray() был полностью удален, так как для collection.filter().array() это был всего лишь вспомогательный метод, и большую часть времени преобразование коллекции в массив является ненужным шагом.


Нет, .array () никогда не удалялся. И на ваш вопрос, в нем говорится, что .avatarURL , .iconURL .defaultAvatarURL теперь .avatarURL() , .iconURL() , .defaultAvatarURL()

Это должно устранить проблему 🙂

Комментарии:

1. Даже если я повторю код для встраивания и попытаюсь вместо этого просто отправить обычное текстовое сообщение, я все равно получу тот же результат: сообщение не передается и ошибка не выдается.