Releases: SNIPPIK/UnTitles
Releases · SNIPPIK/UnTitles
0.4.1
0.4.0
🔊 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
Исправления и улучшения
- Немного переработана загрузка трека в плеере, теперь обработка в модуле audio
- Немного улучшен цикл
- Изменены описания фильтров
- Добавление функции toZero для трансформации в формат 00:05
- Исправление точности поиска трека при отсутствии аудио
- Добавление доп логов для отслеживания Garbage Collector
- Изменение 1 debug лога на warn
- Исправление прогресс бара
Full Changelog: 0.3.1...0.3.2
Более крутые штуки будут в 0.4.0!
0.3.1
🎉 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
📦 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, когда отдавались не те данные
- 🔘
bottom→button(как и должно быть) - ⚡ Исправление инициализации
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
- Bump @types/node from 22.15.2 to 22.15.3 by @dependabot[bot] in #3
- Bump zlib-sync from 0.1.9 to 0.1.10 by @dependabot[bot] in #4
- Bump ws from 8.18.1 to 8.18.2 by @dependabot[bot] in #5
- Bump @types/node from 22.15.3 to 22.15.17 by @dependabot[bot] in #7
- Bump @types/node from 22.15.17 to 22.15.19 by @dependabot[bot] in #8
- Bump @types/node from 22.15.24 to 22.15.29 by @dependabot[bot] in #10
- Bump discord-api-types from 0.38.8 to 0.38.9 by @dependabot[bot] in #9
- Bump @types/node from 24.0.0 to 24.0.1 by @dependabot[bot] in #11
- Bump @types/node from 24.1.0 to 24.2.1 by @dependabot[bot] in #25
Full Changelog: 0.2.5...0.3.0
0.3.0-rc4
🔄 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.jsColors — теперь используется собственныйenum
📜 Полный Changelog: GitHub Diff
Hotfix RC 3.1
♻️ Hotfix RC 3.1 — Мелкие исправления и улучшения
🔧 Что исправлено:
- 🧠 Opus: устранена проблема, связанная с декодированием или определением тегов потока.
- ⏱️ Очередь (queue):
waitRebootтеперь корректно использует параметрtimeout, вместо захардкоженного20_000. - 🌐 Rest/API: упрощена и ускорена формула поиска, снижен overhead.
- 🔄 Цикл обновлений: обновлён для повышения стабильности и предсказуемости выполнения.
🔍 Обновление RC 3.1 направлено на повышение стабильности, устранение мелких неточностей и полную подготовку к следующему крупному релизу.
0.3.0-rc3
🛠️ 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
UnTitles 0.3.0-rc2 — Release Candidate 2 | Notes
🎵 Обновление плеера
- Отделён
_readStreamотAudioPlayer, теперь он — родительский класс - При любой ошибке чтения аудио потока он пропускается и сразу удаляется из очереди
- Добавлены обязательные абстракции для родительского плеера
- Изменена функция
play, добавлены комментарии, логика чтения переключена наemitonly - Добавлены отсутствующие
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
- Bump @types/node from 22.15.24 to 22.15.29 by @dependabot in #10
- Bump discord-api-types from 0.38.8 to 0.38.9 by @dependabot in #9
Full Changelog:
0.3.0-rc1...0.3.0-rc2
0.3.0 Unstable
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
- Так-же куча мелких изменений
- Bump @types/node from 22.15.2 to 22.15.3 by @dependabot in #3
Full Changelog: 0.2.5...0.3.0-rc1