use twitch_irc::login::StaticLoginCredentials;
use twitch_irc::ClientConfig;
use twitch_irc::SecureTCPTransport;
use twitch_irc::TwitchIRCClient;
use std::env;

#[tokio::main]
pub async fn main() {
    let login_name = "modulatingforcebot".to_owned();
    let oauth_token = env::var("access_token").unwrap().to_owned();

    let config = ClientConfig::new_simple(
        StaticLoginCredentials::new(login_name, Some(oauth_token))
    );
    let (mut incoming_messages, client) =
        TwitchIRCClient::<SecureTCPTransport, StaticLoginCredentials>::new(config);

    let join_handle = tokio::spawn(async move {
        while let Some(message) = incoming_messages.recv().await {
            println!("Received message: {:?}", message);
        }
    });

    client.join("modulatingforcebot".to_owned()).unwrap();
    client.say("modulatingforcebot".to_owned(), "Connected!".to_owned()).await.unwrap();

    join_handle.await.unwrap();
}