aboutsummaryrefslogtreecommitdiff
path: root/gamemode/core/database/sv_setup.lua
diff options
context:
space:
mode:
Diffstat (limited to 'gamemode/core/database/sv_setup.lua')
-rw-r--r--gamemode/core/database/sv_setup.lua67
1 files changed, 19 insertions, 48 deletions
diff --git a/gamemode/core/database/sv_setup.lua b/gamemode/core/database/sv_setup.lua
index 0d0eb74..2fb7ed7 100644
--- a/gamemode/core/database/sv_setup.lua
+++ b/gamemode/core/database/sv_setup.lua
@@ -2,10 +2,8 @@
nrequire("sv_mysqlite.lua")
local config = nrequire("config/sv_sql.lua")
local data = nrequire("config/sv_newplayer.lua")
-local fn = nrequire("fn.lua")
-local col = nrequire("colortheme.lua")
-local inv = nrequire("inventory/inventory.lua")
-local track = nrequire("sv_invtracker.lua")
+local col = nrequire("config/colortheme.lua")
+local q = nrequire("core/database/sv_queries.lua")
local sql = {}
--Setup the database if it's not already
@@ -14,7 +12,7 @@ CREATE TABLE IF NOT EXISTS playerdata(SteamID bigint primary key, PlayerData jso
--Create a new player
local create_player_query = [[
-INSERT INTO playerdata (`SteamID`,`PlayerData`,`MetaData`) VALUES(%.0f,%q,%q)]]
+INSERT INTO playerdata (`SteamID`,`PlayerData`,`MetaData`) VALUES(%.0f,'%s','%s')]]
--Get a player's data from the database
local fetch_player_query = [[
@@ -22,48 +20,14 @@ SELECT PlayerData, MetaData FROM playerdata WHERE SteamID=%.0f
]]
local save_player_query = [[
-UPDATE playerdata SET MetaData=%q PlayerData=%q WHERE SteamID=%.0f
+UPDATE playerdata SET MetaData="%s" PlayerData="%s" WHERE SteamID=%.0f
]]
-local s_fmt = function(fmt,...)
- local args = {...}
- fn.map(args,MySQLite.SQLStr)
- return string.format(fmt,unpack(args))
-end
-
local function q_fai(err,query)
- MsgC(col.console.red,string.format("Error executing %q, error:%s",query,err))
+ MsgC(col.console.red,string.format("Error executing %s, error:%s",query,err))
end
-local function serialize_player(ply)
- local sdata = {}
- local invs = {}
- for k,v in pairs(ply.data.inventories) do
- invs[k] = {v.Name,v:Serialize()}
- end
- sdata.inventories = invs
- sdata.skills = ply.data.skills
- sdata.quests = ply.data.quests
- sdata.prayers = ply.data.prayers
- return util.TableToJSON(sdata)
-end
-local function deserialize_player(ply,str)
- print("Deseriailizeing player",ply," with ", str)
- track.ClearInventories(ply)
- local tbl = util.JSONToTable(str)
- local invs = tbl.inventories
- print("Inventories was", invs)
- PrintTable(invs)
- for k,v in pairs(invs) do
- print("Giveing inventory",v[1],v[2])
- track.GiveInventoryWithData(ply,v[1],v[2])
- end
- ply.data.skills = tbl.skills or {}
- ply.data.quests = tbl.quests or {}
- ply.data.prayers = tbl.prayers or {}
- track.SendPlayerData(ply)
-end
local function connect()
print("Connecting to the database...")
@@ -81,7 +45,7 @@ connect()
--Retruns (PlayerData, MetaData) or nil
function sql.GetPlayerData(ply)
local s64 = ply:SteamID64()
- local q_str = s_fmt(fetch_player_query,s64)
+ local q_str = q.s_fmt(fetch_player_query,s64)
local q_suc = function(res,li)
print("Got player's data:",res,type(res))
if res == nil then
@@ -101,13 +65,18 @@ function sql.GetPlayerData(ply)
return
end
print("We were on the right server")
- local _,_,x,y,z = mtbl.lastlocation:find("([%d%.]+) ([%d%.]+) ([%d%.]+)")
+ --[[
+ print("Before finding data in the metatable, mtbl was ")
+ PrintTable(mtbl)
+ print(type(mtbl.lastlocation))
+ local _,_,x,y,z = string.find(mtbl.lastlocation,"([-%d%.]+) ([-%d%.]+) ([-%d%.]+)")
local vec = {x,y,z}
for k,v in pairs(vec) do vec[k] = tonumber(v) end
print("setting player pos to")
PrintTable(vec)
- ply:SetPos(Vector(unpack(vec)))
- deserialize_player(ply,plyd)
+ ]]
+ ply:SetPos(mtbl.lastlocation)
+ q.deserialize_player(ply,plyd)
end
end
print("doing query",q_str)
@@ -122,7 +91,7 @@ function sql.CreatePlayerTable(ply)
local plymet = data.newmeta()
local plydata = util.TableToJSON(plytbl)
local metdata = util.TableToJSON(plymet)
- local q_str = s_fmt(create_player_query,s64,plydata,metdata)
+ local q_str = q.s_fmt(create_player_query,s64,plydata,metdata)
local q_suc = function(res,li)
print("Inserted new player",ply)
sql.GetPlayerData(ply)
@@ -133,12 +102,12 @@ end
function sql.SendPlayerToInstance(ply,ls,ll)
local s64 = ply:SteamID64()
- local plydata = serialize_player(ply)
+ local plydata = q.serialize_player(ply)
local plymeta = util.TableToJSON({
lastserver = ls,
lastlocation = ll
})
- local q_str = s_fmt(save_player_query,plymeta,plydata,s64)
+ local q_str = q.s_fmt(save_player_query,plymeta,plydata,s64)
local q_suc = function(res,li)
print("Successfully saved player data")
end
@@ -157,4 +126,6 @@ concommand.Add("DoQuery",function(ply,cmd,args)
end
end)
+print("In sv_setup.lua, sql before returning is", sql)
+
return sql