add: sync warn

This commit is contained in:
Linventif 2024-07-27 17:20:03 +00:00
parent b96777d014
commit 5127cc2307
2 changed files with 58 additions and 8 deletions

View File

@ -4,19 +4,17 @@ local conFuncs = {
["try"] = function() gmInte.tryConfig() end, ["try"] = function() gmInte.tryConfig() end,
["refresh"] = function() gmInte.refreshSettings() end, ["refresh"] = function() gmInte.refreshSettings() end,
["get-server-id"] = function() print(gmInte.config.id || "none") end, ["get-server-id"] = function() print(gmInte.config.id || "none") end,
["screenshot"] = function(args) ["export-warns"] = function() hook.Run("GmodIntegration:ExportWarns") end
if !args[2] then return gmInte.log("No SteamID64 provided") end
for _, ply in pairs(player.GetAll()) do
if ply:SteamID64() == args[2] then return gmInte.takeScreenshot(ply) end
end
end,
} }
concommand.Add("gmi", function(ply, cmd, args) local function cmdExecuted(ply, cmd, args)
if ply:IsPlayer() && !ply:IsSuperAdmin() then return end if ply:IsPlayer() && !ply:IsSuperAdmin() then return end
if conFuncs[args[1]] then if conFuncs[args[1]] then
conFuncs[args[1]](args) conFuncs[args[1]](args)
else else
gmInte.log("Unknown Command Argument") gmInte.log("Unknown Command Argument")
end end
end) end
concommand.Add("gmi", cmdExecuted)
concommand.Add("gmod-integration", cmdExecjsonuted)

View File

@ -0,0 +1,52 @@
function gmInte.playerWarn(ply, admin, reason)
gmInte.http.post("/servers/:serverID/players/" .. ply:SteamID64() .. "/warns", {
["player"] = gmInte.getPlayerFormat(ply),
["admin"] = gmInte.getPlayerFormat(admin),
["reason"] = reason
})
end
function gmInte.playerWarnID(plySteamID64, adminSteamID64, reason)
gmInte.http.post("/servers/:serverID/players/" .. plySteamID64 .. "/warns", {
["adminSteamID64"] = adminSteamID64,
["reason"] = reason
})
end
function gmInte.serverExportWarns(data)
gmInte.http.post("/servers/:serverID/warns", {
["warns"] = data
})
end
if AWarn then
hook.Add("AWarnPlayerWarned", "AWarn3WarningDiscordRelay", function(pl, aID, reason)
local admin = AWarn:GetPlayerFromID64(aID)
if !admin then return end
gmInte.playerWarn(pl, admin, reason)
end)
hook.Add("AWarnPlayerIDWarned", "AWarn3IDWarningDiscordRelay", function(pID, aID, reason)
local admin = AWarn:GetPlayerFromID64(aID)
if !admin then return end
gmInte.playerWarnID(pID, aID, reason)
end)
hook.Add("GmodIntegration:ExportWarns", "AWarn3ExportWarns", function()
local query = "SELECT * FROM awarn3_warningtable"
AWarn3_MySQLite.query(query, function(result)
if !result then return end
local warns = {}
for k, v in pairs(result) do
table.insert(warns, {
playerSteamID64 = v.PlayerID,
adminSteamID64 = v.AdminID,
reason = v.WarningReason,
date = v.WarningDate
})
end
gmInte.serverExportWarns(warns)
end, function(err) gmInte.logError("AWarn3", "Failed to export warns: " .. err) end)
end)
end