use std::env::var;
use tokio::prelude::*;
use spectacles_gateway::{ShardManager, ShardStrategy};
fn main() {
let token = var("DISCORD_TOKEN").expect("Failed to parse Discord token");
tokio::run(ShardManager::new(token, ShardStrategy::Recommended)
.map(|mut manager| {
let (spawner, events) = manager.start_spawn();
tokio::spawn(spawner.for_each(|shard| {
println!("Shard {:?} has successfully spawned.", shard.lock().info);
Ok(())
}));
tokio::spawn(events.for_each(|event| {
if let Some(evt) = event.packet.t {
println!("Received event from Shard {:?}: {:?}", event.shard.lock().info, evt);
};
Ok(())
}));
})
.map_err(|err| {
eprintln!("Error occured: {:?}", err);
})
);
}