aboutsummaryrefslogtreecommitdiff
path: root/src/client
Commit message (Collapse)AuthorAgeFilesLines
* Fix doctests for a variety of feature targetsZeyla Hellyer2017-11-011-0/+6
|
* Use consistent token names in examplesZeyla Hellyer2017-11-011-1/+1
| | | | | The names of environment variable tokens in the examples differed, so this makes them all use the same name.
* Fix shard shutdown via ContextZeyla Hellyer2017-10-292-7/+26
| | | | | | | | | | | | | | | | | | | | This fixes the shard shutdown via the Context. This works by setting a "shutdown" field on the Shard struct as being true, indicating that the Shard has shutdown. The Shard Runner detects this and requests a shutdown from the Shard Manager. The ideal solution here would be to add a "Shutdown" variant to serenity::gateway::ConnectionStage, but that would be a breaking change, so we instead need to opt for adding a new struct to gateway::Shard. The Shard Manager has also been updated to only attempt the shutdown of a shard if it doesn't already know for certain that it shut itself down, which avoids an error logged saying that there was an error sending a shutdown message to its Shard Runner. When all shards have been shutdown (for most bots, this will only be one), the Shard Manager will end and the Client will stop its operations, returning thread control to the user.
* Fix clippy lintsZeyla Hellyer2017-10-115-22/+27
|
* Make the client threadpool user-customizableZeyla Hellyer2017-10-094-15/+38
| | | | | | In addition to making the threadpool used by client shards customizable by the user, make only a single threadpool (as opposed to one per shard) and share it across all shards.
* Add a threadpool to the shard runnerZeyla Hellyer2017-10-092-27/+54
| | | | | | A threadpool will help with giving event dispatches a threaded behaviour while still allowing the library the ability to perform other actions, such as receiving new events and heartbeating over the websocket client.
* Fix most clippy warningsMaiddog2017-10-042-14/+2
|
* `to_owned` -> `to_string`acdenisSK2017-10-012-6/+6
|
* Rename an internal Shard Runner methodZeyla Hellyer2017-09-301-2/+2
| | | | | `ShardRunner::recv_events` actually only receives one event, so de-pluralize it.
* Improve shard logicZeyla Hellyer2017-09-301-83/+75
| | | | | | | | | | Improve shard logic by more cleanly differentiating when resuming, as well as actually fixing resume logic. For shard runners, better handling of dead clients is added, as well as more use of the shard manager, in that the runner will now more liberally request a restart when required (instead of sitting and doing nothing infinitely).
* Improve shard and shard runner loggingZeyla Hellyer2017-09-301-3/+19
|
* Fix client shards by cloning ShardManager runnersZeyla Hellyer2017-09-274-10/+15
| | | | | | Due to the new ShardManager, `Client::shards` would never fill, so instead clone the `shard_runners` instance from the `ShardManager` to the `Client`.
* Fix client no-framework compilationZeyla Hellyer2017-09-274-32/+79
|
* Fix tests and example 05Zeyla Hellyer2017-09-242-4/+1
|
* Add a shard managerZeyla Hellyer2017-09-246-268/+526
| | | | The shard manager will queue up shards for booting.
* Remove tokio usageZeyla Hellyer2017-09-213-362/+135
|
* Fix a documentation typoZeyla Hellyer2017-09-191-1/+1
|
* Also rustfmtZeyla Hellyer2017-09-181-1/+3
|
* Fix block on spawning multiple shardsZeyla Hellyer2017-09-183-22/+28
| | | | | | | | | | | | When spawning multiple shards (via an equal number of futures - one per shard) joined on a core.run use, the very first future executed would block forever due to a sync, blocking `monitor_shard` use. While this defeats the purpose of tokio, this was meant to be a first step to an async serenity implementation. To "fix" this blocking call until a deeper async implementation is made, spawn a new thread per tokio core (and thus per shard). This causes the same expected behaviour, just with multiple threads like before.
* Apply rustfmtZeyla Hellyer2017-09-182-66/+17
|
* Fix compiles of a variety of feature combinationsZeyla Hellyer2017-09-182-24/+15
| | | | | This fixes compilation errors and warnings when compiling a mixture of non-default feature targets.
* Revamp `CacheEventsImpl`acdenisSK2017-09-121-69/+59
|
* Copy some methods from Command to Group (#164)Maiddog2017-09-111-1/+4
|
* Add `Context::handle`acdenisSK2017-09-112-44/+48
|
* Implement categoriesacdenisSK2017-09-092-0/+15
|
* Change order to avoid subtraction overflow error (#160)Maiddog2017-09-071-1/+1
|
* Add a way for users to get ShardsZeyla Hellyer2017-09-051-0/+56
| | | | | | Add a HashMap which contains the shards, keyed by the shard ID with the value as the shard. This allows for manual interaction outside of event handlers.
* Prevent malformed opus data from crashing the bot process (#149)Maiddog2017-08-272-76/+84
|
* Add ability to play DCA and Opus files. (#148)Maiddog2017-08-273-24/+73
|
* Revamp `RwLock` usage in the libacdenisSK2017-08-243-151/+102
| | | | Also not quite sure if they goofed rustfmt or something, but its changes it did were a bit bizarre.
* Move builtin framework impl to its own moduleZeyla Hellyer2017-08-192-5/+5
| | | | | | | | | | | | | | | | | The framework is now moved in its entirity to the `framework` module, with the `Framework` trait currently on its own and the builtin implementation provided. The builtin implementation has been renamed to "Standard". Upgrade path: Rename the `BuiltinFramework` import to `StandardFramework`. Instead of importing builtin framework items from `serenity::framework`, import them from `serenity::framework::standard`. This is the beginning to #60. The root `framework` module (non-standard implementation) will be built more by the time it's closed.
* Apply rustfmtZeyla Hellyer2017-08-182-14/+62
|
* Move the Framework trait to the frameworkZeyla Hellyer2017-08-182-3/+3
|
* Split event handling in the cache to a traitacdenisSK2017-08-101-18/+4
| | | | note: This trait might become like `framework::Framework` in the future.
* Clippy and rustfmtacdenisSK2017-08-011-6/+6
|
* Remove a few clonesacdenisSK2017-07-291-5/+6
|
* Change the config a bit, and a few nitpicksacdenisSK2017-07-272-25/+35
|
* rustfmtacdenisSK2017-07-275-161/+156
|
* Use a consistent indentation styleZeyla Hellyer2017-07-261-18/+18
| | | | | | | | | This project has - in the past - used an indentation style of 4 spaces, without trailing whitespace. This commit modifies lines with tab indentation to 4 spaces. Whether to use tabs or spaces is up to the current maintainer, but consistency avoids files eventually being completely mixed styles.
* Make the `framework` module feature-gated and fix the names in the helper macroacdenisSK2017-07-272-6/+6
|
* Fix condional compilation for `Framework::initialized` when ↵acdenisSK2017-07-271-18/+22
| | | | builtin-framework is turned off
* PhantomData begoneacdenisSK2017-07-231-1/+0
|
* Fix #130acdenisSK2017-07-222-91/+102
| | | | Removed action support from the builtin one as well, due to it adding some uneccassery complexity and it being only asked upon by one user
* Fix event handler dispatchingacdenisSK2017-07-171-7/+11
|
* Make CloseHandle derive Copy (#127)Jorge Israel Peña2017-07-161-1/+1
|
* Handle the closing of Shards (#126)Jorge Israel Peña2017-07-161-3/+16
|
* Possibly fix the closing of shardsacdenisSK2017-07-161-2/+1
|
* Add a close handle for closing the shards in another threadacdenisSK2017-07-161-4/+13
|
* Actually, revert the publicity and add `#[derive(Clone)]`acdenisSK2017-07-161-1/+2
|
* Make `HANDLE_STILL` publicacdenisSK2017-07-161-1/+1
|