mirror of
https://github.com/etlegacy/wolfadmin.git
synced 2024-11-10 06:41:53 +00:00
Removed cfg system and added checks for database availability/connectivity (issue #59)
This commit is contained in:
parent
1be2b0f2eb
commit
bb67eb3f69
13 changed files with 40 additions and 221 deletions
|
@ -124,7 +124,7 @@ function admin.onconnect(clientId, firstTime, isBot)
|
|||
return "\n\nIt appears you do not have a ^7GUID^9/^7etkey^9. In order to play on this server, enable ^7PunkBuster ^9(use ^7\pb_cl_enable^9) ^9and/or create an ^7etkey^9.\n\nMore info: ^7www.etkey.org"
|
||||
end
|
||||
|
||||
if settings.get("db_type") ~= "cfg" then
|
||||
if db.isconnected() then
|
||||
admin.updatePlayer(clientId)
|
||||
admin.updateAlias(clientId)
|
||||
end
|
||||
|
@ -160,7 +160,7 @@ function stats.oninfochange(clientId)
|
|||
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay -1 \""..old.." ^7is now known as "..new.."\";")
|
||||
|
||||
if settings.get("db_type") ~= "cfg" then
|
||||
if db.isconnected() then
|
||||
admin.updateAlias(clientId)
|
||||
end
|
||||
|
||||
|
|
|
@ -15,12 +15,13 @@
|
|||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
local db = require "luascripts.wolfadmin.db.db"
|
||||
local settings = require "luascripts.wolfadmin.util.settings"
|
||||
local commands = require "luascripts.wolfadmin.commands.commands"
|
||||
local warns = require "luascripts.wolfadmin.admin.warns"
|
||||
|
||||
function commandRemoveWarn(clientId, cmdArguments)
|
||||
if settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg" then
|
||||
if settings.get("g_warnHistory") == 0 or not db.isconnected() then
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^ddewarn: ^9warn history is disabled.\";")
|
||||
|
||||
return true
|
||||
|
@ -56,4 +57,4 @@ function commandRemoveWarn(clientId, cmdArguments)
|
|||
|
||||
return true
|
||||
end
|
||||
commands.addadmin("dewarn", commandRemoveWarn, "R", "remove a warning for a certain player", "^9[^3name|slot#^9] ^9[^3warn#^9]", function() return (settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg") end)
|
||||
commands.addadmin("dewarn", commandRemoveWarn, "R", "remove a warning for a certain player", "^9[^3name|slot#^9] ^9[^3warn#^9]", function() return (settings.get("g_warnHistory") == 0 or not db.isconnected()) end)
|
|
@ -23,7 +23,7 @@ local commands = require "luascripts.wolfadmin.commands.commands"
|
|||
local stats = require "luascripts.wolfadmin.players.stats"
|
||||
|
||||
function commandListAliases(clientId, cmdArguments)
|
||||
if settings.get("db_type") == "cfg" then
|
||||
if not db.isconnected() then
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dlistaliases: ^9alias history is disabled.\";")
|
||||
|
||||
return true
|
||||
|
@ -76,4 +76,4 @@ function commandListAliases(clientId, cmdArguments)
|
|||
|
||||
return true
|
||||
end
|
||||
commands.addadmin("listaliases", commandListAliases, "f", "display all known aliases for a player", "^9[^3name|slot#^9] ^9(^hoffset^9)", function() return (settings.get("db_type") == "cfg") end)
|
||||
commands.addadmin("listaliases", commandListAliases, "f", "display all known aliases for a player", "^9[^3name|slot#^9] ^9(^hoffset^9)", function() return (not db.isconnected()) end)
|
|
@ -53,7 +53,7 @@ function commandListLevels(clientId, cmdArguments)
|
|||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "cchat "..clientId.." \"^dlistlevels: ^9"..levelsCount.." available levels (open console for the full list)\";")
|
||||
|
||||
return true
|
||||
elseif settings.get("db_type") == "cfg" then
|
||||
elseif not db.isconnected() then
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dlistlevels: ^9level history is disabled.\";")
|
||||
|
||||
return true
|
||||
|
@ -93,4 +93,4 @@ function commandListLevels(clientId, cmdArguments)
|
|||
|
||||
return true
|
||||
end
|
||||
commands.addadmin("listlevels", commandListLevels, "s", "display all levels on the server", (settings.get("db_type") == "cfg" and nil or "^9(^3name|slot#^9) ^9(^hoffset^9)"))
|
||||
commands.addadmin("listlevels", commandListLevels, "s", "display all levels on the server", (not db.isconnected() and nil or "^9(^3name|slot#^9) ^9(^hoffset^9)"))
|
|
@ -15,11 +15,18 @@
|
|||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
local db = require "luascripts.wolfadmin.db.db"
|
||||
local commands = require "luascripts.wolfadmin.commands.commands"
|
||||
local game = require "luascripts.wolfadmin.game.game"
|
||||
local sprees = require "luascripts.wolfadmin.game.sprees"
|
||||
|
||||
function commandResetSprees(clientId, cmdArguments)
|
||||
if not db.isconnected() then
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dsprees: ^9spree records are disabled.\";")
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
if cmdArguments[1] and cmdArguments[1] == "all" then
|
||||
sprees.reset(true)
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
local settings = require "luascripts.wolfadmin.util.settings"
|
||||
local db = require "luascripts.wolfadmin.db.db"
|
||||
local commands = require "luascripts.wolfadmin.commands.commands"
|
||||
local admin = require "luascripts.wolfadmin.admin.admin"
|
||||
|
||||
|
@ -37,7 +38,7 @@ function commandSetLevel(clientId, cmdArguments)
|
|||
-- plays a promotion sound
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "playsound \"/sound/vo/general/axis/hq_promogen.wav\";")
|
||||
|
||||
if settings.get("db_type") ~= "cfg" then
|
||||
if db.isconnected() then
|
||||
cmdArguments[2] = tonumber(cmdArguments[2]) or 0
|
||||
|
||||
admin.setPlayerLevel(cmdClient, tonumber(cmdArguments[2]), clientId)
|
||||
|
|
|
@ -24,7 +24,7 @@ local commands = require "luascripts.wolfadmin.commands.commands"
|
|||
local warns = require "luascripts.wolfadmin.admin.warns"
|
||||
|
||||
function commandShowWarns(clientId, cmdArguments)
|
||||
if settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg" then
|
||||
if settings.get("g_warnHistory") == 0 or not db.isconnected() then
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dshowwarns: ^9warn history is disabled.\";")
|
||||
|
||||
return true
|
||||
|
@ -66,4 +66,4 @@ function commandShowWarns(clientId, cmdArguments)
|
|||
|
||||
return true
|
||||
end
|
||||
commands.addadmin("showwarns", commandShowWarns, "R", "display warnings for a specific player", "^9[^3name|slot#^9] ^9(^hoffset^9)", function() return (settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg") end)
|
||||
commands.addadmin("showwarns", commandShowWarns, "R", "display warnings for a specific player", "^9[^3name|slot#^9] ^9(^hoffset^9)", function() return (settings.get("g_warnHistory") == 0 or not db.isconnected()) end)
|
|
@ -16,9 +16,16 @@
|
|||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
local commands = require "luascripts.wolfadmin.commands.commands"
|
||||
local db = require "luascripts.wolfadmin.db.db"
|
||||
local sprees = require "luascripts.wolfadmin.game.sprees"
|
||||
|
||||
function commandShowSprees(clientId, cmdArguments)
|
||||
if not db.isconnected() then
|
||||
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dsprees: ^9spree records are disabled.\";")
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
local records = sprees.get()
|
||||
|
||||
if not (records["ksrecord"] or records["dsrecord"] or records["rsrecord"]) then
|
||||
|
|
|
@ -16,11 +16,12 @@
|
|||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
local settings = require "luascripts.wolfadmin.util.settings"
|
||||
local db = require "luascripts.wolfadmin.db.db"
|
||||
local commands = require "luascripts.wolfadmin.commands.commands"
|
||||
local warns = require "luascripts.wolfadmin.admin.warns"
|
||||
|
||||
function commandAddWarn(clientId, cmdArguments)
|
||||
if settings.get("g_warnHistory") == 0 then
|
||||
if settings.get("g_warnHistory") == 0 or not db.isconnected() then
|
||||
return false
|
||||
elseif #cmdArguments < 2 then
|
||||
return false
|
||||
|
|
|
@ -1,205 +0,0 @@
|
|||
|
||||
-- WolfAdmin module for Wolfenstein: Enemy Territory servers.
|
||||
-- Copyright (C) 2015-2016 Timo 'Timothy' Smit
|
||||
|
||||
-- This program is free software: you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
-- the Free Software Foundation, either version 3 of the License, or
|
||||
-- at your option any later version.
|
||||
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU General Public License for more details.
|
||||
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
local constants = require "luascripts.wolfadmin.util.constants"
|
||||
local util = require "luascripts.wolfadmin.util.util"
|
||||
local events = require "luascripts.wolfadmin.util.events"
|
||||
local files = require "luascripts.wolfadmin.util.files"
|
||||
local settings = require "luascripts.wolfadmin.util.settings"
|
||||
|
||||
local stats = require "luascripts.wolfadmin.players.stats"
|
||||
|
||||
local cfg = {}
|
||||
|
||||
local maps = {}
|
||||
local records = {}
|
||||
|
||||
function cfg.addmap(mapname, lastplayed)
|
||||
table.insert(records, {
|
||||
["map"] = mapname,
|
||||
})
|
||||
end
|
||||
|
||||
function cfg.updatemap(mapid, lastplayed)
|
||||
end
|
||||
|
||||
function cfg.getmap(mapname)
|
||||
for id, record in ipairs(records) do
|
||||
if record["map"] == mapname then
|
||||
return {["id"] = id}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function cfg.addrecord(mapid, recorddate, recordtype, record, playerid)
|
||||
cfg.updaterecord(mapid, recorddate, recordtype, record, playerid)
|
||||
end
|
||||
|
||||
function cfg.updaterecord(mapid, recorddate, recordtype, record, playerid)
|
||||
local typestr = ""
|
||||
if recordtype == constants.RECORD_KILL then
|
||||
typestr = "ks"
|
||||
elseif recordtype == constants.RECORD_DEATH then
|
||||
typestr = "ds"
|
||||
elseif recordtype == constants.RECORD_REVIVE then
|
||||
typestr = "rs"
|
||||
end
|
||||
|
||||
records[mapid][typestr.."record"] = record
|
||||
records[mapid][typestr.."name"] = playerid
|
||||
end
|
||||
|
||||
function cfg.removeallrecords()
|
||||
records = {}
|
||||
end
|
||||
|
||||
function cfg.removerecords(mapid)
|
||||
records[mapid] = {
|
||||
["map"] = records[mapid]["map"],
|
||||
}
|
||||
end
|
||||
|
||||
function cfg.getrecords(mapid)
|
||||
return records[mapid]
|
||||
end
|
||||
|
||||
function cfg.getrecordscount(mapid)
|
||||
return #records
|
||||
end
|
||||
|
||||
function cfg.getrecord(mapid, recordtype)
|
||||
local row = records[mapid]
|
||||
|
||||
if row then
|
||||
local record, typestr = {}, ""
|
||||
|
||||
if recordtype == constants.RECORD_KILL then
|
||||
typestr = "ks"
|
||||
elseif recordtype == constants.RECORD_DEATH then
|
||||
typestr = "ds"
|
||||
elseif recordtype == constants.RECORD_REVIVE then
|
||||
typestr = "rs"
|
||||
end
|
||||
|
||||
if not record[typestr.."player"] then return end
|
||||
|
||||
record[typestr.."player"] = tonumber(row["player"])
|
||||
record[typestr.."record"] = tonumber(row["record"])
|
||||
|
||||
return record
|
||||
end
|
||||
end
|
||||
|
||||
function cfg.addplayer(guid, ip)
|
||||
end
|
||||
|
||||
function cfg.updateplayer(guid, ip)
|
||||
end
|
||||
|
||||
function cfg.getplayerid(clientid)
|
||||
if type(clientid) == "number" then
|
||||
return stats.get(clientid, "playerName")
|
||||
end
|
||||
|
||||
return clientid
|
||||
end
|
||||
|
||||
function cfg.isplayerbot(clientid)
|
||||
return string.match(stats.get(clientid, "playerGUID"), 'OMNIBOT%d%d%d+')
|
||||
end
|
||||
|
||||
function cfg.getplayer(guid)
|
||||
end
|
||||
|
||||
function cfg.addalias(playerid, alias, lastused)
|
||||
end
|
||||
|
||||
function cfg.updatealias(aliasid, lastused)
|
||||
end
|
||||
|
||||
function cfg.getaliases(playerid)
|
||||
end
|
||||
|
||||
function cfg.getaliasbyid(aliasid)
|
||||
end
|
||||
|
||||
function cfg.getaliasbyname(playerid, aliasname)
|
||||
end
|
||||
|
||||
function cfg.getlastalias(playerid)
|
||||
return {["alias"] = playerid}
|
||||
end
|
||||
|
||||
function cfg.addsetlevel(playerid, level, adminid, datetime)
|
||||
end
|
||||
|
||||
function cfg.getlevels(playerid)
|
||||
end
|
||||
|
||||
function cfg.addwarn(playerid, reason, adminid, datetime)
|
||||
end
|
||||
|
||||
function cfg.removewarn(warnid)
|
||||
end
|
||||
|
||||
function cfg.getwarns(playerid)
|
||||
end
|
||||
|
||||
function cfg.getwarn(warnid)
|
||||
end
|
||||
|
||||
function cfg.isconnected()
|
||||
end
|
||||
|
||||
function cfg.start()
|
||||
local fileName = settings.get("g_fileSprees")
|
||||
|
||||
if fileName == "" then
|
||||
return
|
||||
end
|
||||
|
||||
local amount, array = files.loadCFG(fileName, "record", true)
|
||||
records = array["record"] or {}
|
||||
|
||||
for id, record in ipairs(records) do
|
||||
record["ksrecord"] = tonumber(record["ksrecord"])
|
||||
record["dsrecord"] = tonumber(record["dsrecord"])
|
||||
record["rsrecord"] = tonumber(record["rsrecord"])
|
||||
end
|
||||
end
|
||||
|
||||
function cfg.close(doSave)
|
||||
-- in case of a map restart for example
|
||||
if not doSave then return end
|
||||
|
||||
local fileName = settings.get("g_fileSprees")
|
||||
|
||||
if fileName == "" then
|
||||
return true
|
||||
end
|
||||
|
||||
local array = {["record"] = {}}
|
||||
|
||||
-- add back the indices we removed
|
||||
for _, record in ipairs(records) do
|
||||
table.insert(array["record"], record)
|
||||
end
|
||||
|
||||
files.save(fileName, array)
|
||||
end
|
||||
|
||||
return cfg
|
|
@ -299,7 +299,11 @@ function mysql.isconnected()
|
|||
end
|
||||
|
||||
function mysql.start()
|
||||
con = assert(env:connect(settings.get("db_database"), settings.get("db_username"), settings.get("db_password"), settings.get("db_hostname"), settings.get("db_port")))
|
||||
con = env:connect(settings.get("db_database"), settings.get("db_username"), settings.get("db_password"), settings.get("db_hostname"), settings.get("db_port"))
|
||||
|
||||
if not con then
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
function mysql.close(doSave)
|
||||
|
|
|
@ -299,7 +299,11 @@ function sqlite3.isconnected()
|
|||
end
|
||||
|
||||
function sqlite3.start()
|
||||
con = assert(env:connect(settings.get("db_file")))
|
||||
con = env:connect(settings.get("db_file"))
|
||||
|
||||
if not con then
|
||||
return
|
||||
end
|
||||
|
||||
-- enable foreign key enforcement
|
||||
cur = assert(con:execute("PRAGMA foreign_keys=1"))
|
||||
|
|
|
@ -91,8 +91,7 @@ end
|
|||
|
||||
function sprees.oninit(levelTime, randomSeed, restartMap)
|
||||
if
|
||||
(settings.get("db_type") == "cfg" and settings.get("g_fileSprees") ~= "") or
|
||||
(settings.get("db_type") ~= "cfg" and settings.get("g_spreeRecords") ~= 0)
|
||||
(db.isconnected() and settings.get("g_spreeRecords") ~= 0)
|
||||
then
|
||||
sprees.load()
|
||||
|
||||
|
|
Loading…
Reference in a new issue