#服务器 #morrowind #事件 #stub #tes3mp

tes3mp-plugin

用于创建TES3MP服务器插件的stub

1 个不稳定版本

0.1.2 2020年2月25日
0.1.1 2020年2月25日
0.1.0 2020年2月25日

#1613异步

AGPL-3.0-or-later

335KB
5K SLoC

tes3mp-plugin

一个帮助你在Rust中创建tes3mp插件的crate

如何使用

由于Rust不允许你从其他crate中重新导出符号,这个crate不能像常规crate那样使用,建议使用以下方法使用这个crate

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

这将使 plugin 像是你crate的一部分,这允许我们导出C符号

在你的 Cargo.toml 中确保包含以下内容

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

这将确保你得到一个可以被TES3MP加载的共享库

使用代码现在相当简单,在你的 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);

Events trait 包含服务器所有存在的事件,按需实现

无运行时依赖