Plugin

Trait Plugin 

Source
pub trait Plugin:
    EventHandler
    + EventSubscriptions
    + CommandRegistry {
    // Required methods
    fn get_info(&self) -> PluginInfo<'_>;
    fn get_id(&self) -> &str;
    fn get_name(&self) -> &str;
    fn get_version(&self) -> &str;
    fn get_api_version(&self) -> &str;
}
Expand description

The final trait required for our plugin to be runnable.

These functions get impled automatically by #[derive(Plugin) like so:

use dragonfly_plugin::{
   PluginRunner,      // Our runtime, clearly named
   Plugin,         // The derive macro
   event::{EventContext, EventHandler},
   event_handler,
   types,
   Server,
};

#[derive(Plugin, Default)]
#[plugin(
   id = "example-rust",
   name = "Example Rust Plugin",
   version = "1.0.0",
   api = "1.0.0"
)]
struct MyPlugin {}

#[event_handler]
impl EventHandler for MyPlugin {
   async fn on_player_join(
       &self,
       server: &Server,
       event: &mut EventContext<'_, types::PlayerJoinEvent>,
   ) { }
}

Required Methods§

Source

fn get_info(&self) -> PluginInfo<'_>

Source

fn get_id(&self) -> &str

Source

fn get_name(&self) -> &str

Source

fn get_version(&self) -> &str

Source

fn get_api_version(&self) -> &str

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§