tes3mp-plugin 0.1.2

Stubs for creating a TES3MP server plugin
Documentation
  • Coverage
  • 43.18%
    592 out of 1371 items documented0 out of 694 items with examples
  • Size
  • Source code size: 334.47 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 37.44 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Homepage
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • the-eater

tes3mp-plugin

A crate for helping you make tes3mp plugins in Rust

How to use

Because Rust won't allow you to re-export symbols from other crates, this crate can't be used like normal crates, the advised manner of using this crate is the following:

cd crate-dir
git status || git init
mkdir extern
git submodule add https://git.cijber.net/teamnwah/tes3mp-rs.git extern/tes3mp-rs
ln -s ../extern/tes3mp-rs/tes3mp-plugin/src/plugin src/plugin

This will make the plugin like it's part of your crate, which allows us to export the C symbols

in your Cargo.toml make sure the following is included

[lib]
crate-type = ["staticlib", "cdylib"]

This will make sure you get a shared library which can be loaded by TES3MP

Using the code is now rather simple, write in your lib.rs

use crate::plugin::Events;

mod plugin;

struct Server;

impl Events for Server {
    fn new() -> Self {
        Server
    }

    fn on_server_init(&self) {
        plugin::log_message(plugin::LOG_WARN, "Hello from Rust :3");
    }
}

use_events!(Server);

the Events trait has all the events that exist for the server, implement as needed