initial attempt at limiting to guilds

This commit is contained in:
Adrian Malacoda 2018-05-12 00:37:03 -05:00
parent a698450c1e
commit 4bfe6e2aec

View File

@ -1,6 +1,6 @@
use discord;
use discord::Discord;
use discord::model::{Event, PossibleServer};
use discord::model::{Event, PossibleServer, ChannelId};
use modules::EventLoop;
@ -133,6 +133,9 @@ impl EventLoop for DiscordModule {
}
});
let mut known_guild_ids: Vec<String> = vec![];
let mut known_channel_ids: Vec<ChannelId> = vec![];
loop {
let event = connection.recv_event();
debug!("Received event: {:?}", event);
@ -141,8 +144,15 @@ impl EventLoop for DiscordModule {
Ok(Event::ServerCreate(server)) => {
match server {
PossibleServer::Online(server) => {
info!("Joined server: {}", server.name);
let guild_id_as_string = format!("{}", server.id);
if !(self.guilds.is_empty() || self.guilds.contains(&guild_id_as_string)) {
continue;
}
known_guild_ids.push(guild_id_as_string);
info!("Joined guild: {} (id {})", server.name, server.id);
for channel in server.channels {
known_channel_ids.push(channel.id);
info!(" - Joined channel: {}", channel.name);
match sender.send(event::Event::SelfJoin {
@ -157,6 +167,10 @@ impl EventLoop for DiscordModule {
}
},
Ok(Event::MessageCreate(message)) => {
if !known_channel_ids.contains(&message.channel_id) {
continue;
}
let author = User {
name: message.author.name.clone(),
sender: Box::new(DiscordMessageSender {