From 2a41c281c72adc7418cb3520d738c23a742ef084 Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 21:58:13 +1000 Subject: [PATCH 01/17] Update rdm_manager.lua Added support for waiting for staff --- lua/damagelogs/server/rdm_manager.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lua/damagelogs/server/rdm_manager.lua b/lua/damagelogs/server/rdm_manager.lua index 665be5ac..c9415131 100644 --- a/lua/damagelogs/server/rdm_manager.lua +++ b/lua/damagelogs/server/rdm_manager.lua @@ -517,7 +517,7 @@ net.Receive("DL_UpdateStatus", function(_len, ply) tbl.admin = status == RDM_MANAGER_WAITING and false or ply:Nick() local msg - if status == RDM_MANAGER_WAITING then + if status == RDM_MANAGER_WAITING or status == RDM_MANAGER_READYFORSTAFF then msg = string_format(TTTLogTranslate(ply.DMGLogLang, "HasSetReport"), ply:Nick(), index, TTTLogTranslate(ply.DMGLogLang, "RDMWaiting")) local syncEnt = Damagelog:GetSyncEnt() @@ -771,6 +771,9 @@ net.Receive("DL_GetForgive", function(_, ply) end end else + if tbl.status == RDM_MANAGER_WAITING then + tbl.status = RDM_MANAGER_READYFORSTAFF + end tbl.handedOffToAdminsAt = os.time() end @@ -869,4 +872,4 @@ net.Receive("DL_ForceRespond", function(_len, ply) net.Send(attacker) end end -end) \ No newline at end of file +end) From 311547b48f95251edc802c3976b364142e7de4cc Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 22:00:20 +1000 Subject: [PATCH 02/17] Update rdm_manager.lua --- lua/damagelogs/shared/rdm_manager.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/damagelogs/shared/rdm_manager.lua b/lua/damagelogs/shared/rdm_manager.lua index f1c8e406..6bb31037 100644 --- a/lua/damagelogs/shared/rdm_manager.lua +++ b/lua/damagelogs/shared/rdm_manager.lua @@ -1,7 +1,8 @@ RDM_MANAGER_WAITING = 1 RDM_MANAGER_PROGRESS = 2 RDM_MANAGER_FINISHED = 3 +RDM_MANAGER_READYFORSTAFF = 4 DAMAGELOG_REPORT_STANDARD = 1 DAMAGELOG_REPORT_ADMIN = 2 DAMAGELOG_REPORT_FORCE = 3 -DAMAGELOG_REPORT_CHAT = 4 \ No newline at end of file +DAMAGELOG_REPORT_CHAT = 4 From 1003334954f6fc2ad52a20c86d925b83e1a98266 Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 22:01:00 +1000 Subject: [PATCH 03/17] Update rdm_manager.lua --- lua/damagelogs/client/tabs/rdm_manager.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lua/damagelogs/client/tabs/rdm_manager.lua b/lua/damagelogs/client/tabs/rdm_manager.lua index faea20b1..fe321bf5 100644 --- a/lua/damagelogs/client/tabs/rdm_manager.lua +++ b/lua/damagelogs/client/tabs/rdm_manager.lua @@ -64,7 +64,8 @@ end) local status = { [RDM_MANAGER_WAITING] = TTTLogTranslate(GetDMGLogLang, "RDMWaiting"), [RDM_MANAGER_PROGRESS] = TTTLogTranslate(GetDMGLogLang, "RDMInProgress"), - [RDM_MANAGER_FINISHED] = TTTLogTranslate(GetDMGLogLang, "RDMFinished") + [RDM_MANAGER_FINISHED] = TTTLogTranslate(GetDMGLogLang, "RDMFinished"), + [RDM_MANAGER_READYFORSTAFF] = TTTLogTranslate(GetDMGLogLang, "RDMReadyforstaff"), } RDM_MANAGER_STATUS = status @@ -72,7 +73,8 @@ RDM_MANAGER_STATUS = status local icons = { [RDM_MANAGER_WAITING] = "icon16/clock.png", [RDM_MANAGER_PROGRESS] = "icon16/arrow_refresh.png", - [RDM_MANAGER_FINISHED] = "icon16/accept.png" + [RDM_MANAGER_FINISHED] = "icon16/accept.png", + [RDM_MANAGER_READYFORSTAFF] = "icon16/user_suit.png", } RDM_MANAGER_ICONS = icons @@ -80,7 +82,8 @@ RDM_MANAGER_ICONS = icons local colors = { [RDM_MANAGER_PROGRESS] = Color(0, 0, 190), [RDM_MANAGER_FINISHED] = Color(0, 190, 0), - [RDM_MANAGER_WAITING] = Color(100, 100, 100) + [RDM_MANAGER_WAITING] = Color(100, 100, 100), + [RDM_MANAGER_READYFORSTAFF] = Color(245, 0, 192), } local function TakeAction() @@ -425,6 +428,7 @@ function PANEL:UpdateReport(index) local cancelledIcon = report.status == RDM_MANAGER_WAITING and "icon16/exclamation.png" + or report.status == RDM_MANAGER_READYFORSTAFF and "icon16/user_suit.png" or (report.canceled and "icon16/tick.png" or "icon16/cross.png") if not self.Reports[index] then @@ -731,6 +735,7 @@ function Damagelog:DrawRDMManager(x, y) DrawStatusMenuOption(RDM_MANAGER_WAITING, menu) DrawStatusMenuOption(RDM_MANAGER_PROGRESS, menu) DrawStatusMenuOption(RDM_MANAGER_FINISHED, menu) + DrawStatusMenuOption(RDM_MANAGER_READYFORSTAFF, menu) menu:Open() end From d4b5c016e5cc0114d7208cee37d8f3a621121879 Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 22:02:15 +1000 Subject: [PATCH 04/17] Update english.lua --- lua/damagelogs/shared/lang/english.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/damagelogs/shared/lang/english.lua b/lua/damagelogs/shared/lang/english.lua index f8b2a4dd..f6cda13c 100644 --- a/lua/damagelogs/shared/lang/english.lua +++ b/lua/damagelogs/shared/lang/english.lua @@ -58,6 +58,7 @@ DamagelogLang.english = { RDMResponded = "Attacker responded", RDMInProgress = "In progress", RDMFinished = "Finished", + RDMReadyforstaff = "Waiting for staff", RDMCanceled = "Canceled by the victim", RDMNotFinished = "This report is not finished!", RDMSetConclusion = "Set conclusion", @@ -406,4 +407,4 @@ DamagelogLang.english = { webhook_header_report_forgiven = "Report Forgiven (ID %s)", webhook_header_report_kept = "Report Kept (ID %s)", webhook_header_report_finished = "Report Finished (ID %s)" -} \ No newline at end of file +} From 0df017f7572cc792e1d4f5e00b0632aa4871dc75 Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 22:11:04 +1000 Subject: [PATCH 05/17] Update rdm_manager.lua --- lua/damagelogs/client/tabs/rdm_manager.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/damagelogs/client/tabs/rdm_manager.lua b/lua/damagelogs/client/tabs/rdm_manager.lua index fe321bf5..51655864 100644 --- a/lua/damagelogs/client/tabs/rdm_manager.lua +++ b/lua/damagelogs/client/tabs/rdm_manager.lua @@ -733,9 +733,9 @@ function Damagelog:DrawRDMManager(x, y) local menu = DermaMenu() local attacker = player.GetBySteamID(Damagelog.SelectedReport.attacker) DrawStatusMenuOption(RDM_MANAGER_WAITING, menu) + DrawStatusMenuOption(RDM_MANAGER_READYFORSTAFF, menu) DrawStatusMenuOption(RDM_MANAGER_PROGRESS, menu) DrawStatusMenuOption(RDM_MANAGER_FINISHED, menu) - DrawStatusMenuOption(RDM_MANAGER_READYFORSTAFF, menu) menu:Open() end From f336846c7f791e29d20efa57154184106a93e6f0 Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 22:24:59 +1000 Subject: [PATCH 06/17] Update rdm_manager.lua Fixed remove slays command for sam --- lua/damagelogs/client/tabs/rdm_manager.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lua/damagelogs/client/tabs/rdm_manager.lua b/lua/damagelogs/client/tabs/rdm_manager.lua index 51655864..32f2869c 100644 --- a/lua/damagelogs/client/tabs/rdm_manager.lua +++ b/lua/damagelogs/client/tabs/rdm_manager.lua @@ -314,7 +314,7 @@ local function TakeAction() if ulx and mode == 2 then txt = TTTLogTranslate(GetDMGLogLang, "RemoveAutoJails") - elseif sam or serverguard then + elseif serverguard then txt = TTTLogTranslate(GetDMGLogLang, "RemoveOneAutoSlay") end @@ -327,7 +327,7 @@ local function TakeAction() if ulx then RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", report.attacker, "0") elseif sam then - RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.attacker, "0") + RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.attacker, "0", " ") elseif serverguard then serverguard.command.Run("raslay", false, attacker:Nick()) end @@ -335,7 +335,7 @@ local function TakeAction() if ulx then RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", report.attacker, "0") elseif sam then - RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.attacker, "0") + RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.attacker, "0", " ") else Damagelog:Notify(DAMAGELOG_NOTIFY_ALERT, TTTLogTranslate(GetDMGLogLang, "VictimReportedDisconnected"), 2, "buttons/weapon_cant_buy.wav") end @@ -347,7 +347,7 @@ local function TakeAction() if ulx then RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", report.victim, "0") elseif sam then - RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.victim, "0") + RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.victim, "0", " ") elseif serverguard then serverguard.command.Run("raslay", false, victim:Nick()) end @@ -355,7 +355,7 @@ local function TakeAction() if ulx then RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", report.victim, "0") elseif sam then - RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.victim, "0") + RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", report.victim, "0", " ") else Damagelog:Notify(DAMAGELOG_NOTIFY_ALERT, TTTLogTranslate(GetDMGLogLang, "VictimReportedDisconnected"), 2, "buttons/weapon_cant_buy.wav") end From 2cb179c63f53d131621f00f52492e0e55181f376 Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 22:30:11 +1000 Subject: [PATCH 07/17] Update english.lua --- lua/damagelogs/shared/lang/english.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/damagelogs/shared/lang/english.lua b/lua/damagelogs/shared/lang/english.lua index f6cda13c..0007d8e4 100644 --- a/lua/damagelogs/shared/lang/english.lua +++ b/lua/damagelogs/shared/lang/english.lua @@ -58,7 +58,7 @@ DamagelogLang.english = { RDMResponded = "Attacker responded", RDMInProgress = "In progress", RDMFinished = "Finished", - RDMReadyforstaff = "Waiting for staff", + RDMReadyForStaff = "Waiting for staff", RDMCanceled = "Canceled by the victim", RDMNotFinished = "This report is not finished!", RDMSetConclusion = "Set conclusion", From 78075b949d768ad653373409a58286d05aefc668 Mon Sep 17 00:00:00 2001 From: Minc3 <55525251+Minc3@users.noreply.github.com> Date: Tue, 10 May 2022 22:30:35 +1000 Subject: [PATCH 08/17] Update rdm_manager.lua --- lua/damagelogs/client/tabs/rdm_manager.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/damagelogs/client/tabs/rdm_manager.lua b/lua/damagelogs/client/tabs/rdm_manager.lua index 32f2869c..7739fac0 100644 --- a/lua/damagelogs/client/tabs/rdm_manager.lua +++ b/lua/damagelogs/client/tabs/rdm_manager.lua @@ -65,7 +65,7 @@ local status = { [RDM_MANAGER_WAITING] = TTTLogTranslate(GetDMGLogLang, "RDMWaiting"), [RDM_MANAGER_PROGRESS] = TTTLogTranslate(GetDMGLogLang, "RDMInProgress"), [RDM_MANAGER_FINISHED] = TTTLogTranslate(GetDMGLogLang, "RDMFinished"), - [RDM_MANAGER_READYFORSTAFF] = TTTLogTranslate(GetDMGLogLang, "RDMReadyforstaff"), + [RDM_MANAGER_READYFORSTAFF] = TTTLogTranslate(GetDMGLogLang, "RDMReadyForStaff"), } RDM_MANAGER_STATUS = status From 1a89cd621da053791544841de45da3b5584a6d8e Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Thu, 21 Jul 2022 16:45:11 +1000 Subject: [PATCH 09/17] Update rdm_manager.lua --- lua/damagelogs/server/rdm_manager.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lua/damagelogs/server/rdm_manager.lua b/lua/damagelogs/server/rdm_manager.lua index c9415131..5261cee8 100644 --- a/lua/damagelogs/server/rdm_manager.lua +++ b/lua/damagelogs/server/rdm_manager.lua @@ -535,15 +535,19 @@ net.Receive("DL_UpdateStatus", function(_len, ply) local syncEnt = Damagelog:GetSyncEnt() - if IsValid(syncEnt) and previousStatus == RDM_MANAGER_WAITING and not tbl.adminReport then - syncEnt:SetPendingReports(syncEnt:GetPendingReports() - 1) + if IsValid(syncEnt) and not tbl.adminReport then + if previousStatus == RDM_MANAGER_WAITING or previousStatus == RDM_MANAGER_READYFORSTAFF then + syncEnt:SetPendingReports(syncEnt:GetPendingReports() - 1) + end end elseif status == RDM_MANAGER_FINISHED then msg = string_format(TTTLogTranslate(ply.DMGLogLang, "HasSetReport"), ply:Nick(), index, TTTLogTranslate(ply.DMGLogLang, "Finished")) local syncEnt = Damagelog:GetSyncEnt() - if IsValid(syncEnt) and previousStatus == RDM_MANAGER_WAITING and not tbl.adminReport then - syncEnt:SetPendingReports(syncEnt:GetPendingReports() - 1) + if IsValid(syncEnt) and not tbl.adminReport then + if previousStatus == RDM_MANAGER_WAITING or previousStatus == RDM_MANAGER_READYFORSTAFF then + syncEnt:SetPendingReports(syncEnt:GetPendingReports() - 1) + end end end From 3bf0b38aa7ba7379644f14225c4a264e95748fa6 Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Fri, 19 Aug 2022 20:41:53 +1000 Subject: [PATCH 10/17] Update autoslay.lua --- lua/damagelogs/server/autoslay.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lua/damagelogs/server/autoslay.lua b/lua/damagelogs/server/autoslay.lua index 89f2527f..9bf27d62 100644 --- a/lua/damagelogs/server/autoslay.lua +++ b/lua/damagelogs/server/autoslay.lua @@ -271,13 +271,14 @@ function Damagelog:SetSlays(admin, steamid, slays, reason, target) ulx.fancyLogAdmin(admin, "#A " .. (difference > 0 and "added " or "removed ") .. math.abs(difference) .. msg .. old_slays .. " time(s) by #s.", target, reason, list) elseif sam then - sam.player.send_message(nil, "{A} {V_1} {V} {V_2} {T} for {R}. They were previously {V_3} {V_4} time(s) by {V_5}.", { + + sam.player.send_message(nil, "{A} {V_1} {V} {V_2} {T} for {A_2}. They were previously {V_3} {V_4} time(s) by {V_5}.", { A = admin_nick, V_1 = difference > 0 and "added " or "removed ", V = math.abs(difference), V_2 = aslay and " autoslays to " or " autojails to ", - T = target, - R = reason, + T = target:Nick(), + A_2 = reason, V_3 = aslay and " autoslain " or " autojailed ", V_4 = old_slays, V_5 = list @@ -293,13 +294,13 @@ function Damagelog:SetSlays(admin, steamid, slays, reason, target) ulx.fancyLogAdmin(admin, "#A " .. (difference > 0 and "added " or "removed ") .. math.abs(difference) .. msg .. old_slays .. " time(s) by #s.", steamid, reason, list) elseif sam then - sam.player.send_message(nil, "{A} {V_1} {V} {V_2} {T} for {R}. They were previously {V_3} {V_4} time(s) by {V_5}.", { + sam.player.send_message(nil, "{A} {V_1} {V} {V_2} {T} for {A_2}. They were previously {V_3} {V_4} time(s) by {V_5}.", { A = admin_nick, V_1 = difference > 0 and "added " or "removed ", V = math.abs(difference), V_2 = aslay and " autoslays to " or " autojails to ", T = steamid, - R = reason, + A_2 = reason, V_3 = aslay and " autoslain " or " autojailed ", V_4 = old_slays, V_5 = list @@ -635,4 +636,4 @@ if Damagelog.ULX_Autoslay_ForceRole then end end end) -end \ No newline at end of file +end From cec6cc5045dd4bea154c6904c688d09e3d40660a Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Fri, 19 Aug 2022 21:09:23 +1000 Subject: [PATCH 11/17] more sam fixes --- lua/damagelogs/client/tabs/rdm_manager.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lua/damagelogs/client/tabs/rdm_manager.lua b/lua/damagelogs/client/tabs/rdm_manager.lua index 7739fac0..dc5c8104 100644 --- a/lua/damagelogs/client/tabs/rdm_manager.lua +++ b/lua/damagelogs/client/tabs/rdm_manager.lua @@ -1071,7 +1071,8 @@ function PANEL:SetPlayer(reported, ply, steamid, report) if ulx then RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", ply:SteamID(), tostring(self.NumSlays), self.CurrentReason) elseif sam then - RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", ply:SteamID(), tostring(self.NumSlays), self.CurrentReason) + local reason = self.CurrentReason != "" and self.CurrentReason or " " + RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", ply:SteamID(), tostring(self.NumSlays), reason) elseif serverguard then serverguard.command.Run("aslay", false, ply:Nick(), self.NumSlays, self.CurrentReason) end @@ -1082,7 +1083,8 @@ function PANEL:SetPlayer(reported, ply, steamid, report) RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", (reported and report.attacker) or (not reported and report.victim), tostring(self.NumSlays), self.CurrentReason) self.SetConclusion((reported and report.attacker_nick) or (not reported and report.victim_nick), self.NumSlays, self.CurrentReason) elseif sam then - RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", (reported and report.attacker) or (not reported and report.victim), tostring(self.NumSlays), self.CurrentReason) + local reason = self.CurrentReason != "" and self.CurrentReason or " " + RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", (reported and report.attacker) or (not reported and report.victim), tostring(self.NumSlays), reason) self.SetConclusion((reported and report.attacker_nick) or (not reported and report.victim_nick), self.NumSlays, self.CurrentReason) else Damagelog:Notify(DAMAGELOG_NOTIFY_ALERT, TTTLogTranslate(GetDMGLogLang, "VictimReportedDisconnected"), 2, "buttons/weapon_cant_buy.wav") From 09517454dfd8e306e35ab66f13935212c5277ea0 Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Fri, 19 Aug 2022 22:27:18 +1000 Subject: [PATCH 12/17] Update autoslay.lua --- lua/damagelogs/server/autoslay.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/damagelogs/server/autoslay.lua b/lua/damagelogs/server/autoslay.lua index 9bf27d62..f744ea8e 100644 --- a/lua/damagelogs/server/autoslay.lua +++ b/lua/damagelogs/server/autoslay.lua @@ -160,7 +160,8 @@ function Damagelog:SetSlays(admin, steamid, slays, reason, target) end if slays == 0 then - Damagelog.SQLiteDatabase.Query("DELETE FROM damagelog_autoslay WHERE ply = '" .. (target and target:SteamID() or steamid) .. "';") + + Damagelog.SQLiteDatabase.Query("DELETE FROM damagelog_autoslay WHERE ply = '" .. (IsValid(target) and target:SteamID() or steamid) .. "';") if ulx then if target then From 38454246bdeda03496f259ab089d8eb1ebbb9af9 Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Fri, 19 Aug 2022 22:27:53 +1000 Subject: [PATCH 13/17] sam fixes 2 --- lua/damagelogs/shared/autoslay.lua | 338 ++++++++++++++++------------- 1 file changed, 184 insertions(+), 154 deletions(-) diff --git a/lua/damagelogs/shared/autoslay.lua b/lua/damagelogs/shared/autoslay.lua index 9cf6ea34..9762f15d 100644 --- a/lua/damagelogs/shared/autoslay.lua +++ b/lua/damagelogs/shared/autoslay.lua @@ -139,181 +139,211 @@ local function CreateCommand() return elseif sam then - function sam.autoslay(calling_ply, target, rounds, reason) - Damagelog:SetSlays(calling_ply, target:SteamID(), rounds, reason, target) - end + timer.Simple(1, function() + function sam.autoslay(calling_ply, target, rounds, reason) + Damagelog:SetSlays(calling_ply, target:SteamID(), rounds, reason, target) + end - function sam.autoslayid(calling_ply, target, rounds, reason) - if sam.is_steamid(target) then - for _, v in ipairs(player.GetHumans()) do - if v:SteamID() == target then - sam.autoslay(calling_ply, v, rounds, reason) + function sam.autoslayid(calling_ply, target, rounds, reason) + if sam.is_steamid(target) then + for _, v in ipairs(player.GetHumans()) do + if v:SteamID() == target then + sam.autoslay(calling_ply, v, rounds, reason) - return + return + end end + + Damagelog:SetSlays(calling_ply, target, rounds, reason, false) + else + sam.player.send_message(calling_ply, "{V_1} is an invalid steamid.", { + V_1 = target + }) end + end - Damagelog:SetSlays(calling_ply, target, rounds, reason, false) - else - sam.player.send_message(calling_ply, "{V_1} is an invalid steamid.", { - V_1 = target - }) + function sam.cslays(calling_ply, target) + + -- TODO: Support MySQL + local data = Damagelog.SQLiteDatabase.QuerySingle(string.format("SELECT * FROM damagelog_autoslay WHERE ply = %s", sql.SQLStr(target:SteamID()))) + local txt = "slays" + local p = "has" + local t = target:Name() + + if calling_ply == target then + p = "have" + t = "You" + end + + if data then + sam.player.send_message(calling_ply, "{T} {V_1} {V} {V_2} left with the reason : {V_3}", { + T = t, + V_1 = p, + V = data.slays, + V_2 = txt, + V_3 = data.reason + }) + else + sam.player.send_message(calling_ply, "{T} {V_1} no {V_2} left.", { + T = t, + V_1 = p, + V_2 = txt + }) + end end - end - function sam.cslays(calling_ply, target) - -- TODO: Support MySQL - local data = Damagelog.SQLiteDatabase.QuerySingle(string.format("SELECT * FROM damagelog_autoslay WHERE ply = %s", sql.SQLStr(target:SteamID()))) - local txt = aslay and "slays" or "jails" - local p = "has" - local t = target:Name() + function sam.cslaysid(calling_ply, steamid) + if not sam.is_steamid(steamid) then + sam.player.send_message(calling_ply, "{V_1} is an invalid steamid.", { + V_1 = steamid + }) - if calling_ply == target then - p = "have" - t = "You" + return + end + + -- TODO: Support MySQL + local data = Damagelog.SQLiteDatabase.QuerySingle(string.format("SELECT * FROM damagelog_autoslay WHERE ply = %s", sql.SQLStr(steamid))) + local txt = "slays" + + if data then + sam.player.send_message(calling_ply, "{T} has {V} {V_1} left with the reason : {V_2}", { + T = steamid, + V = data.slays, + V_1 = txt, + V_2 = data.reason + }) + else + sam.player.send_message(calling_ply, "{T} has no {V_1} left.", { + T = steamid, + V_1 = txt + }) + end end - if data then - sam.player.send_message(calling_ply, "{T} {V_1} {V} {V_2} left with the reason : {V_3}", { - T = t, - V_1 = p, - V = data.slays, - V_2 = txt, - V_3 = data.reason + local command = sam.command + command.set_category("TTT") + + command.new("setslays") + :SetPermission("setslays", "operator") + + :AddArg("player", { + single_target = true }) - else - sam.player.send_message(calling_ply, "{T} {V_1} no {V_2} left.", { - T = t, - V_1 = p, - V_2 = txt + + :AddArg("number", { + hint = "amount", + optional = true, + default = 1, + round = true }) - end - end - function sam.cslaysid(calling_ply, steamid) - if not sam.is_steamid(steamid) then - sam.player.send_message(calling_ply, "{V_1} is an invalid steamid.", { - V_1 = steamid + :AddArg("text", { + hint = "reason", + optional = true, + default = "Reason" }) - return - end + :Help("Set slays to a person") + :OnExecute(function(admin, targets, slays, reason) + local target = targets[1] + Damagelog:SetSlays(admin, target:SteamID(), slays, reason, target) + end) + :End() - -- TODO: Support MySQL - local data = Damagelog.SQLiteDatabase.QuerySingle(string.format("SELECT * FROM damagelog_autoslay WHERE ply = %s", sql.SQLStr(steamid))) - local txt = aslay and "slays" or "jails" + command.new("aslay") + :SetPermission("aslay", "operator") - if data then - sam.player.send_message(calling_ply, "{T} has {V} {V_1} left with the reason : {V_2}", { - T = steamid, - V = data.slays, - V_1 = txt, - V_2 = data.reason + :AddArg("player", { + single_target = true }) - else - sam.player.send_message(calling_ply, "{T} has no {V_1} left.", { - T = steamid, - V_1 = txt + + :AddArg("number", { + hint = "amount", + optional = true, + default = 1, + round = true }) - end - end - local command = sam.command - command.set_category("TTT") - - command.new("aslay") - :SetPermission("aslay", "operator") - - :AddArg("player", { - single_target = true - }) - - :AddArg("number", { - hint = "amount", - optional = true, - default = 1, - round = true - }) - - :AddArg("text", { - hint = "reason", - optional = true, - default = "Reason" - }) - - :Help("Add slays to a person") - :OnExecute(function(admin, targets, slays, reason) - local target = targets[1] - Damagelog:SetSlays(admin, target:SteamID(), slays, reason, target) - end) - :End() - - command.new("aslayid") - :SetPermission("aslayid", "operator") - :AddArg("steamid") - - :AddArg("number", { - hint = "amount", - default = 1, - round = true - }) - - :AddArg("text", { - hint = "reason", - default = "Reason" - }) - - :Help("Add slays to a steamid.") - - :GetRestArgs(true) - - :OnExecute(function(admin, promise, slays, reason) - promise:done(function(data) - local steamid, target = data[1], data[2] -- target will be "nil" if player is not online -- target will be "nil" if player is not online - Damagelog:SetSlays(admin, steamid, slays, reason, target) + :AddArg("text", { + hint = "reason", + optional = true, + default = "Reason" + }) + + :Help("Set slays to a person") + :OnExecute(function(admin, targets, slays, reason) + local target = targets[1] + Damagelog:SetSlays(admin, target:SteamID(), slays , reason, target) + end) + :End() + + command.new("aslayid") + :SetPermission("aslayid", "operator") + :AddArg("steamid") + + :AddArg("number", { + hint = "amount", + default = 1, + round = true + }) + + :AddArg("text", { + hint = "reason", + default = "Reason" + }) + + :Help("Sets slays to a steamid.") + + :GetRestArgs(true) + + :OnExecute(function(admin, promise, slays, reason) + promise:done(function(data) + local steamid, target = data[1], data[2] -- target will be "nil" if player is not online -- target will be "nil" if player is not online + Damagelog:SetSlays(admin, steamid, slays, reason, target) + end) + end) + :End() + + command.new("removeslays") + :SetPermission("removeslays", "operator") + + :AddArg("player", { + single_target = true + }) + + :Help("Remove slays from a person") + + :OnExecute(function(ply, targets) + local target = targets[1] + Damagelog:SetSlays(ply, target:SteamID(), 0, "Removed", target) + end) + :End() + + command.new("cslay") + :SetPermission("cslay", "operator") + :AddArg("player", { + single_target = true + }) + :Help("Get slays of a person.") + :OnExecute(function(admin, targets, amount, reason) + local target = targets[1] + sam.cslays(admin, target) + end) + :End() + + command.new("cslayid") + :SetPermission("cslayid", "operator") + + :AddArg("steamid") + + :Help("Get slays of a person.") + + :OnExecute(function(admin, targets, amount, reason) + local steamid = targets[1] + sam.cslaysid(admin, steamid) end) - end) - :End() - - command.new("removeslays") - :SetPermission("removeslays", "operator") - - :AddArg("player", { - single_target = true - }) - - :Help("Remove slays from a person") - - :OnExecute(function(ply, targets) - local target = targets[1] - Damagelog:SetSlays(ply, target:SteamID(), 0, "Removed", target) - end) - :End() - - command.new("cslay") - :SetPermission("cslay", "operator") - :AddArg("player", { - single_target = true - }) - :Help("Get slays of a person.") - :OnExecute(function(admin, targets, amount, reason) - local target = targets[1] - sam.cslays(admin, target) - end) - :End() - - command.new("cslayid") - :SetPermission("cslayid", "operator") - - :AddArg("steamid") - - :Help("Get slays of a person.") - - :OnExecute(function(admin, targets, amount, reason) - local steamid = targets[1] - sam.cslaysid(admin, steamid) - end) - :End() + :End() + end) end end From a1afd9afd6c9108d08d687f005402d93c35231fa Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Fri, 19 Aug 2022 22:37:42 +1000 Subject: [PATCH 14/17] Update rdm_manager.lua --- lua/damagelogs/client/tabs/rdm_manager.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/damagelogs/client/tabs/rdm_manager.lua b/lua/damagelogs/client/tabs/rdm_manager.lua index dc5c8104..bb98a1d5 100644 --- a/lua/damagelogs/client/tabs/rdm_manager.lua +++ b/lua/damagelogs/client/tabs/rdm_manager.lua @@ -1071,7 +1071,7 @@ function PANEL:SetPlayer(reported, ply, steamid, report) if ulx then RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", ply:SteamID(), tostring(self.NumSlays), self.CurrentReason) elseif sam then - local reason = self.CurrentReason != "" and self.CurrentReason or " " + local reason = self.CurrentReason ~= "" and self.CurrentReason or " " RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", ply:SteamID(), tostring(self.NumSlays), reason) elseif serverguard then serverguard.command.Run("aslay", false, ply:Nick(), self.NumSlays, self.CurrentReason) @@ -1083,7 +1083,7 @@ function PANEL:SetPlayer(reported, ply, steamid, report) RunConsoleCommand("ulx", mode == 1 and "aslayid" or "ajailid", (reported and report.attacker) or (not reported and report.victim), tostring(self.NumSlays), self.CurrentReason) self.SetConclusion((reported and report.attacker_nick) or (not reported and report.victim_nick), self.NumSlays, self.CurrentReason) elseif sam then - local reason = self.CurrentReason != "" and self.CurrentReason or " " + local reason = self.CurrentReason ~= "" and self.CurrentReason or " " RunConsoleCommand("sam", mode == 1 and "aslayid" or "ajailid", (reported and report.attacker) or (not reported and report.victim), tostring(self.NumSlays), reason) self.SetConclusion((reported and report.attacker_nick) or (not reported and report.victim_nick), self.NumSlays, self.CurrentReason) else From 2dce5d29b63068bbcb36494f2a246edc9fdb6207 Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Fri, 19 Aug 2022 23:01:30 +1000 Subject: [PATCH 15/17] Fixed sam commands in menu --- lua/damagelogs/shared/autoslay.lua | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/lua/damagelogs/shared/autoslay.lua b/lua/damagelogs/shared/autoslay.lua index 9762f15d..07369093 100644 --- a/lua/damagelogs/shared/autoslay.lua +++ b/lua/damagelogs/shared/autoslay.lua @@ -319,6 +319,24 @@ local function CreateCommand() end) :End() + command.new("removeslaysid") + :SetPermission("removeslaysid", "operator") + + :AddArg("text", { + hint = "steamid/steamid64", + }) + + :Help("remove slays from a person.") + + :OnExecute(function(admin, steamid) + + local steamid64 = util.SteamIDFrom64( steamid ) + local steamid = steamid64 ~= "STEAM_0:0:0" and steamid64 or steamid + + Damagelog:SetSlays(admin, steamid, 0, "Removed") + end) + :End() + command.new("cslay") :SetPermission("cslay", "operator") :AddArg("player", { @@ -334,12 +352,17 @@ local function CreateCommand() command.new("cslayid") :SetPermission("cslayid", "operator") - :AddArg("steamid") + :AddArg("text", { + hint = "steamid/steamid64", + }) :Help("Get slays of a person.") - :OnExecute(function(admin, targets, amount, reason) - local steamid = targets[1] + :OnExecute(function(admin, steamid) + + local steamid64 = util.SteamIDFrom64( steamid ) + local steamid = steamid64 ~= "STEAM_0:0:0" and steamid64 or steamid + sam.cslaysid(admin, steamid) end) :End() From f93dc2862a9b9a1577fe37476e53db27c1844ceb Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Fri, 19 Aug 2022 23:03:55 +1000 Subject: [PATCH 16/17] Update autoslay.lua --- lua/damagelogs/shared/autoslay.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/damagelogs/shared/autoslay.lua b/lua/damagelogs/shared/autoslay.lua index 07369093..ba43ac9b 100644 --- a/lua/damagelogs/shared/autoslay.lua +++ b/lua/damagelogs/shared/autoslay.lua @@ -326,7 +326,7 @@ local function CreateCommand() hint = "steamid/steamid64", }) - :Help("remove slays from a person.") + :Help("remove slays from a steamid.") :OnExecute(function(admin, steamid) From fc3b4b1d1cb79f6ba129b113336ae17501716dbb Mon Sep 17 00:00:00 2001 From: Menace <55525251+Minc3@users.noreply.github.com> Date: Wed, 1 Feb 2023 13:13:33 +1100 Subject: [PATCH 17/17] Update autoslay.lua Added comment for timer --- lua/damagelogs/shared/autoslay.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lua/damagelogs/shared/autoslay.lua b/lua/damagelogs/shared/autoslay.lua index ba43ac9b..d663ee19 100644 --- a/lua/damagelogs/shared/autoslay.lua +++ b/lua/damagelogs/shared/autoslay.lua @@ -139,7 +139,10 @@ local function CreateCommand() return elseif sam then + + -- SAM may run the below functions within a zero timer, to ensure they are overridden, we need a delay for reliability. timer.Simple(1, function() + function sam.autoslay(calling_ply, target, rounds, reason) Damagelog:SetSlays(calling_ply, target:SteamID(), rounds, reason, target) end