[][src]Trait hexavalent::event::server::ServerEvent

pub trait ServerEvent: for<'a> Event<'a> { }

Trait implemented by all server event types.

Used with PluginHandle::hook_server and PluginHandle::hook_server_attrs.

This trait is sealed and cannot be implemented outside of hexavalent.

Examples

Registering a hook for a server event.

use hexavalent::PluginHandle;
use hexavalent::event::Event;
use hexavalent::event::server::Privmsg;
use hexavalent::hook::{Eat, Priority};

fn hook_privmsg<P: 'static>(ph: PluginHandle<'_, P>) {
    ph.hook_server(Privmsg, Priority::Normal, privmsg_cb);
}

fn privmsg_cb<P>(
    plugin: &P,
    ph: PluginHandle<'_, P>,
    args: <Privmsg as Event<'_>>::Args,
) -> Eat {
    let [sender, _, target, text] = args;
    ph.print(&format!(
        "Message from {} to {}: {}\0",
        sender, target, text
    ));
    Eat::None
}

Implementors

impl ServerEvent for RawLine[src]

impl ServerEvent for Away[src]

impl ServerEvent for Invite[src]

impl ServerEvent for Join[src]

impl ServerEvent for Kick[src]

impl ServerEvent for Kill[src]

impl ServerEvent for Mode[src]

impl ServerEvent for Nick[src]

impl ServerEvent for Notice[src]

impl ServerEvent for Part[src]

impl ServerEvent for Ping[src]

impl ServerEvent for Pong[src]

impl ServerEvent for Privmsg[src]

impl ServerEvent for Quit[src]

impl ServerEvent for Topic[src]

impl ServerEvent for Wallops[src]

Loading content...