Transmit selfjoin event on connect

This commit is contained in:
Adrian Malacoda 2017-02-25 23:52:43 -06:00
parent 109a9131f0
commit 41fa36cccf

View File

@ -1,6 +1,6 @@
use discord;
use discord::Discord;
use discord::model::Event;
use discord::model::{Event, PossibleServer};
use modules::Module;
use toml::Table;
@ -61,7 +61,36 @@ impl Module for DiscordModule {
connection.set_game_name(self.playing.clone());
loop {
match connection.recv_event() {
let event = connection.recv_event();
debug!("Received event: {:?}", event);
match event {
Ok(Event::ServerCreate(server)) => {
match server {
PossibleServer::Online(server) => {
info!("Joined server: {}", server.name);
for channel in server.channels {
info!(" - Joined channel: {}", channel.name);
match sender.send(event::Envelope::new(event::Event::SelfJoin {
channel: Channel {
name: channel.name,
description: String::from(""),
topic: channel.topic.unwrap_or_else(|| String::from("")),
sender: Box::new(DiscordMessageSender {
discord: discord.clone(),
channel_id: channel.id
})
}
})) {
Err(err) => error!("Error sending selfjoin event: {:?}", err),
Ok(_) => {}
}
}
},
_ => {}
}
},
Ok(Event::MessageCreate(message)) => {
let author = User {
name: message.author.name.clone(),