--Make sure zones are loaded already nrequire("sv_mysqlite.lua") local q = nrequire("core/database/sv_queries.lua") --if not zones then error("This thing needs zones to function!") end print("Hello from sv_mapstich.lua") util.AddNetworkString("art_zonechange") local dontupdatedisconnect = {} local function SavePlayerData(ply) local query local pdat = q.serialize_player(ply) if dontupdatedisconnect[ply] then dontupdatedisconnect[ply] = nil query = [[ UPDATE playerdata SET PlayerData='%s' WHERE SteamID=%.0f ]] query = q.s_fmt(query,pdat,ply:SteamID64()) else query = [[ UPDATE playerdata SET PlayerData='%s' MetaData='%s' WHERE SteamID=%.0f ]] local pmet = util.TableToJSON({ lastserver = game.GetIPAddress(), lastlocation = ply:GetPos() }) query = q.s_fmt(query,pdat,pmet,ply:SteamID64()) end MySQLite.query(query,function(data) end,function(err,sql) print("Query error:") print("Query",sql) print("Error",err) end) end net.Receive("art_zonechange",function(len,ply) timer.Simple(0.5,function() local zone = ply:GetCurrentZone("artery_serverchange") if zone then dontupdatedisconnect[ply] = true local query = [[ UPDATE playerdata SET PlayerData='%s',MetaData='%s' WHERE SteamID=%.0f ]] local pdat = util.TableToJSON(ply.data) local pmet = util.TableToJSON({ lastserver = zone.toserver, lastlocation = zone.topos }) print("pdat is", pdat) print("pmet is", pmet) local fquery = q.s_fmt(query,pdat,pmet,ply:SteamID64()) print("fquery was", fquery) print("Running query:",qc) MySQLite.query(fquery,function(data) ply:ConCommand("connect " .. zone.toserver) end,function(err,sql) print("Query error:") print("Query",sql) print("Error",err) end) SavePlayerData(ply) end end) end)