#rpc #experimental #plugin #tokio #events #response #save

omegga

Experimental RPC interface for Omegga

19 releases (1 stable)

1.0.0 Apr 26, 2022
0.3.3 Oct 15, 2021
0.2.11 Sep 7, 2021
0.2.9 Aug 27, 2021
0.1.1 Jun 30, 2021

#62 in #save

ISC license

41KB
923 lines

omegga-rs

Omegga RPC interface library for Rust.

Usage

To enable support for serializing/deserializing into brickadia-rs save objects, use the optional feature brs:

omegga = { version = "1.0", features = "brs" }

The following is a sample plugin:

use omegga::{events::Event, Omegga};

#[tokio::main]
async fn main() {
    let omegga = Omegga::new();
    let mut events = omegga.spawn();

    while let Some(event) = events.recv().await {
        match event {
            // Register our commands on init...
            Event::Init { id, .. } => omegga.register_commands(id, &["ping"]),

            // Send a blank response when we're told to stop...
            Event::Stop { id, .. } => omegga.write_response(id, None, None),

            // Listen to commands sent to the plugin...
            Event::Command {
                player, command, ..
            } => match command.as_str() {
                // When the command matches `ping`, send `Pong!`
                "ping" => omegga.whisper(player, "Pong!"),
                _ => (),
            },

            _ => (),
        }
    }
}

It is recommended to check the Omegga RPC reference.

Credits

  • voximity - creator, maintainer
  • Meshiest - Omegga

Dependencies

~4–10MB
~108K SLoC