Здравствуйте, возникла такая проблема с кодом, делал команду /admins что вывода через эмбед сообщение список всех администраторов в боте.
И сначала в компиляторе при попытке задействовать эту команду появилась ошибка -
(node:4789) DeprecationWarning: Passing strings for MessageEmbed#setFooter is deprecated. Pass a sole object instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
После я немного исправил код и появилась ошибка -
SyntaxError: Unexpected token '.'
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1031:15)
at Module._compile (node:internal/modules/cjs/loader:1065:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Array.forEach (<anonymous>)
Сам код команды -
// Подключение библиотек
const { Client, Intents, MessageEmbed } = require('discord.js');
const MongoClient = require('mongodb').MongoClient;
// Создание клиента Discord
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
// Подключение к MongoDB
const uri = 'mongourl';
const clientMongo = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
clientMongo.connect((err) => {
if (err) {
console.log(`Ошибка подключения к MongoDB: ${err}`);
} else {
console.log('Подключение к MongoDB установлено');
}
});
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
// Обработчик команды /admins
client.on('messageCreate', async (message) => {
if (message.content === '/admins') {
// Получаем коллекцию администраторов из MongoDB
const collection = clientMongo.db('mydb').collection('admins');
const admins = await collection.find().toArray();
// Создаем новый эмбед
const embed = new MessageEmbed();
.setAuthor({ name: "Список администраторов" })
.setColor('#0099ff')
.setDescription('Список всех уровней администраторов в боте Discord')
.setFooter({ text: "© Made with Maik, Все права защищены." })
.setTimestamp()
// Добавляем поля в эмбед для каждого администратора
admins.forEach((admin) => {
embed.addField(admin.username, `Уровень: ${admin.level}`);
});
// Отправляем эмбед в канал
message.channel.send({ embeds: [embed] });
}
// Обработчик команды /arang
if (message.content.startsWith('/arang')) {
// Получаем упоминание пользователя из сообщения
const user = message.mentions.users.first();
// Получаем уровень администратора из сообщения
const level = parseInt(message.content.split(' ')[1]);
// Добавляем пользователя в коллекцию администраторов в MongoDB как администратора с указанным уровнем
const collection = clientMongo.db('mydb').collection('admins');
await collection.insertOne({ username: user.username, level: level });
// Отправляем сообщение об успешном добавлении
message.reply(`Пользователь ${user.username} добавлен как администратор уровня ${level}`);
}
});