Skip to content

Commit

Permalink
Added timers to remove expired mutes and bans from database
Browse files Browse the repository at this point in the history
  • Loading branch information
timosmit committed Feb 4, 2019
1 parent d00d30b commit d8ef69a
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 3 deletions.
14 changes: 14 additions & 0 deletions luascripts/wolfadmin/admin/bans.lua
Expand Up @@ -19,8 +19,13 @@ local db = wolfa_requireModule("db.db")

local players = wolfa_requireModule("players.players")

local events = wolfa_requireModule("util.events")
local timers = wolfa_requireModule("util.timers")

local bans = {}

local storedBanTimer

function bans.get(banId)
return db.getBan(banId)
end
Expand Down Expand Up @@ -48,4 +53,13 @@ function bans.remove(banId)
db.removeBan(banId)
end

function bans.checkStoredBans()
db.removeExpiredBans()
end

function bans.onInit()
storedBanTimer = timers.add(bans.checkStoredBans, 60000, 0, false, false)
end
events.handle("onGameInit", bans.onInit)

return bans
12 changes: 9 additions & 3 deletions luascripts/wolfadmin/admin/mutes.lua
Expand Up @@ -24,7 +24,8 @@ local timers = wolfa_requireModule("util.timers")

local mutes = {}

local muteTimer
local storedMuteTimer
local liveMuteTimer

function mutes.get(muteId)
return db.getMute(muteId)
Expand Down Expand Up @@ -64,7 +65,11 @@ function mutes.removeByClient(clientId)
end
end

function mutes.checkUnmutes()
function mutes.checkStoredMutes()
db.removeExpiredMutes()
end

function mutes.checkLiveMutes()
for clientId = 0, et.trap_Cvar_Get("sv_maxclients") - 1 do
if players.isMuted(clientId) and players.getMuteExpiresAt(clientId) < os.time() then
mutes.removeByClient(clientId)
Expand All @@ -75,7 +80,8 @@ function mutes.checkUnmutes()
end

function mutes.onInit()
muteTimer = timers.add(mutes.checkUnmutes, 1000, 0, false, false)
storedMuteTimer = timers.add(mutes.checkStoredMutes, 60000, 0, false, false)
liveMuteTimer = timers.add(mutes.checkLiveMutes, 1000, 0, false, false)
end
events.handle("onGameInit", mutes.onInit)

Expand Down
8 changes: 8 additions & 0 deletions luascripts/wolfadmin/db/mysql.lua
Expand Up @@ -336,6 +336,10 @@ function mysql.removeMute(muteId)
cur = assert(con:execute("DELETE FROM `mute` WHERE `id`="..tonumber(muteId)..""))
end

function mysql.removeExpiredMutes()
cur = assert(con:execute("DELETE FROM `mute` WHERE `expires`<="..os.time()))
end

function mysql.getMutesCount()
cur = assert(con:execute("SELECT COUNT(`id`) AS `count` FROM `mute`"))

Expand Down Expand Up @@ -391,6 +395,10 @@ function mysql.removeBan(banId)
cur = assert(con:execute("DELETE FROM `ban` WHERE `id`="..tonumber(banId)..""))
end

function mysql.removeExpiredBans()
cur = assert(con:execute("DELETE FROM `ban` WHERE `expires`<="..os.time()))
end

function mysql.getBansCount()
cur = assert(con:execute("SELECT COUNT(`id`) AS `count` FROM `ban`"))

Expand Down
8 changes: 8 additions & 0 deletions luascripts/wolfadmin/db/sqlite3.lua
Expand Up @@ -336,6 +336,10 @@ function sqlite3.removeMute(muteId)
cur = assert(con:execute("DELETE FROM `mute` WHERE `id`="..tonumber(muteId)..""))
end

function sqlite3.removeExpiredMutes()
cur = assert(con:execute("DELETE FROM `mute` WHERE `expires`<="..os.time()))
end

function sqlite3.getMutesCount()
cur = assert(con:execute("SELECT COUNT(`id`) AS `count` FROM `mute`"))

Expand Down Expand Up @@ -391,6 +395,10 @@ function sqlite3.removeBan(banId)
cur = assert(con:execute("DELETE FROM `ban` WHERE `id`="..tonumber(banId)..""))
end

function sqlite3.removeExpiredBans()
cur = assert(con:execute("DELETE FROM `ban` WHERE `expires`<="..os.time()))
end

function sqlite3.getBansCount()
cur = assert(con:execute("SELECT COUNT(`id`) AS `count` FROM `ban`"))

Expand Down

0 comments on commit d8ef69a

Please sign in to comment.