mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Ports World Server Dialogue/Attack Log Viewer
This commit is contained in:
committed by
VirgoBot
parent
c102f73df6
commit
3622a2fd2a
@@ -5,3 +5,4 @@ GLOBAL_LIST_EMPTY(stealthminID)
|
||||
GLOBAL_LIST_EMPTY(directory) //all ckeys with associated client
|
||||
GLOBAL_LIST_EMPTY(clients)
|
||||
GLOBAL_LIST_EMPTY(players_by_zlevel)
|
||||
GLOBAL_LIST_EMPTY(round_text_log)
|
||||
|
||||
@@ -61,8 +61,13 @@
|
||||
|
||||
/proc/log_access_in(client/new_client)
|
||||
if (config.log_access)
|
||||
<<<<<<< HEAD
|
||||
var/message = "[key_name(new_client)] - IP:[new_client.address] - CID:[new_client.computer_id] - BYOND v[new_client.byond_version]"
|
||||
WRITE_LOG(diary, "ACCESS IN: [message]")
|
||||
=======
|
||||
var/message = "[key_name(new_client)] - IP:[new_client.address] - CID:[new_client.computer_id] - BYOND v[new_client.byond_version]"
|
||||
diary << "\[[time_stamp()]]ACCESS IN: [message][log_end]"
|
||||
>>>>>>> e7ea3a2... Ports World Server Dialogue/Attack Log Viewer (#6460)
|
||||
|
||||
/proc/log_access_out(mob/last_mob)
|
||||
if (config.log_access)
|
||||
@@ -73,26 +78,46 @@
|
||||
if (config.log_say)
|
||||
WRITE_LOG(diary, "SAY: [speaker.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
//Log the message to in-game dialogue logs, as well.
|
||||
if(speaker.client)
|
||||
speaker.dialogue_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>SAY:</u> - <span style=\"color:#32cd32\">[text]</span>"
|
||||
GLOB.round_text_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>SAY:</u> - <span style=\"color:#32cd32\">[text]</span>"
|
||||
|
||||
/proc/log_ooc(text, client/user)
|
||||
if (config.log_ooc)
|
||||
WRITE_LOG(diary, "OOC: [user.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
GLOB.round_text_log += "<b>([time_stamp()])</b> (<b>[user]</b>) <u>OOC:</u> - <span style=\"color:blue\"><b>[text]</b></span>"
|
||||
|
||||
/proc/log_aooc(text, client/user)
|
||||
if (config.log_ooc)
|
||||
WRITE_LOG(diary, "AOOC: [user.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
GLOB.round_text_log += "<b>([time_stamp()])</b> (<b>[user]</b>) <u>AOOC:</u> - <span style=\"color:red\"><b>[text]</b></span>"
|
||||
|
||||
/proc/log_looc(text, client/user)
|
||||
if (config.log_ooc)
|
||||
WRITE_LOG(diary, "LOOC: [user.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
GLOB.round_text_log += "<b>([time_stamp()])</b> (<b>[user]</b>) <u>LOOC:</u> - <span style=\"color:orange\"><b>[text]</b></span>"
|
||||
|
||||
/proc/log_whisper(text, mob/speaker)
|
||||
if (config.log_whisper)
|
||||
WRITE_LOG(diary, "WHISPER: [speaker.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
if(speaker.client)
|
||||
speaker.dialogue_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>SAY:</u> - <span style=\"color:gray\"><i>[text]</i></span>"
|
||||
GLOB.round_text_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>SAY:</u> - <span style=\"color:gray\"><i>[text]</i></span>"
|
||||
|
||||
|
||||
/proc/log_emote(text, mob/speaker)
|
||||
if (config.log_emote)
|
||||
WRITE_LOG(diary, "EMOTE: [speaker.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
if(speaker.client)
|
||||
speaker.dialogue_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>EMOTE:</u> - <span style=\"color:#CCBADC\">[text]</span>"
|
||||
GLOB.round_text_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>EMOTE:</u> - <span style=\"color:#CCBADC\">[text]</span>"
|
||||
|
||||
/proc/log_attack(attacker, defender, message)
|
||||
if (config.log_attack)
|
||||
WRITE_LOG(diary, "ATTACK: [attacker] against [defender]: [message]")
|
||||
@@ -113,6 +138,10 @@
|
||||
if (config.log_say)
|
||||
WRITE_LOG(diary, "DEADCHAT: [speaker.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
speaker.dialogue_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>DEADSAY:</u> - <span style=\"color:green\">[text]</span>"
|
||||
GLOB.round_text_log += "<font size=1><span style=\"color:#7e668c\"><b>([time_stamp()])</b> (<b>[src]/[speaker.client]</b>) <u>DEADSAY:</u> - [text]</span></font>"
|
||||
|
||||
|
||||
/proc/log_ghostemote(text, mob/speaker)
|
||||
if (config.log_emote)
|
||||
WRITE_LOG(diary, "DEADEMOTE: [speaker.simple_info_line()]: [html_decode(text)]")
|
||||
@@ -125,6 +154,10 @@
|
||||
if (config.log_pda)
|
||||
WRITE_LOG(diary, "PDA: [speaker.simple_info_line()]: [html_decode(text)]")
|
||||
|
||||
speaker.dialogue_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>MSG:</u> - <span style=\"color:[COLOR_GREEN]\">[text]</span>"
|
||||
GLOB.round_text_log += "<b>([time_stamp()])</b> (<b>[speaker]/[speaker.client]</b>) <u>MSG:</u> - <span style=\"color:[COLOR_GREEN]\">[text]</span>"
|
||||
|
||||
|
||||
/proc/log_to_dd(text)
|
||||
world.log << text //this comes before the config check because it can't possibly runtime
|
||||
if(config.log_world_output)
|
||||
@@ -222,7 +255,7 @@
|
||||
|
||||
if(include_link && is_special_character(M) && highlight_special_characters)
|
||||
name = "<font color='#FFA500'>[name]</font>" //Orange
|
||||
|
||||
|
||||
. += "/([name])"
|
||||
|
||||
return .
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/mob/var/lastattacker = null
|
||||
/mob/var/lastattacked = null
|
||||
/mob/var/attack_log = list( )
|
||||
/mob/var/dialogue_log = list( )
|
||||
|
||||
proc/log_and_message_admins(var/message as text, var/mob/user = usr)
|
||||
log_admin(user ? "[key_name(user)] [message]" : "EVENT [message]")
|
||||
|
||||
62
code/modules/admin/admin_tools.dm
Normal file
62
code/modules/admin/admin_tools.dm
Normal file
@@ -0,0 +1,62 @@
|
||||
/client/proc/cmd_admin_check_player_logs(mob/living/M as mob in mob_list)
|
||||
set category = "Admin"
|
||||
set name = "Check Player Attack Logs"
|
||||
set desc = "Check a player's attack logs."
|
||||
|
||||
//Views specific attack logs belonging to one player.
|
||||
var/dat = "<B>[M]'s Attack Log:<HR></B>"
|
||||
dat += "<b>Viewing attack logs of [M]</b> - (Played by ([key_name(M)]).<br>"
|
||||
if(M.mind)
|
||||
dat += "<b>Current Antag?:</b> [(M.mind.special_role)?"Yes":"No"]<br>"
|
||||
dat += "<br><b>Note:</b> This is arranged from earliest to latest. <br><br>"
|
||||
|
||||
|
||||
if(!isemptylist(M.attack_log))
|
||||
dat += "<fieldset style='border: 2px solid white; display: inline'>"
|
||||
for(var/l in M.attack_log)
|
||||
dat += "[l]<br>"
|
||||
|
||||
dat += "</fieldset>"
|
||||
|
||||
else
|
||||
dat += "<i>No attack logs found for [M].</i>"
|
||||
|
||||
var/datum/browser/popup = new(usr, "admin_attack_log", "[src]", 650, 650, src)
|
||||
popup.set_content(jointext(dat,null))
|
||||
popup.open()
|
||||
|
||||
onclose(usr, "admin_attack_log")
|
||||
|
||||
feedback_add_details("admin_verb","PL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_admin_check_dialogue_logs(mob/living/M as mob in mob_list)
|
||||
set category = "Admin"
|
||||
set name = "Check Player Dialogue Logs"
|
||||
set desc = "Check a player's dialogue logs."
|
||||
|
||||
//Views specific dialogue logs belonging to one player.
|
||||
var/dat = "<B>[M]'s Dialogue Log:<HR></B>"
|
||||
dat += "<b>Viewing say and emote logs of [M]</b> - (Played by ([key_name(M)]).<br>"
|
||||
if(M.mind)
|
||||
dat += "<b>Current Antag?:</b> [(M.mind.special_role)?"Yes":"No"]<br>"
|
||||
dat += "<br><b>Note:</b> This is arranged from earliest to latest. <br><br>"
|
||||
|
||||
if(!isemptylist(M.dialogue_log))
|
||||
dat += "<fieldset style='border: 2px solid white; display: inline'>"
|
||||
|
||||
for(var/d in M.dialogue_log)
|
||||
dat += "[d]<br>"
|
||||
|
||||
dat += "</fieldset>"
|
||||
else
|
||||
dat += "<i>No dialogue logs found for [M].</i>"
|
||||
var/datum/browser/popup = new(usr, "admin_dialogue_log", "[src]", 650, 650, src)
|
||||
popup.set_content(jointext(dat,null))
|
||||
popup.open()
|
||||
|
||||
onclose(usr, "admin_dialogue_log")
|
||||
|
||||
|
||||
feedback_add_details("admin_verb","PDL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ var/list/admin_verbs_admin = list(
|
||||
/client/proc/cmd_admin_subtle_message, //send an message to somebody as a 'voice in their head',
|
||||
/client/proc/cmd_admin_delete, //delete an instance/object/mob/etc,
|
||||
/client/proc/cmd_admin_check_contents, //displays the contents of an instance,
|
||||
/client/proc/cmd_admin_check_player_logs, //checks a player's attack logs,
|
||||
/client/proc/cmd_admin_check_dialogue_logs, //checks a player's dialogue logs,
|
||||
/datum/admins/proc/access_news_network, //allows access of newscasters,
|
||||
/client/proc/giveruntimelog, //allows us to give access to runtime logs to somebody,
|
||||
/client/proc/getserverlog, //allows us to fetch server logs (diary) for other days,
|
||||
@@ -267,6 +269,8 @@ var/list/admin_verbs_hideable = list(
|
||||
/datum/admins/proc/view_atk_log,
|
||||
/client/proc/cmd_admin_subtle_message,
|
||||
/client/proc/cmd_admin_check_contents,
|
||||
/client/proc/cmd_admin_check_player_logs,
|
||||
/client/proc/cmd_admin_check_dialogue_logs,
|
||||
/datum/admins/proc/access_news_network,
|
||||
/client/proc/admin_call_shuttle,
|
||||
/client/proc/admin_cancel_shuttle,
|
||||
|
||||
@@ -10,4 +10,35 @@
|
||||
dat += "<li>[l]</li>"
|
||||
if(!admin_log.len)
|
||||
dat += "No-one has done anything this round!"
|
||||
user << browse(dat, "window=admin_log")
|
||||
|
||||
var/datum/browser/popup = new(user, "adminlogs", "[src]", 550, 650, src)
|
||||
popup.set_content(jointext(dat,null))
|
||||
popup.open()
|
||||
|
||||
onclose(user, "adminlogs")
|
||||
|
||||
|
||||
/datum/admin_secret_item/admin_secret/round_logs
|
||||
name = "Round Dialogue Logs"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/round_logs/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/dat = "<B>Dialogue Log<HR></B>"
|
||||
|
||||
dat += "<fieldset style='border: 2px solid white; display: inline'>"
|
||||
|
||||
for(var/l in GLOB.round_text_log)
|
||||
dat += "<li>[l]</li>"
|
||||
|
||||
dat += "</fieldset>"
|
||||
|
||||
if(!GLOB.round_text_log)
|
||||
dat += "No-one has said anything this round! (How odd?)"
|
||||
|
||||
var/datum/browser/popup = new(user, "dialoguelogs", "[src]", 550, 650, src)
|
||||
popup.set_content(jointext(dat,null))
|
||||
popup.open()
|
||||
|
||||
onclose(user, "dialoguelogs")
|
||||
|
||||
@@ -1382,6 +1382,7 @@
|
||||
#include "code\modules\admin\admin_memo.dm"
|
||||
#include "code\modules\admin\admin_ranks.dm"
|
||||
#include "code\modules\admin\admin_secrets.dm"
|
||||
#include "code\modules\admin\admin_tools.dm"
|
||||
#include "code\modules\admin\admin_verbs.dm"
|
||||
#include "code\modules\admin\banjob.dm"
|
||||
#include "code\modules\admin\ckey_vr.dm"
|
||||
|
||||
Reference in New Issue
Block a user