Пишу Discord ботов на TypeScript с использованием библиотеки discord.js

Работаю на JavaScript с января 2021 г.
Работаю на TypeScript с июля 2021 г.
Прекрасно знаю discord.js изнутри
Контакты
Местоположение
Россия, Башкортостан(Башкирия), Уфа

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (12)
  • Методы keys(), values(), entries() находятся в Symbol.iterator у итерируемых объектов?

    Syjalo
    @Syjalo
    Представьте себе бота
    keys(), values() и entries() — методы Map, Set, Array и Object, которые возвращают итератор или массив, у которого есть метод по ключу Symbol.iterator.

    Symbol.iterator — символ, который выступает в качестве ключа (имени) для метода, который возвращает итератор.
    Ответ написан
    1 комментарий
  • Кнопка, доступная только для определенных лиц - Discord.js?

    Syjalo
    @Syjalo
    Представьте себе бота
    Как сделать, чтобы кнопка была доступна только для меня?

    1) Если кнопка была отправлена слэш командой, то в слушателе interactionCreate проверяем, чтобы interaction.message.interaction.user.id был равен interaction.user.id.
    2) Если кнопка была отправлена обычными сообщением, то в customId кнопки добавляем id того, кто может использовать кнопку и сравниваем его с interaction.user.id.
    3) Отправить ephemeral ответ на интеракцию, чтобы сообщение мог видеть только отправитель команды.
    4) Использовать коллекторы
    Message#createMessageComponentCollector()
    InteractionResponse#createMessageComponentCollector()

    Как сделать слушатель кнопки?

    1) Через ивент interactionCreate
    client.on('interactionCreate', (interaction) => {
      if (interaction.isButton()) {
        // code here
      }
    });

    2) Через коллекторы
    const collector = <Message>.createMessageComponentCollector({ componentType: ComponentType.Button });
    collector.on('collect', (interaction) => {
      // code here
    });
    Ответ написан
    2 комментария
  • Как отправить сообщение при входе моего бота на сервер?

    Syjalo
    @Syjalo
    Представьте себе бота
    Предоставленный код похож на код discord.js v12.
    v12 является устаревшей версией и может работать нестабильно.
    На данный момент стабильной версией является v13.8.1.

    Для v13 удостоверьтесь, что у вас есть интент GUILDS в опциях клиента.
    client.on("guildCreate", guild => {
      const channel = guild.channels.cache.find(channel => channel.isText() && channel.permissionsFor(client.user).has(["VIEW_CHANNEL", "SEND_MESSAGES"]));
      if (!channel) return;
      channel.send("Worked!");
    });
    Ответ написан
    Комментировать