use bevy_app::{App, Plugin};
use bevy_ecs::prelude::Resource;
use serenity::http::Http;
use std::sync::Arc;
pub struct DiscordHttpPlugin(String);
impl DiscordHttpPlugin {
pub fn new(token: String) -> DiscordHttpPlugin {
DiscordHttpPlugin(token)
}
}
impl Plugin for DiscordHttpPlugin {
fn build(&self, app: &mut App) {
let http: Arc<Http> = Arc::new(Http::new(&self.0));
app.insert_resource(DiscordHttpResource { http });
}
}
#[derive(Resource)]
pub struct DiscordHttpResource {
http: Arc<Http>,
}
impl DiscordHttpResource {
pub fn client(&self) -> Arc<Http> {
self.http.clone()
}
pub fn client_ref(&self) -> &Http {
&self.http
}
}