LUA - 从其他模块调用函数而不导出 table

LUA - Calling function from other module without exporting table

我尝试用 Jitsi 设置一个特殊的行为,但没有那么多 LUA 知识。

Jitsi/Prosody 模块“mod_muc_lobby_rooms.lua”正在实现一些功能,如 handle_create_lobby(event);handle_create_lobby 正在从内部调用其他子函数。

https://github.com/jitsi/jitsi-meet/blob/master/resources/prosody-plugins/mod_muc_lobby_rooms.lua

但是模块本身不是库模块,所以没有table导出,另外的代码可以使用“require”。所以我的理解来自 LUA 呢。

对于自己的模块,我只想从另一端使用这个功能,而不需要重新实现或 copy/paste 它。

是否有任何解决方案,如何将函数“源”到我的模块中?

如果可能的话,我希望让“mod_muc_lobby_room.lua”不变,如果来自 Jitsi 的一些更新即将到来。

提前致谢。

一个lua初学者,Uwe

你可以这样做:

file=io.open("mod_muc_lobby_room.lua")
io.input(file)
load(io.read("*a"))()
io.close(file)

并且位于mod_muc_lobby_room.lua的代码将被执行。

您可以触发一个事件,因为它 listen for it

prosody.events.fire_event("create-lobby-room", event)

或者你可以像这样使用模块函数:

local muc_lobby_rooms = module:depends("muc_lobby_rooms");
muc_lobby_rooms.handle_create_lobby(event);