1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
#![allow(clippy::needless_return)] #![deny(clippy::implicit_return)] use yttrium_key_base as key_base; use key_base::environment::events; #[cfg(feature = "loader")] #[no_mangle] pub fn key_create() -> *mut dyn key_base::Key { return Box::into_raw(Box::new(std_trigger { info: create_key_info(), function: key_function, })); } pub fn safe_create() -> Box<dyn key_base::Key> { return Box::new(std_trigger { info: create_key_info(), function: key_function, }); } fn create_key_info() -> key_base::KeyInfo { return key_base::KeyInfo { name: String::from("trigger"), parameters_required: vec![0], }; } #[allow(non_camel_case_types)] struct std_trigger { pub info: key_base::KeyInfo, pub function: fn(parameter: &[String], environment: &mut key_base::environment::Environment) -> Result<String, String>, } impl key_base::Key for std_trigger { fn get_key_info(&self) -> &key_base::KeyInfo { return &self.info; } fn get_key_function(&self) -> fn(parameter: &[String], environment: &mut key_base::environment::Environment) -> Result<String, String> { return self.function; } } fn key_function(_parameter: &[String], environment: &mut key_base::environment::Environment) -> Result<String, String> { match &environment.event_info { events::EventType::Message(event) => { return Ok(event.trigger.clone()); } events::EventType::Default => { return Ok(String::from("EventType::Default")); } events::EventType::MemberJoin(_) => { return Ok(String::from("EventType::MemberJoin")); } events::EventType::MemberLeave(_) => { return Ok(String::from("EventType::MemberLeave")); } events::EventType::MemberUpdate(_) => { return Ok(String::from("EventType::MemberUpdate")); } events::EventType::RoleCreate(_) => { return Ok(String::from("EventType::RoleCreate")); } events::EventType::RoleDelete(_) => { return Ok(String::from("EventType::RoleDelete")); } events::EventType::RoleUpdate(_) => { return Ok(String::from("EventType::RoleUpdate")); } events::EventType::ChannelCreate(_) => { return Ok(String::from("EventType::ChannelCreate")); } events::EventType::ChannelDelete(_) => { return Ok(String::from("EventType::ChannelDelete")); } events::EventType::ChannelUpdate(_) => { return Ok(String::from("EventType::ChannelUpdate")); } events::EventType::GuildUpdate(_) => { return Ok(String::from("EventType::GuildUpdate")); } events::EventType::VoiceUpdate(_) => { return Ok(String::from("EventType::VoiceUpdate")); } events::EventType::ReactionAdd(_) => { return Ok(String::from("EventType::ReactionAdd")); } events::EventType::ReactionRemove(_) => { return Ok(String::from("EventType::ReactionRemove")); } } }