From 04bbe74642f5b6257361014e0c122a33c9fa4d70 Mon Sep 17 00:00:00 2001 From: Ashelyn Rose Date: Sat, 1 Mar 2025 15:42:30 -0700 Subject: Refactor command handling --- src/system/plugin/prefixes.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/system/plugin/prefixes.rs') diff --git a/src/system/plugin/prefixes.rs b/src/system/plugin/prefixes.rs index 609dafd..42d8631 100644 --- a/src/system/plugin/prefixes.rs +++ b/src/system/plugin/prefixes.rs @@ -1,18 +1,23 @@ use async_trait::async_trait; use twilight_model::id::{marker::ChannelMarker, Id}; -use crate::system::{log::Logger, types::Response}; +use twilight_model::channel::Message; +use crate::system::{log::Logger, types::{Response, System}}; -use super::{CommandOutcome, SeancePlugin}; +use super::SeancePlugin; pub struct ProxyPrefixes; #[async_trait] -impl SeancePlugin for ProxyPrefixes { - async fn handle_command(&self, _logger: &Logger, _system: &crate::system::types::System, _message: &twilight_model::channel::Message) -> CommandOutcome { - CommandOutcome::Skipped +impl<'system> SeancePlugin<'system> for ProxyPrefixes { + fn get_commands(&self) -> Vec<&'static str> { + vec![] } - async fn handle_message(&self, logger: &Logger, system: &crate::system::types::System, message: &twilight_model::channel::Message, response: &mut crate::system::types::Response) { + async fn handle_command<'message>(&self, _logger: &'system Logger, _system: &'system System, _message: &'message Message, args: Vec<&'message str>) { + unreachable!("Prefix plugin has no commands") + } + + async fn handle_message<'message>(&self, logger: &'system Logger, system: &'system System, message: &'message Message, response: &'message mut Response) { if let Response::Noop { delete_source: _ } = response { for member in &system.members { match member.message_pattern.captures(message.content.as_str()) { @@ -30,7 +35,7 @@ impl SeancePlugin for ProxyPrefixes { } } - async fn post_response(&self, _logger: &Logger, _system: &crate::system::types::System, _message: &twilight_model::channel::Message, _channel: Id, _response: &crate::system::types::Response) { + async fn post_response<'message>(&self, _logger: &'system Logger, _system: &'system System, _message: &'message Message, _channel: Id, _response: &'message Response) { return } } -- cgit 1.4.1