#plugin #team-speak3 #ts3

ts3plugin

An abstraction layer that simplifies creating TeamSpeak3 plugins and stores received data to provide a more convenient API

2 unstable releases

Uses old Rust 2015

0.2.1 Jan 5, 2017
0.2.0 Jan 4, 2017
0.1.0 Sep 7, 2016

#7 in #ts3

MIT/Apache

125KB
2.5K SLoC

TeamSpeak3 Plugin API   Build Status Latest version

The documentation can be found here: At docs.rs

TeamSpeak 3.1 updates the plugin api version from 20 to 21.
Version 0.2 and above are compatible with this version while version 0.1 is compatible with the api version 20.

Breaking changes will happen from time to time, leading to a minor version bump.

At the moment, not all methods that are exposed by the TeamSpeak API are available for plugins. If a method that you need is missing, please file an issue or open a pull request.

Usage

Add the following to your Cargo.toml:

[lib]
name = "<pluginname>"
crate-type = ["cdylib"]

[dependencies]
lazy_static = "0.2"
ts3plugin = "0.2"

This code can be used to make your library a TeamSpeak plugin:

#[macro_use]
extern crate ts3plugin;
#[macro_use]
extern crate lazy_static;

use ts3plugin::*;

struct MyTsPlugin;

impl Plugin for MyTsPlugin {
    fn new(api: &mut TsApi) -> Result<Box<MyTsPlugin>, InitError> {
        api.log_or_print("Inited", "MyTsPlugin", LogLevel::Info);
        Ok(Box::new(MyTsPlugin))
        // Or return Err(InitError::Failure) on failure
    }

    // Implement callbacks here

    fn shutdown(&mut self, api: &mut TsApi) {
        api.log_or_print("Shutdown", "MyTsPlugin", LogLevel::Info);
    }
}

create_plugin!(
    "My Ts Plugin", "0.1.0", "My name", "A wonderful tiny example plugin",
    ConfigureOffer::No, false, MyTsPlugin);

Projects using this library

License

Licensed under either of

at your option.

Template code that is needed to run the rust code in this file as a test:

{}
fn main(){{}}

Dependencies

~2.5MB
~44K SLoC