Changes to support HAL 9000
This commit is contained in:
parent
8602c883d3
commit
a9fb91c771
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "manifold"
|
name = "manifold"
|
||||||
version = "7.0.0"
|
version = "8.0.0"
|
||||||
authors = ["Lucy Bladen <admin@lbladen.uk>"]
|
authors = ["Lucy Bladen <admin@lbladen.uk>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ use crate::models::user::UserInfo;
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
pub trait EventHandler {
|
pub trait EventHandler {
|
||||||
async fn listen(ctx: &Context, framework_ctx: FrameworkContext<'_, ManifoldData, ManifoldError>, event: &Event<'_>) -> ManifoldResult<bool>;
|
async fn listen(ctx: Context, framework_ctx: FrameworkContext<'_, ManifoldData, ManifoldError>, event: &Event<'_>) -> ManifoldResult<bool>;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Handler {
|
pub struct Handler {
|
||||||
|
|
@ -20,7 +20,7 @@ pub struct Handler {
|
||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
impl EventHandler for Handler {
|
impl EventHandler for Handler {
|
||||||
async fn listen(ctx: &Context, framework_ctx: FrameworkContext<'_, ManifoldData, ManifoldError>, event: &Event<'_>) -> ManifoldResult<bool> {
|
async fn listen(ctx: Context, framework_ctx: FrameworkContext<'_, ManifoldData, ManifoldError>, event: &Event<'_>) -> ManifoldResult<bool> {
|
||||||
match event {
|
match event {
|
||||||
Event::Ready { data_about_bot } => Handler::standard_startup(&ctx, &framework_ctx, data_about_bot).await,
|
Event::Ready { data_about_bot } => Handler::standard_startup(&ctx, &framework_ctx, data_about_bot).await,
|
||||||
Event::GuildBanAddition { guild_id, banned_user } => Handler::ban_add(&ctx, &framework_ctx, guild_id, banned_user).await,
|
Event::GuildBanAddition { guild_id, banned_user } => Handler::ban_add(&ctx, &framework_ctx, guild_id, banned_user).await,
|
||||||
|
|
|
||||||
|
|
@ -100,12 +100,12 @@ pub async fn prepare_client<T: EventHandler>(arguments: ArgMatches, intents: Gat
|
||||||
|
|
||||||
let framework = poise::Framework::builder()
|
let framework = poise::Framework::builder()
|
||||||
.options(poise::FrameworkOptions {
|
.options(poise::FrameworkOptions {
|
||||||
event_handler: |ctx, e, fctx, _| Box::pin(async move {
|
event_handler: |ctx, e, fctx, _| Box::pin(async move {
|
||||||
match T::listen(ctx, fctx, e).await {
|
match T::listen(ctx.clone(), fctx, e).await {
|
||||||
Ok(b) => if b { return Ok(()) },
|
Ok(b) => if b { return Ok(()) },
|
||||||
Err(e) => return Err(e),
|
Err(e) => return Err(e),
|
||||||
};
|
};
|
||||||
_ = Handler::listen(ctx, fctx, e).await;
|
_ = Handler::listen(ctx.clone(), fctx, e).await;
|
||||||
Ok(())
|
Ok(())
|
||||||
}),
|
}),
|
||||||
pre_command: |ctx: ManifoldContext<'_>| Box::pin(async move {
|
pre_command: |ctx: ManifoldContext<'_>| Box::pin(async move {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue