Задать вопрос
@Maik5335

Как можно исправить ошибку Unexpected token '.' в коде?

Здравствуйте, возникла такая проблема с кодом, делал команду /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}`);
  }
});
  • Вопрос задан
  • 303 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer
Символ ";" после new MessageEmbed() явно лишний

const embed = new MessageEmbed();
.setAuthor({ name: "Список администраторов" })
.setColor('#0099ff')
.setDescription('Список всех уровней администраторов в боте Discord')
.setFooter({ text: "© Made with Maik, Все права защищены." })
.setTimestamp()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы