mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-04 00:36:14 +00:00
now its just MP.function instead of MP:function
This commit is contained in:
parent
a23b5a43c0
commit
01fb538129
@ -2,8 +2,9 @@ use super::{Backend, ServerBoundPluginEvent};
|
|||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use tokio::sync::mpsc::Sender;
|
use tokio::sync::mpsc::Sender;
|
||||||
use mlua::prelude::*;
|
use mlua::prelude::*;
|
||||||
use mlua::{UserData, UserDataMethods};
|
use mlua::{UserData, UserDataMethods, Value};
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
struct Context {
|
struct Context {
|
||||||
tx: Arc<Sender<ServerBoundPluginEvent>>,
|
tx: Arc<Sender<ServerBoundPluginEvent>>,
|
||||||
}
|
}
|
||||||
@ -16,10 +17,20 @@ impl Context {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'lua> FromLua<'lua> for Context {
|
||||||
|
fn from_lua(value: Value<'lua>, _: &'lua Lua) -> LuaResult<Self> {
|
||||||
|
match value {
|
||||||
|
Value::UserData(ud) => Ok(ud.borrow::<Self>()?.clone()),
|
||||||
|
_ => unreachable!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl UserData for Context {
|
impl UserData for Context {
|
||||||
fn add_methods<'lua, M: UserDataMethods<'lua, Self>>(methods: &mut M) {
|
fn add_methods<'lua, M: UserDataMethods<'lua, Self>>(methods: &mut M) {
|
||||||
methods.add_method("RegisterEventHandler", |_, me, (event_name, handler_name): (String, String)| {
|
methods.add_method("RegisterEventHandler", |lua, _, (event_name, handler_name): (String, String)| {
|
||||||
debug!("Event handler registered: {} (EVENT) = {} (LUA)", event_name, handler_name);
|
debug!("Event handler registered: {} (EVENT) = {} (LUA)", event_name, handler_name);
|
||||||
|
let me: Context = lua.globals().get("MP")?;
|
||||||
// TODO: Figure out how to handle these errors (?)
|
// TODO: Figure out how to handle these errors (?)
|
||||||
let _ = me.tx.blocking_send(ServerBoundPluginEvent::RegisterEventHandler((event_name, handler_name)));
|
let _ = me.tx.blocking_send(ServerBoundPluginEvent::RegisterEventHandler((event_name, handler_name)));
|
||||||
Ok(())
|
Ok(())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user