diff options
Diffstat (limited to 'gamemode/server/sv_database.lua')
| -rw-r--r-- | gamemode/server/sv_database.lua | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/gamemode/server/sv_database.lua b/gamemode/server/sv_database.lua index 59b685f..357d868 100644 --- a/gamemode/server/sv_database.lua +++ b/gamemode/server/sv_database.lua @@ -4,9 +4,9 @@ require("mysqloo") local createplayerquery local createplayerprepare = [[ -INSERT INTO playerdata (`SteamID`, `PlayerName`,`Inventory`,`WorldPosition`,`World`) VALUES(?, ?, ?, ?, ?)]] +INSERT INTO playerdata (`SteamID`, `PlayerName`,`Inventory`, `Skills`,`Quests`,`WorldPosition`,`World`) VALUES(?, ?, ?, ?, ?, ?, ?)]] local createtablequery = [[ -create table if not exists playerdata(SteamID text, PlayerName text, Inventory json, WorldPosition text, World text)]] +create table if not exists playerdata(SteamID bigint primary key, PlayerName text, Inventory json, Skills json, Quests json, WorldPosition text, World text)]] local function connectToDatabase() if ART.database ~= nil then return end @@ -65,13 +65,15 @@ checkDatabase() local function loadQueries() local db = ART.database - print("Loading queries") + --print("Loading queries") createplayerquery = db:prepare(createplayerprepare) - print("starting inventory:") - print(ART.defaults.starting_inventory) + --print("starting inventory:") + --print(ART.defaults.starting_inventory) createplayerquery:setString(3,ART.defaults.starting_inventory) - createplayerquery:setString(4,ART.defaults.starting_position) - createplayerquery:setString(5,ART.defaults.starting_world) + createplayerquery:setString(4,ART.defaults.starting_skills) + createplayerquery:setString(5,ART.defaults.starting_quests) + createplayerquery:setString(6,ART.defaults.starting_position) + createplayerquery:setString(7,ART.defaults.starting_world) function createplayerquery:onSuccess(data) print("Created player entry successfully!") end @@ -86,10 +88,10 @@ loadQueries() function ART.loadPlayerData(ply) assert(ART.DatabaseConnected,"Player joined while setup was not complete!") print("Attempting to load player data") - local steamid = ply:SteamID() + local steamid = ply:SteamID64() local db = ART.database local q = db:query([[ -select Inventory, WorldPosition, World from playerdata where SteamID="]] .. steamid .. "\"") +select Inventory, Skills, Quests, WorldPosition, World from playerdata where SteamID="]] .. steamid .. "\"") function q:onSuccess(data) if #data == 0 then --Player does not have an entry, make one! print("Player does not have entry!") @@ -126,6 +128,8 @@ select Inventory, WorldPosition, World from playerdata where SteamID="]] .. stea end --Otherwise, we're in the right world, load our data ply:LoadInventory(inv) + ply.Skills = util.JSONToTable(data[1].Skills) + ply.Quests = util.JSONToTable(data[1].Quests) local postbl = string.Explode(" ", worldpos) local posvec = Vector(postbl[1],postbl[2],postbl[3]) print("Setting player pos to:") |
