diff --git a/gamemode/core/hooks/sv_hooks.lua b/gamemode/core/hooks/sv_hooks.lua index 1572eb34e..ebcf96aeb 100644 --- a/gamemode/core/hooks/sv_hooks.lua +++ b/gamemode/core/hooks/sv_hooks.lua @@ -768,14 +768,15 @@ end function GM:ShutDown() ix.shuttingDown = true ix.config.Save() + if ix.database_connected then + hook.Run("SaveData") - hook.Run("SaveData") - - for _, v in ipairs(player.GetAll()) do - v:SaveData() + for _, v in ipairs(player.GetAll()) do + v:SaveData() - if (v:GetCharacter()) then - v:GetCharacter():Save() + if (v:GetCharacter()) then + v:GetCharacter():Save() + end end end end @@ -945,7 +946,8 @@ function GM:DatabaseConnected() ix.log.LoadTables() MsgC(Color(0, 255, 0), "Database Type: " .. ix.db.config.adapter .. ".\n") - + ix.database_connected = true + ix.database_start_connected = true timer.Create("ixDatabaseThink", 0.5, 0, function() mysql:Think() end) diff --git a/gamemode/core/libs/sv_database.lua b/gamemode/core/libs/sv_database.lua index d921c626e..eafa519da 100644 --- a/gamemode/core/libs/sv_database.lua +++ b/gamemode/core/libs/sv_database.lua @@ -159,9 +159,24 @@ end hook.Add("InitPostEntity", "ixDatabaseConnect", function() -- Connect to the database using SQLite, mysqoo, or tmysql4. + ix.database_start_connected = false ix.db.Connect() + timer.Create("START_FIX_DB_CONNECTED", 10, 0, function() + if ix.database_start_connected == false then + ix.db.Connect() + else + timer.Remove("START_FIX_DB_CONNECTED") + end + end) +end) + +hook.Add("CheckPassword", "NoDatabaseConnectedStartServer", function() + if !ix.database_start_connected then + return false, "Database not connected" + end end) + local resetCalled = 0 concommand.Add("ix_wipedb", function(client, cmd, arguments) diff --git a/helix b/helix new file mode 160000 index 000000000..f6fbfc98a --- /dev/null +++ b/helix @@ -0,0 +1 @@ +Subproject commit f6fbfc98ad55b725980d69840ab55c39ded6795e