#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. Даже если я повторю код для встраивания и попытаюсь вместо этого просто отправить обычное текстовое сообщение, я все равно получу тот же результат: сообщение не передается и ошибка не выдается.