Skip to content

v3.0.0

Compare
Choose a tag to compare
@appellation appellation released this 21 Nov 05:50
· 47 commits to master since this release

Breaking changes

  • Reorganized Redis keys and key types: existing databases should be flushed
    • list has been renamed to next, np has been replaced with a simple pos indicator, and prev has been added to keep track of previous songs
  • Playlists will no longer advance when the player is stopped using the WebSocket
  • Upgraded to ioredis v4
  • lavalink is now a direct dependency
  • Queues now clear themselves after the last song ends

Additions

  • Queue#sort(predicate?: (a: string, b: string) => number): Promise<number> has been added; does not operate on previous songs; resolves with length of the list
  • Queue#move(from: number, to: number): Promise<string[]> has been added. Moves songs from one position to another by index; supports negative indices to wrap around list.; does not operate on previous songs Resolves with the new list.
  • Queue#shuffle(): Promise<string[]> has been added; resolves with the new list; does not operate on previous songs
  • Queue#clear now returns a native Promise instead of PromiseLike
  • Queue#tracks now returns a native Promise instead of PromiseLike
  • Queue#next now accepts negative numbers to advance the queue in reverse
  • NP typedef (represents a currently playing track) now will always have track and position properties.
  • QueueStore#redis has been extended to include new custom commands
    • lmove(key: string, from: number, to: number): Promise<string[]> moves elements in a list from one index to another
    • loverride(key: string, ...args: any[]): Promise<number> will override a key with new list data
    • lshuffle(key: string, seed: number): Promise<string[]> will shuffle elements of a list
    • multirpoplpush(source: string, dest: string, count: number): Promise<string[]> will rpoplpush multiple elements
  • Client now has an advanceBy(queue: Queue, info: { previous: string, remaining: number }): number which will be called in any situation where a track is ended and an advancement count has not been provided. This is typically called when a track ends naturally and the queue needs to determine how many tracks to advance. previous represents the track that just ended. remaining represents the number of songs left in the queue.
    • Client now accepts an advanceBy property in constructor options