Implemented retrieval of player levels from database

This commit is contained in:
Timo Smit 2016-09-04 19:58:34 +02:00
parent 4ce4ee9b9b
commit de9e7b50fe
4 changed files with 61 additions and 7 deletions

View file

@ -15,11 +15,15 @@
-- You should have received a copy of the GNU General Public License -- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>. -- along with this program. If not, see <http://www.gnu.org/licenses/>.
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 events = require "luascripts.wolfadmin.util.events"
local files = require "luascripts.wolfadmin.util.files" local files = require "luascripts.wolfadmin.util.files"
local auth = require "luascripts.wolfadmin.auth.auth"
local acl = {} local acl = {}
function acl.readpermissions() function acl.readpermissions()
@ -39,9 +43,15 @@ function acl.isallowed(clientId, permission)
end end
function acl.getlevel(clientId) 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 end
return acl return acl

View file

@ -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).."')")) cur = assert(con:execute("INSERT INTO `player` (`guid`, `ip`) VALUES ('"..util.escape(guid).."', '"..util.escape(ip).."')"))
end 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).."'")) cur = assert(con:execute("UPDATE `player` SET `ip`='"..util.escape(ip).."' WHERE `guid`='"..util.escape(guid).."'"))
end 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) function mysql.getplayerid(clientid)
return mysql.getplayer(stats.get(clientid, "playerGUID"))["id"] return mysql.getplayer(stats.get(clientid, "playerGUID"))["id"]
end end
@ -51,6 +55,24 @@ function mysql.getplayer(guid)
return player return player
end 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 -- aliases
function mysql.addalias(playerid, alias, lastused) 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)")) 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)"))

View file

@ -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).."')")) cur = assert(con:execute("INSERT INTO `player` (`guid`, `ip`) VALUES ('"..util.escape(guid).."', '"..util.escape(ip).."')"))
end 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).."'")) cur = assert(con:execute("UPDATE `player` SET `ip`='"..util.escape(ip).."' WHERE `guid`='"..util.escape(guid).."'"))
end 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) function sqlite3.getplayerid(clientid)
return sqlite3.getplayer(stats.get(clientid, "playerGUID"))["id"] return sqlite3.getplayer(stats.get(clientid, "playerGUID"))["id"]
end end
@ -51,6 +55,24 @@ function sqlite3.getplayer(guid)
return player return player
end 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 -- aliases
function sqlite3.addalias(playerid, alias, lastused) 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)")) 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)"))

View file

@ -43,7 +43,7 @@ function players.onconnect(clientId, firstTime, isBot)
local guid = stats.get(clientId, "playerGUID") local guid = stats.get(clientId, "playerGUID")
local ip = stats.get(clientId, "playerIP") local ip = stats.get(clientId, "playerIP")
db.updateplayer(guid, ip) db.updateplayerip(guid, ip)
else else
local guid = stats.get(clientId, "playerGUID") local guid = stats.get(clientId, "playerGUID")
local ip = stats.get(clientId, "playerIP") local ip = stats.get(clientId, "playerIP")