From 26eee56c8b73568d022fc3cdf0d7785ef41ec6a9 Mon Sep 17 00:00:00 2001 From: sammyette <38820196+TorchedSammy@users.noreply.github.com> Date: Sat, 12 Jun 2021 10:30:47 -0400 Subject: [PATCH] feat: add commander.deregister function simply deregisters/removes a lua defined command --- golibs/commander/commander.go | 9 +++++++-- lua.go | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/golibs/commander/commander.go b/golibs/commander/commander.go index 8a4d0b0..e9ffb2b 100644 --- a/golibs/commander/commander.go +++ b/golibs/commander/commander.go @@ -20,8 +20,6 @@ func (c *Commander) Loader(L *lua.LState) int { "register": c.register, } mod := L.SetFuncs(L.NewTable(), exports) - L.SetGlobal("commanding", &lua.LTable{}) - L.SetField(L.GetGlobal("commanding"), "__commands", L.NewTable()) L.Push(mod) @@ -37,3 +35,10 @@ func (c *Commander) register(L *lua.LState) int { return 0 } +func (c *Commander) deregister(L *lua.LState) int { + cmdName := L.CheckString(1) + + c.Events.Emit("commandDeregister", cmdName) + + return 0 +} diff --git a/lua.go b/lua.go index 003e5e2..a65a5da 100644 --- a/lua.go +++ b/lua.go @@ -48,7 +48,9 @@ func LuaInit() { cmds.Events.On("commandRegister", func(cmdName string, cmd *lua.LFunction) { commands[cmdName] = cmd }) - + cmds.Events.On("commandDeregister", func(cmdName string) { + delete(commands, cmdName) + }) l.PreloadModule("commander", cmds.Loader) hooks = bait.New()