Skip to content

Commit df771db

Browse files
ModuleLoaded hook
Add a hook for module loading to prevent error messages from Modules executing actions before the initial database creation has finished
1 parent 0710f8c commit df771db

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

lua/msync/server/modules/sv_mbsync.lua

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -810,10 +810,6 @@ MSync.modules[info.ModuleIdentifier].init = function( transaction )
810810
]]
811811
MSync.modules[info.ModuleIdentifier].loadSettings()
812812

813-
if not MSync.modules[info.ModuleIdentifier].banTable then
814-
MSync.log(MSYNC_DBG_WARNING, "[MBSync] Ban table not found yet, requesting now")
815-
MSync.modules[info.ModuleIdentifier].getActiveBans()
816-
end
817813
end
818814

819815
--[[
@@ -1395,13 +1391,6 @@ end
13951391
Define hooks your module is listening on e.g. PlayerDisconnect
13961392
]]
13971393
MSync.modules[info.ModuleIdentifier].hooks = function()
1398-
--[[
1399-
This hook starts the timers for the asynchronous ban data loading and the check if one of the online players has been banned
1400-
]]
1401-
timer.Create("msync."..info.ModuleIdentifier..".getActiveBans", MSync.modules[info.ModuleIdentifier].settings.syncDelay, 0, function()
1402-
MSync.modules[info.ModuleIdentifier].getActiveBans()
1403-
end)
1404-
MSync.modules[info.ModuleIdentifier].getActiveBans()
14051394

14061395
hook.Add("CheckPassword", "msync."..info.ModuleIdentifier..".banCheck", function( steamid64 )
14071396
MSync.log(MSYNC_DBG_DEBUG, "[MBSync] Checking ban status for \"" .. steamid64 .. "\"")
@@ -1525,6 +1514,22 @@ MSync.modules[info.ModuleIdentifier].hooks = function()
15251514
end
15261515
MSync.modules[info.ModuleIdentifier].unBanUser(steamid, admin_id)
15271516
end)
1517+
1518+
hook.Add("MSyncModuleLoaded", "msync.mbsync.loadData", function( msync_module )
1519+
if (not msync_module or msync_module == info.ModuleIdentifier) and not MSync.modules[info.ModuleIdentifier].banTable then
1520+
if not MSync.modules[info.ModuleIdentifier].banTable then
1521+
MSync.log(MSYNC_DBG_WARNING, "[MBSync] Ban table not found yet, requesting now")
1522+
MSync.modules[info.ModuleIdentifier].getActiveBans()
1523+
end
1524+
1525+
--[[
1526+
Start timer to asynchroniously resync data
1527+
]]
1528+
timer.Create("msync."..info.ModuleIdentifier..".getActiveBans", MSync.modules[info.ModuleIdentifier].settings.syncDelay, 0, function()
1529+
MSync.modules[info.ModuleIdentifier].getActiveBans()
1530+
end)
1531+
end
1532+
end)
15281533
end
15291534

15301535
--[[

lua/msync/server/sv_modules.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ function MSync.initModules()
4545

4646
function initTransaction.onSuccess()
4747
MSync.log(MSYNC_DBG_INFO, "Module querys have been completed successfully")
48+
hook.Call("MSyncModuleLoaded", nil, nil)
4849
MSync.mysql.dbstatus = true
4950
end
5051

@@ -77,6 +78,7 @@ function MSync.loadModule(path)
7778

7879
function initTransaction.onSuccess()
7980
MSync.log(MSYNC_DBG_INFO, "Module query has been completed successfully")
81+
hook.Call("MSyncModuleLoaded", nil, info.ModuleIdentifier)
8082
--MSync.mysql[info.ModuleIdentifier].dbstatus = true
8183
end
8284

@@ -109,6 +111,7 @@ function MSync.enableModule( module )
109111
function initTransaction.onSuccess()
110112
MSync.log(MSYNC_DBG_INFO, "["..MSync.modules[module]["info"]["Name"].."] Module loaded")
111113
MSync.net.sendModuleEnable( module )
114+
hook.Call("MSyncModuleLoaded", nil, module)
112115
--MSync.mysql[module].dbstatus = true
113116
end
114117

0 commit comments

Comments
 (0)