-
-
Save UAVXP/c55884d66478a16b046a472a1410d1a0 to your computer and use it in GitHub Desktop.
EZData - The PData Replacement
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--[[ | |
EZData - The PData Replacement | |
By Beast (STEAM_0:0:2316327) | |
This addon may be used as long as this notice isn't removed. Feel free to let me know what you use it in! | |
Copyright (C) 2017 Beast | |
]] | |
-- Optimizations for functions | |
local sql_Query = sql.Query | |
local tostring = tostring | |
local SQLStr = SQLStr | |
local sidTo64 = util.SteamIDTo64 | |
-- Player-related functions | |
local ply = FindMetaTable "Player" | |
-- Simple formatting for escaping SQL strings | |
local function formatQuery( str, ... ) | |
local count = 0 | |
local opts = { ... } | |
local formattedQuery = tostring( str ):gsub( "?", function() count = count + 1 return SQLStr( opts[ count ] ) end ) | |
return sql_Query( formattedQuery ) | |
end | |
-- Create database | |
local function createDatabase() | |
sql_Query "CREATE TABLE IF NOT EXISTS ez_data ( sid BIGINT PRIMARY KEY, key TEXT NOT NULL, value TEXT NOT NULL )" | |
end | |
hook.Add( "Initialize", "EZData_CreateDatabase", createDatabase ) | |
-- Setting player's data | |
function ply:SetEZData( key, val ) | |
formatQuery( "REPLACE INTO ez_data ( sid, key, value ) VALUES( ?, ?, ? )", self:SteamID64(), key, val ) | |
end | |
-- Getting player's data | |
function ply:GetEZData( key, def ) | |
local val = formatQuery( "SELECT value FROM ez_data WHERE sid = ? AND key = ? LIMIT 1", self:SteamID64(), key ) | |
if val == nil then | |
return def | |
end | |
return val[ 1 ].value | |
end | |
-- Removing player's data | |
function ply:RemoveEZData( key ) | |
formatQuery( "DELETE FROM ez_data WHERE sid = ? and key = ?", self:SteamID64(), key ) | |
end | |
-- Setting player's data based on steamid | |
function util.SetEZData( sid, key, val ) | |
formatQuery( "REPLACE INTO ez_data ( sid, key, value ) VALUES( ?, ?, ? )", sidTo64( sid ), key, val ) | |
end | |
-- Getting player's data based on steamid | |
function util.GetEZData( sid, key, def ) | |
local val = formatQuery( "SELECT value FROM ez_data WHERE sid = ? AND key = ? LIMIT 1", sidTo64( sid ), key ) | |
if val == nil then | |
return def | |
end | |
return val[ 1 ].value | |
end | |
-- Removing player's data based on steamid | |
function util.RemoveEZData( sid, key ) | |
formatQuery( "DELETE FROM ez_data WHERE sid = ? and key = ?", sidTo64( sid ), key ) | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment