# Changelog
## 0.13.0
- Fix `Http::delete_player`.
- Make `Error` be `#[non_exhaustive]`
## 0.12.0
- `load_tracks()` in python now returns `Track`.
- Implement search utilities in python.
- Rework queues.
- Implement `Stream` to `QueueRef`.
- Switch from reqwests to `hyper`
- Expose `Node` and `Http` to python.
- Fixed filters.
- Update model, and remove deprecated fields.
- Implement `Track` user_data.
- Expose plugin information and user data to python.
## 0.11.2
- Implement a hikari-lightbulb example.
- Implement constructors for the structures that should be contructable within python.
- Change code formatting to ruff instead of black.
- Add @staticmethod flags to the stubs.
- Become pyright complient.
- Remove the pure hikari example
## 0.11.1
- Fix python version limit upper bound to include every 3.12 version.
## 0.11.0
- Remove the typemap_rev dependency.
- Remove user-data feature.
- Move user-data to a standard rust implementation inspired by 0.13 serenity.
- Merged `serenity-native` and `serenity-rustls` into a single `serenity` feature.
- Implement `PlayerContext::play()`
- Switched from `async-tungstenite` to `tokio-tungstenite`
- Move the hook macro inside the library.
- Implement user data in lavasnek.
- Implement discord voice event handling and `ConnectionInfo` creation utilities.
- Implement python stubs.
- Create python documentation.
- Support twilight-model 0.16
- Hide passwords from logs.
- Implemented node selection methods:
- Round-Robin.
- Main and fallback.
- Lowest CPU load.
- Most memory free.
- Custom method.
## 0.10.0
- Implement events in python.
- Update dependencies.
## 0.10.0-beta.3
- Initial Python implementation.
## 0.10.0-beta.2
- Implement additional queue altering actions.
- Fix stop request.
- Fix skip on an empty queue.
- Implement raw REST requests.
- Expand the poise example functionality.
## 0.10.0-beta.1
- Replace all u128 with u64 due to [serde issue](https://github.com/serde-rs/json/issues/625).
## 0.10.0-beta.0
- Implement native-tls support.
- Improve user data.
- Document code.
## 0.10.0-alpha.3
- Implemented search engine helpers with plugin support.
- Implemented a fix for player context death on lavalink restart.
- Add support for songbird.
- Add support for serenity.
- Add support for twilight-model.
- Switch reqwest from native-tls to rustls.
## 0.10.0-alpha.2
- Implement readers for queues and players.
- Remove main.rs and move to its own example.
## 0.10.0-alpha.1
- Implement write-only queues and players.
## 0.10.0-alpha.0
- Complete rewrite of the library.
## 0.9.0-rc.3
- Replace all tokio locks with parking_lot.
- Create session on voice_server_update.
- create_session() no longer creates a node if there's an existing one.
- Added track_exception and track_stuck events.
- Implement Clone for the track exception event.
- Fully reconnect if session became invalid.
- Pause and resume after creating a session on voice server update.
- Fix log levels.
- Add a way to be able to generate a TrackQueue from the PlayParameters builder.
- Fixed Panic on TrackEndEvent.
- Try to stop holding dead connections.
- Renamed simple-gateway feature with discord-gateway.
- Actually toggle is_paused on the node if available.
- Add a way to decode information from a Track BASE64.
- Added the Client-Name header that Lavalink asks for. (@zedseven)
- Implement lavalink reconnecting.
## 0.9.0-rc.2
- typemap_rev is now re-exported.
- Automatically remove Removed wss:// from endpoint if present.
- Add functions to wait for ConnectionInfo insert and delete.
- Implemented public raw event handlers.
- Make the wait time before connecting customizable.
- Allow to configure the discord gateway auto-start.
- Fix reconnect unwrap if the previous reconnect worked.
- Some structs now support Serde.
- Check for both Server and State events in join()
- Remove andesite support due to it getting archived.
- Switched serenity example back to songbird.
- Builders now take and return &mut.
- Feature gate tracing, and add log as a possible logger.
- Updated async_tungstenite.
- Switched log levels in some messages.
## 0.9.0-rc.1
- Feature gated songbird.
- Added a simple voice connection handler.
- Removed tokio 0.2 support.
## 0.9.0-rc.0
- Updated Songbird.
- Updated Twilight.
- Updated Tungstenite.
- Updated readme to include missing required features.
## 0.8.0
- Fixed typo on get_tracks()
- Transitioned to Vicky
- Create the Node on create_session() rather than queue()
- Fixed warning on twilight example
## 0.7.2
- Add equalize_dynamic() method
## 0.7.1
- Added a minimum rust version check.
## 0.7.0
- Added documentation.
- Added examples to the documentation.
- Removed unused type alias.
- Removed unused Error variants.
## 0.7.0-rc.0
- Added twilight support
- Added serenity and twilight features.
- Added 2 andesite (exclusive?) events.
- Moved away from --example builds.
- Added twilight example.
## 0.6.0
- Added tracing and event logging.
## 0.6.0-rc.1
- Exposed loops() field via method.
- Fixed self on play in the example.
## 0.6.0-rc.0
- YaY another rewrite! *mostly*
- Switched to internal locks only.
- Added builder module.
- Added a LavalinkClient builder.
- Removed unneeded function parameters.
- Removed unneeded `Option<T>`.
- Removed unneeded Errors.
- Implement `From<Error>` for various external library errors.
- Made `LavalinkClient.set_addr()` take an `impl Into<_>`.
## 0.5.4
- Added LavalinkClient.set_addr() - @suisei #8
- Fixed deserialization error causing a bad result on track loading.
## 0.5.3
- Added basic andesite feature to fix the different playlist information sent by it
## 0.5.2
- Properly handle no features
- Fixed docs.rs build
## 0.5.1
- Fixed reqwest tls features
- Added missing features warning
## 0.5.0
- First non-alpha release
- Added support for native-tls and rustls as features
- Added support for tokio 0.2 as features
## 0.4.0-alpha
- Switched to Songbird
- Updated to tokio 1.0
- Updated to serenity 0.10
## 0.3.0-alpha
- Updated serenity to 0.9
## 0.2.2-alpha
- Fixed deadlock
- Queue loop can now be closed
## 0.2.1-alpha
- Fixed dev branches of lavalink
- Removed mutable references on the play builder
## 0.2.0-alpha
- (Breaking) added data field to Node.
- Update now_playing position in player_update
- Add requester field to TrackQueue
- Destroy now skips if possible.
## 0.1.4-alpha
- UserId parameters take Into trait.
- Added some methods to GuildId.
## 0.1.3-alpha
- Added has to GuildID
## 0.1.2-alpha
- added equalization support.
## 0.1.1-alpha
- Pushed to crates.io
## 0.1.0-alpha
- Rewrote the library.
- Added events.
- Optimized the codebase.
- Removed all the clones from the examples.
- Remade easy queues.
## 0.0.3-alpha
- Added easy queues
- Added nodes
## 0.0.2-alpha
- Added start time to play()
- Added finish time to play()
- Added overwrite current stream to play()
- Added pause()
- Added resume()
- Added stop()
- Added destroy()
- Added seek()
- Added set_volume()
- Updated serenity.
## 0.0.1-alpha
- Initial release