Skip to content

Releases: SNIPPIK/UnTitles

0.4.1

17 Dec 10:40

Choose a tag to compare

What's Changed

  • Исправление поиска по названию без указания платформы

Other Changes

New Contributors

Full Changelog: 0.4.0...0.4.1

0.4.0

17 Dec 09:10
fb87a1d

Choose a tag to compare

🔊 Voice System

🔐 E2EE (Dave)

  • Исправлены ошибки с encrypt, decrypt
  • Исправлена ошибка с welcome
  • Добавлена поддержка большего кол-ва пользователей

🎧 Voice

  • Упрощение генерации randomNBit
  • Удаление heartbeat resetReconnects, reconnects...
  • Теперь websocket удаляет heartbeat manager
  • Увеличен cooldown при ожидании пользователей в голосовом канале до 30 секунд
  • Добавление модуля VoiceSpeakerManager
  • Улучшена проверка E2EE
  • Добавлена поддержка изменения статуса голосового канала

🎵 AudioPlayer

  • Удаление player._preloadTrack, теперь все в play функции
  • Исправлена проблема с временной паузой в плеере
  • Немного оптимизирована логика

🎵 Audio

  • Добавлена проверка seek для buffered audio
  • Добавление принудительного удаления пре аудио если оно есть
  • Изменена логика отправки события readable в аудио
  • Исправлена ошибка с получением this._buffer?.position при получении готовых аудио пакетов
  • Добавление перепровки аудио при "Timeout"
  • Изменене Opus paser, переписан практически с нуля

💡FIlters

  • Изменение системы фильтров, теперь есть возможность прекомпилировать фильтры при добавлении а не при включении
  • Добавление запретов для некоторых фильтров
  • Добавлен новый фильтр swap_stereo

🕐 Time Cycle

  • Изменение циклической системы, теперь можно просто конфигурировать точность в 3 параметрах
  • Исправлена работа цикла при большой нагрузке
  • Добавлен параметр таймера в цикл для его удаления

🕐 Message time cycle

  • Изменена логика сообщений, теперь отправляется раз в 10 мин
  • Обновляется при новом треке и не создается заново
  • Так-же меняет статус голосового канала!

⚙️ Handlers

📚 Commands

  • Изменение структуры команд (slash, ui)
  • Отключение ожидания для команды skip
  • Исправление команды remove
  • Исправление back компонента

🌐 Rest/API

  • Улучшение и исправление rest api, ответ теперь приходит быстрее
  • Добавлен fallback для платформ которые не слишком хотят работать
  • Добавление поиска аудио для платформ которые изначально могут отдавать аудио
  • Изменение типов для rest api
  • Обновление клиента YouTube
  • Теперь данные live видео не кешируются (YouTube)
  • Изменение поиска трека если нет доступа к платформе

What's Changed

Other Changes

  • Bump discord-api-types from 0.38.23 to 0.38.24 by @dependabot[bot] in #31
  • Bump @types/node from 24.3.1 to 24.4.0 by @dependabot[bot] in #30
  • Bump @types/node from 24.4.0 to 24.5.2 by @dependabot[bot] in #33
  • Bump discord-api-types from 0.38.24 to 0.38.26 by @dependabot[bot] in #32

Full Changelog: 0.3.2...0.4.0

0.3.2

09 Sep 22:35

Choose a tag to compare

Исправления и улучшения

  • Немного переработана загрузка трека в плеере, теперь обработка в модуле audio
  • Немного улучшен цикл
  • Изменены описания фильтров
  • Добавление функции toZero для трансформации в формат 00:05
  • Исправление точности поиска трека при отсутствии аудио
  • Добавление доп логов для отслеживания Garbage Collector
  • Изменение 1 debug лога на warn
  • Исправление прогресс бара

Full Changelog: 0.3.1...0.3.2

Более крутые штуки будут в 0.4.0!

0.3.1

30 Aug 08:31

Choose a tag to compare

🎉 Release 0.3.1

🚀 Новый функционал

🔊 Улучшения аудио системы

  • AudioPlayerTimeout - интеллектуальная система таймаутов для плеера
  • Autoplay система - автоматический подбор похожих треков
  • Новый тип повтора - AutoPlay для бесконечного потока музыки

📊 Логирование и мониторинг

  • File logging - сохранение логов в файлы для последующего анализа
  • Блокировка платформ - автоматическая блокировка неотвечающих API

🎛️ Расширение возможностей

  • Application User Command - поддержка пользовательских команд
  • TypedEmitter - прямая работа с объектами, улучшенная производительность
  • Lossless/FLAC поддержка - высококачественное аудио для Yandex Music

🏗️ Архитектурные улучшения

  • ControllerFilters наследует SetArray - улучшенная производительность фильтров
  • Bypass рекламы - обход рекламных вставок в изображениях и аудио
  • Очистка битых файлов - автоматическое удаление поврежденных аудиофайлов
  • Изменение хранения изображений трека - изменен image: {url: string } на image: string

⚡ Мелкие улучшения

🎯 Точность и надежность

  • Улучшенный related поиск - повышенная точность подбора треков в YouTube
  • Поддержка времени видео - получение длительности в related запросах
  • Расширенные форматы времени - поддержка нестандартных форматов (1 minute 33 seconds)

🏗️ Рефакторинг и оптимизация

  • Перенос аудио фрагментов - вынесение логики в отдельный аудио модуль
  • Разделение db.api.fetch - на 3 специализированные функции для лучшей читаемости

🐛 Исправленные баги

🧹 Оптимизация памяти

  • Исправление удаления буфера - корректная очистка в классе AudioBuffer
  • Устранение утечек памяти - исправление в QueueButtons
  • Правильное пересоздание сессий - Dave сессия теперь стабильнее

🔧 Стабильность работы

  • Исправление request_worker - гарантированный ответ на запросы
  • Timeout в httpsClient - установлено ограничение в 3 секунды
  • Исправление remove - корректное удаление элементов
  • Оптимизация логики очереди - улучшенное добавление треков

📡 Сетевая надежность

  • Улучшение deferred обработки - правильная работа системы сообщений
  • Исправление отправки пакетов - стабильная работа при отсутствии WebSocket соединения

Full Changelog: 0.3.0...0.3.1

0.3.0 Release

20 Aug 06:56
2e221f3

Choose a tag to compare

📦 Changelog — 0.3.0

✨ Основные изменения

  • 🆕 Полностью переработан движок воспроизведения: стабильные 20 ms send cycles с авто-адаптацией под нагрузку.
  • 🛠️ Добавлен Jitter Buffer — теперь при перегрузке процессора поток остаётся плавным (динамическое смещение от 20 ms → 40 ms → …).
  • 🎶 Поддержка BufferedAudioResource и PipeAudioResource для разных сценариев (seek, hot swap, длинные стримы).
  • 🔒 Полная интеграция DAVE (Discord Audio Voice Encryption) с поддержкой MLS proposals, commit, welcome и epoch-переходов.
  • 🎛️ Управление громкостью: <player>.volume, команда /volume.
  • ⚙️ Доработана расширяемая система циклов (BaseCycle, TaskCycle, PromiseCycle) с учётом event loop drift.

🆕 Новое

🔌 Rest/API

  • 🌐 RestObject + ClientRestRequest: общение с API платформ в отдельном worker-потоке.
  • 🔍 Исправление фильтрации платформ по возможностям (auth, audio, wave)
  • 📝 Улучшение типов, переход на декораторы
  • 🛠️ Исправления ошибок с платформами (Yandex, YouTube)
  • ⚡ Добавление поддержки Deezer
  • 📦 Улучшение получения аудио при запросе из кэша

🔄 Циклическая система

  • 🔧 Полностью откалибрована, стабильна даже на ARM
  • 🛰️ Динамический Jitter Buffer для гашения event loop lags

🧩 Переработка взаимодействий

  • 🆕 Новая система команд, компонентов, middlewares, rest
  • 🎨 Новые декораторы, улучшение типов
  • ⏱️ Добавление cooldown отдельно в middlewares

🎵 Audio

  • 🎧 Реализация fade-in / fade-out на уровне плеера.
  • 🔄 Поддержка hot audio swap без обрывов.
  • ⏱️ Улучшение синхронизации аудио (пока без фильтров)
  • 🛠️ Исправления Opus при сильной нагрузке
  • 🎼 Поддержка явной синхронизации для pipe-аудио

🐛 Исправления и улучшения

  • ⚡ Оптимизирован запуск child_process.spawn для ускорения старта FFmpeg (~10-50 ms).
  • 🧹 Улучшено управление GC и обработка event loop drift.
  • 🎯 Повышена стабильность при конвертации видео в фоне.
  • 🛡️ Добавлена защита DAVE-переходов от сбоев и откатов.
  • 🧩 Улучшено поведение при отсутствии плеера в циклах.
  • ⚡ Перевод middlewares в sync режим
  • ⚡ Упрощены: InteractionCreate, autocomplete, rest/request, player.play
  • 🧹 Удаление неиспользуемые данные в env
  • 🔄 Теперь нет service, а есть core
  • 📢 Сообщение о текущем треке теперь показывает кто включил трек
  • 🎚️ Изменён парсинг фильтров в <player>.filters.compress
  • 🔘 Кнопки разделены на отдельные файлы

🐞 Исправления багов

  • 🎯 Исправлен старый баг с Rest/API, когда отдавались не те данные
  • 🔘 bottombutton (как и должно быть)
  • ⚡ Исправление инициализации BufferedAudioResource
  • ⏳ Исправлена команда skip
  • 🛠️ Исправлена ошибка в RestServer, когда данные не возвращались
  • 🧩 Исправление добавления фильтра (мог не примениться при включении в последний момент)
  • 🧩 Исправлена ошибка с получением subcommand

📜 Ключевое из RC-версий

RC2

  • 🎶 Внедрена система громкости для плеера.
  • 🛠️ Добавлен BufferedAudioResource с seek-поддержкой.

RC3

  • 🔄 Поддержка PipeAudioResource для real-time потоков.
  • 🕒 Улучшена синхронизация Opus-пакетов с реальным временем.

RC4

  • 🔒 Завершена интеграция DAVE (MLS proposals, commit, welcome).
  • 📑 Добавлена полноценная поддержка подкоманд и autocomplete в Slash-командах.
  • 🧹 Чистка API и улучшение логики RestObject.

📜 Pull requests

Full Changelog: 0.2.5...0.3.0

0.3.0-rc4

01 Aug 12:29

Choose a tag to compare

🔄 RC4 — Release Candidate 4

🆕 Новое

  • Изменение структуры, удаление services

🌀 Система Циклов

  • 📚 Реализована новая архитектура: BaseCycle, TaskCycle
  • ⏱️ Адаптивное управление задержками с точным setTimeout и коррекцией дрейфа event loop
  • 🔄 Поддержка step, filter, execute, add, remove — API для кастомизации
  • 🧹 Автоматический и ручной GC после остановки плеера
  • 💾 Повторное использование буфера при инициализации аудио

🔐 End-to-End Шифрование (DAVE)

  • Полноценная интеграция DAVE: инициализация, переходы, ключи, защитные фреймы

⚙️ Команды

  • 🎤 Поддержка соло-команд
  • 🎛️ Пресеты для play: фильтры, громкость и т.д.
  • 🎲 Исправлен редкий баг с проигрыванием случайного трека
  • 📝 Добавлена команда report для отправки жалоб/ошибок
  • Исправлена проверка в команде seek

🌐 REST / API (Платформы)

  • 🔍 Исправлен механизм подбора трека при отсутствии прямого аудио
  • 🔧 Улучшено определение платформы по URL
  • 🛠️ Полностью переписан httpsClient
  • 🚫 Исправлена ошибка с фейковыми платформами (platform spoofing)
  • Теперь RestAPIThread правильно передает данные о платформе
  • Теперь rest/error обрабатывает тип отправки сообщения
  • Теперь yandex search отдает пустой array вместо ошибки

🎙️ Voice

  • Исправлено некорректное удаление голосового подключения

🔊 Audio

  • 🧮 Добавлен highWaterMark в BufferedAudio
  • 🧷 OpusEncoder теперь корректно обрабатывает head, tags сегменты
  • Теперь отправляется 3 SILENT_FRAME вместо 1 при старте

🎼 AudioPlayer

  • 🧠 Автономное управление жизненным циклом
  • 🧩 Поддержка SetArray для работы с фильтрами
  • ⌛ Добавлен timeout при неактивном аудио (автоостановка)
  • Улучшен плеер, теперь функция play является универсальной

🎧 Адаптивный Jitter Buffer

  • ⏳ Смещение времени в зависимости от event loop lag
  • 🔇 Устранение щелчков: автостабилизация буфера
  • 🔄 Переписан на do/while цикл

🌐 WebSocket Voice Gateway

  • 🔄 Переподключение при ошибках, улучшенное логгирование статусов
  • ✅ Полная поддержка Discord Gateway v8
  • 🔢 Добавлены: WebSocketOpcodes, DiscordGatewayCodes, DaveOpcodes
  • 📡 Добавлен User-Agent, включая интеллектуальное автоопределение
  • 🛡️ Установлен setMaxListeners для клиента Discord
  • 🎼 Исправлена рассинхронизация плеера при чтении аудио
  • 🧨 UDP сокеты корректно уничтожаются при новом запуске

📦 ClientSRTPSocket

  • 📊 Корректный расчёт header
  • 🔐 Усилена безопасность SRTP при коротких nonce

📥 Receiver

  • 🗣️ Начальная реализация приема аудио потока

🐞 Исправления (BugFixes)

  • 🖼️ Проблема с изображениями при получении треков автора
  • 🎵 Глобальные исправления поиска и получения аудио
  • Исправлен httpsClient, ранее возникала проблема с yandex
  • Изменено куча комментариев

🛠️ Технические улучшения

  • 🧹 Удалён g флаг у переиспользуемых RegExp
  • 🔢 Вернул Number.prototype.random
  • 🪵 Logger: буквенные префиксы I, W, D, E
  • 🧠 Ручной/динамический GC:
    • global.gc() вызывается при удалении последнего плеера
    • 📉 Потребление памяти снижено с 120MB до ~80MB

⚙️ Оптимизация Node.js

  • 🛠️ --optimize_for_size
  • ♻️ --expose-gc

📝 .env

  • 🗑️ Удалён player.preferred, теперь автоопределение таймера

⚡ Оптимизация

  • 🎨 Удалён discord.js Colors — теперь используется собственный enum

📜 Полный Changelog: GitHub Diff

Hotfix RC 3.1

27 Jun 12:58

Choose a tag to compare

♻️ Hotfix RC 3.1 — Мелкие исправления и улучшения

🔧 Что исправлено:

  • 🧠 Opus: устранена проблема, связанная с декодированием или определением тегов потока.
  • ⏱️ Очередь (queue): waitReboot теперь корректно использует параметр timeout, вместо захардкоженного 20_000.
  • 🌐 Rest/API: упрощена и ускорена формула поиска, снижен overhead.
  • 🔄 Цикл обновлений: обновлён для повышения стабильности и предсказуемости выполнения.

🔍 Обновление RC 3.1 направлено на повышение стабильности, устранение мелких неточностей и полную подготовку к следующему крупному релизу.

0.3.0-rc3

26 Jun 07:09

Choose a tag to compare

🛠️ UnTitles RC3 — Релиз-кандидат 3


✨ Главное в RC3

  • 🔁 Гибкая смена треков по отдельному параметру с audio.swap.fade
  • 🧠 Улучшенный интеллект плеера, ну почти)
  • 🔊 SILENT_FRAME теперь работает нативно, улучшения Opus-декодера
  • 🧩 Поддержка проверки аргументов в SelectAutocomplete
  • 🧼 Фильтрация бесполезных эффектов, добавлены vinyl, demonic
  • 📡 ClientWebSocket & ClientUDPSocket стабильнее, адаптивнее
  • 🧱 BufferedAudioResource с highWaterMark для снижения нагрузки

🧩 Новые возможности

🎚️ Аудио и фильтры

  • Добавлен audio.swap.fade — плавная смена трека с переходом
  • Обновлён audio.filters.compress — корректная работа с live-треками
  • Переупорядочен список фильтров: приоритет — полезным
  • Добавлены новые фильтры: vinyl, demonic
  • Улучшена совместимость параметров, устранены unsupported

🧠 Автозаполнение и интерактивность

  • autocomplete теперь поддерживает filter disable
  • Упрощена логика для autocomplete skip, remove
  • Повышена точность проверки аргументов SelectAutocomplete
  • Сообщения current_play и queue переведены на ComponentsV2

🌍 Локализация и язык

  • Новая функция universalLang() — объединение языковых кодов (es-419 = es-ES)
  • Обновлён languages.json: упрощены названия, удалены неиспользуемые переводы

🧩 UX/UI

  • Переход на componentV2 для таких сообщений как currentplay, queue

⚙️ Оптимизации и исправления

🔧 Opus и аудио система

  • Добавлен SILENT_FRAME собственной генерации
  • Исправлена ошибка двойных тегов Opus
  • Новый таймер missCounter для контроля дрифта времени
  • Проверка на наличие фрейма перед отправкой в голос

💾 Ресурсы

  • PipeAudioResource: увеличен буфер, корректно рассчитывает проигранное время
  • BufferedAudioResource: добавлен highWaterMark (меньше нагрузка на CPU за тик)

🛰️ Система голосовой связи

  • Новый HeartbeatManager для стабильной работы WebSocket
  • ClientUDPSocket теперь независим, подключается через connect
  • Улучшена проверка состояний ready
  • Переработан reconnect, теперь учитывается кол-во попыток

🐞 Исправления

  • Исправлен Logger, баг с .replace
  • Исправлено поведение плеера при ошибке (теперь не пропускает трек)
  • Исправлен баг с self_deaf при подключении
  • Исправлено время в BufferedAudioResource
  • Удалён спам об ошибках в консоли
  • Добавлен timeout для PipeAudioResource
  • Фиксы при обрыве соединения Discord во время обновления сообщений

🔒 DDoS & стабильность

  • Поддержка idle-timeout для обхода потенциальных DDoS-блокировок
  • Поддержка правильного reconnect по коду ошибки 4006

🔧 Рефакторинг и прочее

  • Улучшена производительность кода
  • Обновлены и исправлены комментарии
  • discord-api-types обновлены до 0.38.12
  • Discord.js обновлён до 14.20
  • Увеличен прогресс-бар до 15 символов
  • Улучшен RestSpotifyAPI и RestSoundCloudAPI (authorization)
  • Удалена неэффективная генерация componentEmbed в очереди

🧩 Мелкие улучшения

  • Авто-замена имени трека при создании Track
  • Добавлены: disk.emoji, image.banner
  • Уточнение времени в message_push, message_error
  • Комментарии и названия фильтров теперь UPPER_CASE
  • Lyrics недоступны для live-контента

Full Changelog: 0.3.0-rc2...0.3.0-rc3

0.3.0-rc2

12 Jun 16:39

Choose a tag to compare

UnTitles 0.3.0-rc2 — Release Candidate 2 | Notes

🎵 Обновление плеера

Подробнее

  • Отделён _readStream от AudioPlayer, теперь он — родительский класс
  • При любой ошибке чтения аудио потока он пропускается и сразу удаляется из очереди
  • Добавлены обязательные абстракции для родительского плеера
  • Изменена функция play, добавлены комментарии, логика чтения переключена на emit only
  • Добавлены отсутствующие removeAllListeners

🛠 Обновление middlewares и исправления

Подробнее

  • Добавлен middleware player-wait-stream в некоторые команды
  • Исправлена ошибка player-not-playing

⏱ Улучшение Cycle циклической системы

  • Повышена точность таймера до 20 ms

🌐 Env

  • Добавлено описание для платформы SoundCloud

🔄 Обновление (WebSocket, VoiceConnection)

Подробнее

  • Игнорируются коды 4014, 4022
  • Добавлен бесконечный WebSocket (живёт вместе с VoiceConnection, подключается по необходимости)
  • Исправлена ошибка отсутствия плеера в middleware

🎙 Изменения voice

Подробнее

  • Небольшие изменения в WebSocket, добавлен сброс соединения (reset)
  • Корректировки в connection.ts

⏸ Ограничение на pause/resume

Подробнее

  • Во избежание спама и рассинхронизации аудио потока

🔍 Multi-AudioResource-Search

Подробнее

  • Поиск аудио теперь работает на всех поддерживаемых платформах
  • Обновлен конструктор slash-команд
  • Обновлены коды ошибок для плеера и модулей
  • Добавлен геттер audioSupport — список платформ с аудио
  • Добавлен статический класс httpsStatusCode
  • Добавлена поддержка UDPv4 и UDPv6

Прочие улучшения и исправления

  • Изменена логика сообщений плеера с учётом followUP
  • Оптимизировано использование <guild>.id
  • Улучшена реализация WebSocket, UDP и цикла Cycle
  • Добавлена система middlewares с динамической загрузкой
  • Поддержка переключения голосового канала во время проигрывания трека

Поддержка live и длительных треков

Подробнее

  • Добавлены реализации для получения opus: BaseEncoder, BufferedEncoder, PipeEncoder
  • Добавлены реализации для воспроизведения аудио: BaseAudioResource, BufferedAudioResource, PipeAudioResource
  • Параметр PLAYER_BUFFERED_TIME для выбора между BufferedEncoder и BufferedAudioResource
  • Фильтры не применяются к live-потокам и live не отслеживается при безопасном выключении
  • Поддержка live в прогресс баре

Сетевая адаптивность

  • Адаптивная система отправки пакетов — можно задавать количество пакетов на тик
  • Мелкие улучшения RTP, удалён тип random
  • Параметр OPUS_FRAME_SIZE
  • Возврат к performance.now() в цикле
  • Исправления в безопасном выключении

Исправления и документация

Подробнее

  • Безопасное выключение
  • Обновления в WS и RTP
  • Точная коррекция времени в цикле
  • Безопасное создание буфера в Opus
  • Обновлен README.md

Улучшение autocomplete

Подробнее

  • Отображение времени, автора и названия трека в команде play

Исправления

Подробнее

  • Исправлено повторное включение текущего трека
  • waitStream корректно обновляется
  • Циклы и обработчики теперь используют Set вместо массива (SetArray — кастомный класс)

What's Changed

Other Changes


Full Changelog:
0.3.0-rc1...0.3.0-rc2

0.3.0 Unstable

29 May 16:00

Choose a tag to compare

0.3.0 Unstable Pre-release
Pre-release

What's Changed

  • База данных перенесена в отдельный файл
  • Env загружается автоматически для удобства
  • Изменение tsconfig.json, точнее путей
  • Изменение README.md, добавление нового изображения
  • Упрощение добавления данных у некоторых классов

Dependencies

  • Обновление discord.js до версии 14.19.3
  • Обновление @types/node до версии 22.15.24
  • Обновление ws до версии 8.18.2

Client

  • Добавлен shardID в главный класс клиента
  • Новая система отправки сообщений (убран посредник в виде Interact)

Client Status

  • Добавлен мульти-статус, настраиваемый через env файл
  • Теперь статусы инициализируются после готовности клиента
  • Добавлена поддержка встраивания, поддерживаемые типы {guilds}, {version}, {queues}, {players}, {shard}, {users}
  • Добавлена проверка. Если статусы неправильно написаны, просто выдаст ошибку загрузки
  • Доработана возможность указывать свой browser через env

Message System

  • Создание embed компонента перенесено в queue
  • Обновление сообщения перенесено обратно в цикл

Commands

  • Переработка типизации и внедрение нового функционала
  • Добавлена поддержка типов команд guild, private, public
  • Убрана под-команда re-configure, будут отлаживать до полной автоматизации
  • Переработка команд, добавлен новый параметр permissions, теперь для создания под-команд используется декорматор SlashCommandSubCommand
  • Исправлен тип (subcommand) у команд
  • Добавлен функционал autocomplete в remove, skip
  • Добавлена поддержка type в autocomplete

Database

  • Постепенная переработка
  • Теперь есть возможность загружать не полностью

Logger

  • Теперь отображает кол-во используемой памяти (RAM)

Audio

  • Для работы сообщений внутри музыкальной системы используется свой класс QueueMessage
  • Добавлено кеширование фреймов, если играет 1 трек. Он будет просто играть заново
  • Упрощен класс PlayerTracks, Track, Queue, AudioPlayer (добавлены Base классы)
  • Добавление глобальных типов в PlayerTracks, QueueMessage, PlayerVoice
  • Немного изменен VoiceStateUpdate
  • Добавлен переход плеера на следующий трек при ошибке
  • Упрощение проверки в Process

Voice

  • Уход с измененной @discordjs/voice, переход на свою реализацию (возможен запуск на Seyfert)
  • ClientRTPSocket, ClientUDPSocket, ClientWebSocket, управляют голосовой системой
  • Новый OpusEncoder, проще и лучше, а главное быстрее
  • ClientUDPSocket - inverval перешел на 10 сек, ранее был 5 сек

Rest/API

  • Переход на Worker threads, для разгрузки основного потока
  • Теперь есть разделение на ServerSide, ClientSide
  • Прекращена поддержка Discord, теперь файлы не получится прикреплять
  • Добавление плашки платформам без возможности получать аудио
  • Исправлен rest/api spotify, немного изменена система rest
  • Исправлена ошибка при получении кеша от Rest/API
  • Обновлена проверка в Track.resource
  • Исправление Rest/API search
  • Исправлен YouTube Signature Extractor
  • Новый httpsClient

TypedEmitter

  • Добавленна поддержка логирования ошибок

Other Changes

  • Теперь учтено удаление бота с сервера с включенной музыкой
  • Исправлена работа коллекции, не выполнялись необходимые функции при удалении
  • Изменено вычисление progress bar
  • Упрощение prototype
  • Так-же куча мелких изменений

Full Changelog: 0.2.5...0.3.0-rc1