aboutsummaryrefslogtreecommitdiff
path: root/src/client/dispatch.rs
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-07-05 23:06:00 +0200
committeracdenisSK <[email protected]>2017-07-05 23:06:16 +0200
commit3017f6dbc02e6189c69491993e828e2a7595cbed (patch)
tree2debf2f80e901935eb38c2c7bc89bf3fbacd2d0e /src/client/dispatch.rs
parentRemove `checks_passed` in favour of the `Iterator::all` method (diff)
downloadserenity-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.rs13
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);