diff options
| author | acdenisSK <[email protected]> | 2017-07-05 23:06:00 +0200 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-07-05 23:06:16 +0200 |
| commit | 3017f6dbc02e6189c69491993e828e2a7595cbed (patch) | |
| tree | 2debf2f80e901935eb38c2c7bc89bf3fbacd2d0e /src/client/dispatch.rs | |
| parent | Remove `checks_passed` in favour of the `Iterator::all` method (diff) | |
| download | serenity-3017f6dbc02e6189c69491993e828e2a7595cbed.tar.xz serenity-3017f6dbc02e6189c69491993e828e2a7595cbed.zip | |
Add an `is_new` to the arguments of the `guild_create` handler
To make a better distinction from a guild that the bot's already in and from the ones it's joining
Diffstat (limited to 'src/client/dispatch.rs')
| -rw-r--r-- | src/client/dispatch.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs index ded79fc..7ff37d5 100644 --- a/src/client/dispatch.rs +++ b/src/client/dispatch.rs @@ -261,6 +261,13 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(event: Event, thread::spawn(move || h.on_guild_ban_removal(context, event.guild_id, event.user)); }, Event::GuildCreate(event) => { + #[cfg(feature="cache")] + let _is_new = { + let cache = CACHE.read().unwrap(); + + !cache.unavailable_guilds.contains(&event.guild.id) + }; + update!(update_with_guild_create, event); #[cfg(feature="cache")] @@ -285,7 +292,11 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(event: Event, let context = context(conn, data); let h = event_handler.clone(); - thread::spawn(move || h.on_guild_create(context, event.guild)); + feature_cache! {{ + thread::spawn(move || h.on_guild_create(context, event.guild, _is_new)); + } else { + thread::spawn(move || h.on_guild_create(context, event.guild)); + }} }, Event::GuildDelete(event) => { let _full = update!(update_with_guild_delete, event); |