aboutsummaryrefslogtreecommitdiff
path: root/gamemode/server/sv_mapchange.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/server/sv_mapchange.lua')
-rw-r--r--gamemode/server/sv_mapchange.lua64
1 files changed, 53 insertions, 11 deletions
diff --git a/gamemode/server/sv_mapchange.lua b/gamemode/server/sv_mapchange.lua
index 032a1bb..d697a67 100644
--- a/gamemode/server/sv_mapchange.lua
+++ b/gamemode/server/sv_mapchange.lua
@@ -1,12 +1,17 @@
--[[
A script to move the player to a different map
]]
+local fn = nrequire("utility/fn.lua")
+local q = nrequire("core/database/queries.lua")
+nrequire("sv_mysqlite.lua")
local mapname = game.GetMap()
local mapareasstr = file.Read("artery/maps/" .. mapname .. "/mapareas.txt")
+--[=[
+local dontupdatedisconnect = {}
+
hook.Add("InitPostEntity", "LoadMapChangePoints", function()
local transfers = string.Explode("\r?\n\r?\n",mapareasstr,true)
- local dontupdatedisconnect = {}
for k,v in pairs(transfers) do
local parts = string.Explode("\r?\n",v,true)
local vectortxt = string.Explode(" ",parts[1],false)
@@ -25,35 +30,71 @@ hook.Add("InitPostEntity", "LoadMapChangePoints", function()
print("collider",collider)
if coldata.HitEntity:IsPlayer() then
dontupdatedisconnect[coldata.HitEntity] = true
- local db = ART.database
local qc = table.concat({[[
- UPDATE artery.playerdata SET WorldPosition="]],
+ UPDATE playerdata SET MetaData="]],
tvt[1]," ",
tvt[2]," ",
tvt[3]," ",
[[" WHERE SteamID="]],
coldata.HitEntity:SteamID64(),
'"'})
+ local query = [[
+ UPDATE playerdata SET PlayerData='%s',MetaData='%s' WHERE SteamID=%.0f
+ ]]
+ local pdat = util.TableToJSON(coldata.HitEntity.data)
+ local pmet = util.TableToJSON({
+ lastserver = server,
+ lastlocation = parts[5]
+ })
+ print("pdat is", pdat)
+ print("pmet is", pmet)
+ local fquery = q.s_fmt(query,pdat,pmet,coldata.HitEntity:SteamID64())
+ print("fquery was", fquery)
print("Running query:",qc)
- local q = db:query(qc)
- function q:onSuccess(data)
- print("Got data from update:")
- PrintTable(data)
+ MySQLite.query(fquery,function(data)
coldata.HitEntity:ConCommand("connect " .. server)
- end
- function q:onError(err,sql)
+ end,function(err,sql)
print("Query error:")
print("Query",sql)
print("Error",err)
- end
- q:start()
+ end)
end
end
sch:Spawn()
print("Loading mapchange area",svec)
end
end)
+]=]
+
+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
+--[=[
hook.Add("PlayerDisconnected","SavePlayerData",function(ply)
local qc
if dontupdatedisconnect[ply] then
@@ -109,3 +150,4 @@ hook.Add("PlayerDisconnected","SavePlayerData",function(ply)
end
q:start()
end)
+]=]