Ответы пользователя по тегу JavaScript
  • Методы keys(), values(), entries() находятся в Symbol.iterator у итерируемых объектов?

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

    Symbol.iterator — символ, который выступает в качестве ключа (имени) для метода, который возвращает итератор.
    Ответ написан
    1 комментарий
  • Voice Activity Tracking System discord.js?

    Syjalo
    @Syjalo
    Представьте себе бота
    Для начала убедитесь, что у вас есть интент GUILD_VOICE_STATES в опциях клиента.

    Теперь создайте Map для интервалов перед регистрацией ивента
    const intervals = new Map();
    Далее при подключении к каналу создавайте интервал и записывайте в только что созданный Map
    client.on("voiceStateUpdate", (oldState, newState) => {
      function addVoiceTime() {}
      if (!oldState.channelId && newState.channelId) {
        intervals.set(newState.id, setInterval(addVoiceTime, 5000));
      }
    });

    А при отключении отчищайте
    client.on("voiceStateUpdate", (oldState, newState) => {
      if (oldState.channelId && !newState.channelId) {
        clearInterval(intervals.get(newState.id));
        intervals.delete(newState.id);
      }
    });

    Результирующий код
    const intervals = new Map();
    client.on("voiceStateUpdate", (oldState, newState) => {
      function addVoiceTime() {}
      if (!oldState.channelId && newState.channelId) {
        intervals.set(newState.id, setInterval(addVoiceTime, 5000));
      }
      if (oldState.channelId && !newState.channelId) {
        clearInterval(intervals.get(newState.id));
        intervals.delete(newState.id);
      }
    });
    Ответ написан
    Комментировать