5.4.1 (2026-08-28)
- VoiceManager: correct when voice connect/disconnect events should emit (9ec8a47)
5.4.0 (2026-08-25)
- VoiceManager: rework voice update handling (#106) (d5ef0a0)
- VoiceManager: emit disconnect event instead of destroying (d5ef0a0)
- VoiceState: add 'joined' prop and reconnect() method (d5ef0a0)
- QueueManager: finish queue with reason instead of destroying (d5ef0a0)
- Typings: add 'QueueEndReason' enum and missing complementary types (d5ef0a0)
5.3.0 (2026-07-26)
5.2.0 (2026-07-12)
5.1.0 (2026-06-23)
- Player: make init nodes optional (#72) (a714371)
- Player: optional 'nodes' param for init() (a714371)
5.0.0 (2026-06-06)
- Plugins: all built-in plugins have been removed
- Plugins: enforce structure via interface instead of class (#68)
- Functions: add isPlugin() for plugin validation (e2e2718)
- Plugins: enforce structure via interface instead of class (#68) (e2e2718)
4.7.0 (2026-05-18)
- Managers: expose queue and voice manager caches (#65) (8468a73)
- Queue: typed track user data param for 'add' methods (#63) (aa7bb18)
4.6.2 (2026-05-09)
4.6.1 (2026-04-16)
4.6.0 (2026-04-06)
- QueueManager: new arg 'inQueue' for track events (62ad965)
- QueueManager: prefer local track objects in events (#48) (62ad965)
4.5.0 (2026-03-23)
- VoiceRegion: add forgetAllNodes() method (ebf4357)
- VoiceRegion: improve latency based node selection (#46) (ebf4357)
4.4.0 (2026-03-16)
- QueueManager: account for different loads in relocate() (00445b3)
- QueueManager: improve sync and relocate methods (#42) (00445b3)
- QueueManager: make relocate() send requests sequentially (00445b3)
- QueueManager: make remote sync() send requests sequentially (00445b3)
4.3.0 (2026-03-06)
- VoiceCloseCodes: add enum for DAVE protocol required (5891b91)
- REST: format error response correctly (584aea9)
4.2.0 (2026-02-28)
4.1.0 (2026-02-25)
- HttpStatusCode: add some http status codes (d9c88bf)
- Queue: add 'clear' method (4f0f32c)
- RequestOptions: add 'headers' field (d9c88bf)
- REST: replace axios with native fetch (#35) (d9c88bf)
- FilterManager: use object has-own instead of 'in' for has() (1f8fac9)
- LavaLyrics: mark plugin name as readonly (7d31e17)
- NodeManager: prevent deletion of nodes with active queues (ccff57d)
- Queue: allow remove() to remove current track if queue is stopped (71af92d)
4.0.0 (2026-02-19)
- Plugins: improve event system (#32)
- Plugins: improve event system (#32) (3bdbd90)
- types: add commonly used augmentable types (#31) (f211709)
3.0.0 (2026-02-15)
- typings and queue sync (#27)
2.1.0 (2026-02-15)
- Player: add options to toggle queue sync and relocation (ef33034)
- queue sync and relocation options (#26) (ef33034)
- Queue: implement sync method (ef33034)
- QueueManager: implement sync and relocate methods (ef33034)
- VoiceState: new property for 'disconnected' state (#25) (4fb06a0)
2.0.1 (2026-02-04)
- Queue: do not construct if one already exists (5eb1036)
2.0.0 (2026-02-03)
- Plugins: better plugin system (#11)
- Player: removed
relocateQueuesoption (e5077c2) - Player: removed
nodesandpluginsfrom instance options (e5077c2) - Player: renamed
initializedproperty toready(e5077c2) - REST: removed
retryLimitoption (e5077c2) - REST: removed request queue and
dropSessionRequests()(e5077c2) - Node: removed
handshakeTimeoutproperty (e5077c2) - FilterManager: removed
dataproperty (e5077c2) - QueueManager: removed
cacheandrelocate()(e5077c2) - VoiceManager: removed
cacheproperty (e5077c2) - VoiceManager: removed queue auto-destroy feature on guild/channel delete (e5077c2)
- NodeManager: removed queue auto-relocation feature on close/disconnect (e5077c2)
- VoiceRegion: removed
nodesproperty (e5077c2) - VoiceRegion:
getAveragePing()now returnsnullfor insufficient data (e5077c2) - VoiceState: removed
valid,sessionId,token,endpoint,muted,deafened, andreconnect()(e5077c2)
- Plugins: better plugin system (#11) (e0a791e)
- Player:
autoInitoption to control initialization (e5077c2) - REST: directly usable common http methods (#16) (0415148)
- Node:
reconnectLimitcan now be an integer, 0 for none, positive for limit, negative for no limit (e5077c2) - Node: exposed
reconnectLimitproperty (e5077c2) - NodeManager: exposed
metricsandsupports()(e5077c2) - REST: exposed
baseUrlanduserAgentproperties (e5077c2) - FilterManager: included
pluginFiltersas a valid filter key (e5077c2) - FilterManager: added clear filter types
nativeandpluginforclear()(e5077c2)
- Node: record timestamp before sending ping (#15) (b510b3c)
- Node: persist
sessionIdwhen reconnecting (e5077c2) - Playlist: mandate track(s) in raw api data (e5077c2)
1.3.0 (2025-11-14)
1.2.1 (2025-10-19)
- FilterManager: do not allow getting pluginFilters (#6) (446538c)
- voice: do not destroy on arbitrary close codes (#4) (d11225e)