diff options
| author | Maiddog <[email protected]> | 2017-08-26 17:55:43 -0500 |
|---|---|---|
| committer | alex <[email protected]> | 2017-08-27 00:55:43 +0200 |
| commit | 3e0b1032d80a1847558a752e8316d97f9ae58f04 (patch) | |
| tree | ca65390091cb3c0ab98b6497a1447ba69df3d20d /src/client | |
| parent | Use `$crate` for `Args` (diff) | |
| download | serenity-3e0b1032d80a1847558a752e8316d97f9ae58f04.tar.xz serenity-3e0b1032d80a1847558a752e8316d97f9ae58f04.zip | |
Add ability to play DCA and Opus files. (#148)
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/context.rs | 2 | ||||
| -rw-r--r-- | src/client/dispatch.rs | 71 | ||||
| -rw-r--r-- | src/client/mod.rs | 24 |
3 files changed, 73 insertions, 24 deletions
diff --git a/src/client/context.rs b/src/client/context.rs index e8595cd..d0600b6 100644 --- a/src/client/context.rs +++ b/src/client/context.rs @@ -75,7 +75,7 @@ impl Context { /// let mut client = Client::new("token", Handler); client.start().unwrap(); /// ``` #[cfg(feature = "builder")] -pub fn edit_profile<F: FnOnce(EditProfile) -> EditProfile>(&self, f: F) -> Result<CurrentUser>{ + pub fn edit_profile<F: FnOnce(EditProfile) -> EditProfile>(&self, f: F) -> Result<CurrentUser> { let mut map = Map::new(); feature_cache! {{ diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs index cb45428..461fe8c 100644 --- a/src/client/dispatch.rs +++ b/src/client/dispatch.rs @@ -62,7 +62,7 @@ pub fn dispatch<H: EventHandler + 'static>(event: Event, framework: &Arc<sync::Mutex<Option<Box<Framework>>>>, data: &Arc<Mutex<ShareMap>>, event_handler: &Arc<H>, -tokio_handle: &Handle){ + tokio_handle: &Handle) { match event { Event::MessageCreate(event) => { let context = context(conn, data); @@ -92,7 +92,7 @@ pub fn dispatch<H: EventHandler + 'static>(event: Event, conn: &Arc<Mutex<Shard>>, data: &Arc<Mutex<ShareMap>>, event_handler: &Arc<H>, -tokio_handle: &Handle){ + tokio_handle: &Handle) { match event { Event::MessageCreate(event) => { let context = context(conn, data); @@ -106,7 +106,7 @@ tokio_handle: &Handle){ fn dispatch_message<H: EventHandler + 'static>(context: Context, mut message: Message, event_handler: &Arc<H>, -tokio_handle: &Handle){ + tokio_handle: &Handle) { let h = event_handler.clone(); tokio_handle.spawn_fn(move || { #[cfg(feature = "model")] @@ -125,7 +125,7 @@ fn handle_event<H: EventHandler + 'static>(event: Event, conn: &Arc<Mutex<Shard>>, data: &Arc<Mutex<ShareMap>>, event_handler: &Arc<H>, -tokio_handle: &Handle){ + tokio_handle: &Handle) { #[cfg(feature="cache")] let mut last_guild_create_time = now!(); @@ -172,7 +172,8 @@ tokio_handle: &Handle){ let context = context(conn, data); match event.channel { - Channel::Private(_) | Channel::Group(_) => {}, + Channel::Private(_) | + Channel::Group(_) => {}, Channel::Guild(channel) => { let h = event_handler.clone(); tokio_handle.spawn_fn(move || { @@ -198,7 +199,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_channel_recipient_addition(context, event.channel_id, event.user); + h.on_channel_recipient_addition( + context, + event.channel_id, + event.user, + ); Ok(()) }); }, @@ -209,7 +214,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_channel_recipient_removal(context, event.channel_id, event.user); + h.on_channel_recipient_removal( + context, + event.channel_id, + event.user, + ); Ok(()) }); }, @@ -323,7 +332,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_guild_emojis_update(context, event.guild_id, event.emojis); + h.on_guild_emojis_update( + context, + event.guild_id, + event.emojis, + ); Ok(()) }); }, @@ -343,7 +356,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_guild_member_addition(context, event.guild_id, event.member); + h.on_guild_member_addition( + context, + event.guild_id, + event.member, + ); Ok(()) }); }, @@ -397,7 +414,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_guild_members_chunk(context, event.guild_id, event.members); + h.on_guild_members_chunk( + context, + event.guild_id, + event.members, + ); Ok(()) }); }, @@ -488,7 +509,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_message_delete_bulk(context, event.channel_id, event.ids); + h.on_message_delete_bulk( + context, + event.channel_id, + event.ids, + ); Ok(()) }); }, @@ -497,7 +522,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_message_delete(context, event.channel_id, event.message_id); + h.on_message_delete( + context, + event.channel_id, + event.message_id, + ); Ok(()) }); }, @@ -553,7 +582,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_reaction_remove_all(context, event.channel_id, event.message_id); + h.on_reaction_remove_all( + context, + event.channel_id, + event.message_id, + ); Ok(()) }); }, @@ -643,7 +676,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_voice_state_update(context, event.guild_id, event.voice_state); + h.on_voice_state_update( + context, + event.guild_id, + event.voice_state, + ); Ok(()) }); }, @@ -652,7 +689,11 @@ tokio_handle: &Handle){ let h = event_handler.clone(); tokio_handle.spawn_fn(move || { - h.on_webhook_update(context, event.guild_id, event.channel_id); + h.on_webhook_update( + context, + event.guild_id, + event.channel_id, + ); Ok(()) }); }, diff --git a/src/client/mod.rs b/src/client/mod.rs index 47ff96c..5821597 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -37,7 +37,7 @@ pub use CACHE; use self::dispatch::dispatch; use std::sync::{self, Arc}; -use std::sync::atomic::{AtomicBool, Ordering, ATOMIC_BOOL_INIT}; +use std::sync::atomic::{ATOMIC_BOOL_INIT, AtomicBool, Ordering}; use parking_lot::Mutex; use tokio_core::reactor::Core; use futures; @@ -194,7 +194,8 @@ pub struct Client<H: EventHandler + 'static> { /// [`Event::Ready`]: ../model/event/enum.Event.html#variant.Ready /// [`on_ready`]: #method.on_ready event_handler: Arc<H>, - #[cfg(feature = "framework")] framework: Arc<sync::Mutex<Option<Box<Framework>>>>, + #[cfg(feature = "framework")] + framework: Arc<sync::Mutex<Option<Box<Framework>>>>, token: Arc<sync::Mutex<String>>, } @@ -354,7 +355,7 @@ impl<H: EventHandler + 'static> Client<H> { /// [`on_message`]: #method.on_message /// [framework docs]: ../framework/index.html #[cfg(feature = "framework")] -pub fn with_framework<F: Framework + 'static>(&mut self, f: F){ + pub fn with_framework<F: Framework + 'static>(&mut self, f: F) { self.framework = Arc::new(sync::Mutex::new(Some(Box::new(f)))); } @@ -539,7 +540,10 @@ pub fn with_framework<F: Framework + 'static>(&mut self, f: F){ /// [`start_autosharded`]: #method.start_autosharded /// [gateway docs]: gateway/index.html#sharding pub fn start_shard(&mut self, shard: u64, shards: u64) -> Result<()> { - self.start_connection([shard, shard, shards], http::get_gateway()?.url) + self.start_connection( + [shard, shard, shards], + http::get_gateway()?.url, + ) } /// Establish sharded connections and start listening for events. @@ -664,7 +668,10 @@ pub fn with_framework<F: Framework + 'static>(&mut self, f: F){ /// [`start_shards`]: #method.start_shards /// [Gateway docs]: gateway/index.html#sharding pub fn start_shard_range(&mut self, range: [u64; 2], total_shards: u64) -> Result<()> { - self.start_connection([range[0], range[1], total_shards], http::get_gateway()?.url) + self.start_connection( + [range[0], range[1], total_shards], + http::get_gateway()?.url, + ) } /// Returns a thread-safe handle for closing shards. @@ -722,7 +729,8 @@ pub fn with_framework<F: Framework + 'static>(&mut self, f: F){ Ok(shard) => { let shard = Arc::new(Mutex::new(shard)); - let monitor_info = feature_framework! {{ + let monitor_info = + feature_framework! {{ MonitorInfo { data: self.data.clone(), event_handler: self.event_handler.clone(), @@ -838,7 +846,7 @@ fn boot_shard(info: &BootInfo) -> Result<Shard> { Err(Error::Client(ClientError::ShardBootFailure)) } -fn monitor_shard<H: EventHandler + 'static>(mut info: MonitorInfo<H>){ +fn monitor_shard<H: EventHandler + 'static>(mut info: MonitorInfo<H>) { handle_shard(&mut info); let mut handle_still = HANDLE_STILL.load(Ordering::Relaxed); @@ -892,7 +900,7 @@ fn monitor_shard<H: EventHandler + 'static>(mut info: MonitorInfo<H>){ } } -fn handle_shard<H: EventHandler + 'static>(info: &mut MonitorInfo<H>){ +fn handle_shard<H: EventHandler + 'static>(info: &mut MonitorInfo<H>) { let mut core = Core::new().unwrap(); let handle = core.handle(); |