From be51ec1b854b47f81c1cbc65ed9d28f2861f95f8 Mon Sep 17 00:00:00 2001 From: Cadyn Date: Wed, 27 Jan 2021 16:59:27 -0800 Subject: [PATCH] Porting attack logs to use SQL --- code/_helpers/mobs.dm | 12 +++++++++--- code/game/world.dm | 8 ++++++++ code/modules/admin/admin_tools.dm | 28 ++++++++++++++++++---------- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/code/_helpers/mobs.dm b/code/_helpers/mobs.dm index d4400da8df..79476fa89a 100644 --- a/code/_helpers/mobs.dm +++ b/code/_helpers/mobs.dm @@ -120,10 +120,16 @@ Proc for attack log creation, because really why not var/user_str = key_name(user) var/target_str = key_name(target) - if(ismob(user)) - user.attack_log += text("\[[time_stamp()]\] Attacked [target_str]: [what_done]") + if(ismob(user)) //CHOMPEdit Begin + //user.attack_log += text("\[[time_stamp()]\] Attacked [target_str]: [what_done]") + var/DBQuery/query_insert = SSdbcore.NewQuery("INSERT INTO erro_attacklog (id, time, ckey, mob, message) VALUES (null, NOW(), :t_ckey, :t_mob, :t_content)", list("t_ckey" = user.ckey, "t_mob" = user.real_name, "t_content" = "Attacked [target_str]: [what_done]")) + query_insert.Execute() + qdel(query_insert) if(ismob(target)) - target.attack_log += text("\[[time_stamp()]\] Attacked by [user_str]: [what_done]") + //target.attack_log += text("\[[time_stamp()]\] Attacked by [user_str]: [what_done]") + var/DBQuery/query_insert = SSdbcore.NewQuery("INSERT INTO erro_attacklog (id, time, ckey, mob, message) VALUES (null, NOW(), :t_ckey, :t_mob, :t_content)", list("t_ckey" = target.ckey, "t_mob" = target.real_name, "t_content" = "Attacked by [user_str]: [what_done]")) + query_insert.Execute() + qdel(query_insert) log_attack(user_str,target_str,what_done) if(admin_notify) msg_admin_attack("[key_name_admin(user)] vs [target_str]: [what_done]") diff --git a/code/game/world.dm b/code/game/world.dm index 0c1828e7fc..8142aa3357 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -574,6 +574,14 @@ var/failed_old_db_connections = 0 if(num_tries==5) log_admin("ERROR TRYING TO CLEAR erro_dialog") qdel(query_truncate) + var/DBQuery/query_truncate2 = SSdbcore.NewQuery("TRUNCATE erro_attacklog") + num_tries = 0 + while(!query_truncate2.Execute() && num_tries<5) + num_tries++ + + if(num_tries==5) + log_admin("ERROR TRYING TO CLEAR erro_attacklog") + qdel(query_truncate) else to_world_log("Feedback database connection failed.") //CHOMPEdit End diff --git a/code/modules/admin/admin_tools.dm b/code/modules/admin/admin_tools.dm index 6f9e964163..42ab6aae9a 100644 --- a/code/modules/admin/admin_tools.dm +++ b/code/modules/admin/admin_tools.dm @@ -9,17 +9,25 @@ if(M.mind) dat += "Current Antag?: [(M.mind.special_role)?"Yes":"No"]
" dat += "
Note: This is arranged from earliest to latest.

" - - - if(!isemptylist(M.attack_log)) - dat += "
" - for(var/l in M.attack_log) - dat += "[l]
" - - dat += "
" - + //CHOMPEdit Begin + /*for(var/d in M.dialogue_log) + dat += "[d]
"*/ + var/DBQuery/query = SSdbcore.NewQuery("SELECT id,time,ckey,mob,message from erro_attacklog WHERE ckey = :t_ckey", list("t_ckey" = M.ckey)) + if(!query.Execute()) + dat += "Database query error" else - dat += "No attack logs found for [M]." + var/messages = "" + while(query.NextRow()) + messages += "([query.item[2]]) (ckey:[query.item[3]] real_name:[query.item[4]]) [query.item[5]]
" + + if(messages=="") + dat+="Query returned nothing." + else + dat += "
" + dat += messages + dat += "
" + qdel(query) + //CHOMPEdit End var/datum/browser/popup = new(usr, "admin_attack_log", "[src]", 650, 650, src) popup.set_content(jointext(dat,null))