From de9e7b50fea685c03b613d697cc148d0aaedc84e Mon Sep 17 00:00:00 2001 From: Timo Smit Date: Sun, 4 Sep 2016 19:58:34 +0200 Subject: [PATCH] Implemented retrieval of player levels from database --- luascripts/auth/acl.lua | 18 ++++++++++++++---- luascripts/db/mysql.lua | 24 +++++++++++++++++++++++- luascripts/db/sqlite3.lua | 24 +++++++++++++++++++++++- luascripts/players/players.lua | 2 +- 4 files changed, 61 insertions(+), 7 deletions(-) diff --git a/luascripts/auth/acl.lua b/luascripts/auth/acl.lua index 989ccb7..6cc5193 100644 --- a/luascripts/auth/acl.lua +++ b/luascripts/auth/acl.lua @@ -15,11 +15,15 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . +local auth = require "luascripts.wolfadmin.auth.auth" + +local db = require "luascripts.wolfadmin.db.db" + +local stats = require "luascripts.wolfadmin.players.stats" + local events = require "luascripts.wolfadmin.util.events" local files = require "luascripts.wolfadmin.util.files" -local auth = require "luascripts.wolfadmin.auth.auth" - local acl = {} function acl.readpermissions() @@ -39,9 +43,15 @@ function acl.isallowed(clientId, permission) end function acl.getlevel(clientId) - -- returns level for client + local player = db.getplayer(stats.get(clientId, "playerGUID")) - return 0 + return player["level_id"] +end + +function acl.getlevelname(levelId) + local level = db.getlevel(levelId) + + return level["name"] end return acl diff --git a/luascripts/db/mysql.lua b/luascripts/db/mysql.lua index 3471bcb..eaabb98 100644 --- a/luascripts/db/mysql.lua +++ b/luascripts/db/mysql.lua @@ -34,10 +34,14 @@ function mysql.addplayer(guid, ip) cur = assert(con:execute("INSERT INTO `player` (`guid`, `ip`) VALUES ('"..util.escape(guid).."', '"..util.escape(ip).."')")) end -function mysql.updateplayer(guid, ip) +function mysql.updateplayerip(guid, ip) cur = assert(con:execute("UPDATE `player` SET `ip`='"..util.escape(ip).."' WHERE `guid`='"..util.escape(guid).."'")) end +function mysql.updateplayerlevel(guid, level) + cur = assert(con:execute("UPDATE `player` SET `level`='"..tonumber(level).."' WHERE `guid`='"..util.escape(guid).."'")) +end + function mysql.getplayerid(clientid) return mysql.getplayer(stats.get(clientid, "playerGUID"))["id"] end @@ -51,6 +55,24 @@ function mysql.getplayer(guid) return player end +-- levels +function mysql.addlevel(id, name) + cur = assert(con:execute("INSERT INTO `level` (`id`, `name`) VALUES ('"..tonumber(id).."', '"..util.escape(name).."')")) +end + +function mysql.updatelevel(id, name) + cur = assert(con:execute("UPDATE `level` SET `name`='"..util.escape(name).."' WHERE `id`='"..tonumber(id).."'")) +end + +function mysql.getlevel(id) + cur = assert(con:execute("SELECT * FROM `level` WHERE `id`='"..tonumber(id).."'")) + + local level = cur:fetch({}, "a") + cur:close() + + return level +end + -- aliases function mysql.addalias(playerid, alias, lastused) cur = assert(con:execute("INSERT INTO `alias` (`player_id`, `alias`, `cleanalias`, `lastused`, `used`) VALUES ("..tonumber(playerid)..", '"..util.escape(alias).."', '"..util.escape(util.removeColors(alias)).."', "..tonumber(lastused)..", 1)")) diff --git a/luascripts/db/sqlite3.lua b/luascripts/db/sqlite3.lua index d599a67..1904b7c 100644 --- a/luascripts/db/sqlite3.lua +++ b/luascripts/db/sqlite3.lua @@ -34,10 +34,14 @@ function sqlite3.addplayer(guid, ip) cur = assert(con:execute("INSERT INTO `player` (`guid`, `ip`) VALUES ('"..util.escape(guid).."', '"..util.escape(ip).."')")) end -function sqlite3.updateplayer(guid, ip) +function sqlite3.updateplayerip(guid, ip) cur = assert(con:execute("UPDATE `player` SET `ip`='"..util.escape(ip).."' WHERE `guid`='"..util.escape(guid).."'")) end +function sqlite3.updateplayerlevel(guid, level) + cur = assert(con:execute("UPDATE `player` SET `level`='"..tonumber(level).."' WHERE `guid`='"..util.escape(guid).."'")) +end + function sqlite3.getplayerid(clientid) return sqlite3.getplayer(stats.get(clientid, "playerGUID"))["id"] end @@ -51,6 +55,24 @@ function sqlite3.getplayer(guid) return player end +-- levels +function sqlite3.addlevel(id, name) + cur = assert(con:execute("INSERT INTO `level` (`id`, `name`) VALUES ('"..tonumber(id).."', '"..util.escape(name).."')")) +end + +function sqlite3.updatelevel(id, name) + cur = assert(con:execute("UPDATE `level` SET `name`='"..util.escape(name).."' WHERE `id`='"..tonumber(id).."'")) +end + +function sqlite3.getlevel(id) + cur = assert(con:execute("SELECT * FROM `level` WHERE `id`='"..tonumber(id).."'")) + + local level = cur:fetch({}, "a") + cur:close() + + return level +end + -- aliases function sqlite3.addalias(playerid, alias, lastused) cur = assert(con:execute("INSERT INTO `alias` (`player_id`, `alias`, `cleanalias`, `lastused`, `used`) VALUES ("..tonumber(playerid)..", '"..util.escape(alias).."', '"..util.escape(util.removeColors(alias)).."', "..tonumber(lastused)..", 1)")) diff --git a/luascripts/players/players.lua b/luascripts/players/players.lua index 8126b47..b5365df 100644 --- a/luascripts/players/players.lua +++ b/luascripts/players/players.lua @@ -43,7 +43,7 @@ function players.onconnect(clientId, firstTime, isBot) local guid = stats.get(clientId, "playerGUID") local ip = stats.get(clientId, "playerIP") - db.updateplayer(guid, ip) + db.updateplayerip(guid, ip) else local guid = stats.get(clientId, "playerGUID") local ip = stats.get(clientId, "playerIP")