Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds cfg option to let players see their own notes #6490

Merged
merged 1 commit into from
Dec 28, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions code/controllers/configuration.dm
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt
var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt
var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database
var/see_own_notes = 0 //Can players see their own admin notes (read-only)? Config option in config.txt

//game_options.txt configs
var/force_random_names = 0
Expand Down Expand Up @@ -281,6 +282,8 @@
global.comms_key = value
if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins
global.comms_allowed = 1
if("see_own_notes")
config.see_own_notes = 1
else
diary << "Unknown setting in configuration: '[name]'"

Expand Down
11 changes: 11 additions & 0 deletions code/game/verbs/ooc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,14 @@ var/global/normal_ooc_colour = "#002eb8"
src << "<div class=\"motd\">[join_motd]</div>"
else
src << "<span class='notice'>The Message of the Day has not been set.</span>"

/client/proc/self_notes()
set name = "View Admin Notes"
set category = "OOC"
set desc = "View the notes that admins have written about you"

if(!config.see_own_notes)
usr << "<span class='notice'>Sorry, that function is not enabled on this server.</span>"
return

see_own_notes()
24 changes: 23 additions & 1 deletion code/modules/admin/player_notes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,35 @@

#define NOTESFILE "data/player_notes.sav" //where the player notes are saved

/proc/see_own_notes()
if(!config.see_own_notes)
return
var/ckey = usr.client.ckey
if(!ckey)
usr << "<span class='warning'>Error: No ckey found.</span>"
return
var/savefile/notesfile = new(NOTESFILE)
if(!notesfile)
usr << "<span class='warning'>Error: Cannot access [NOTESFILE]</span>"
return
notesfile.cd = "/[ckey]"
var/dat = "<b>Notes for [ckey]:</b><br>"
while(!notesfile.eof)
var/note
notesfile >> note
dat += note
var/datum/browser/popup = new(usr, "player_notes", "Player Notes", 700, 400)
popup.set_content(dat)
popup.open()


datum/admins/proc/notes_show(var/ckey)
usr << browse("<head><title>Player Notes</title></head><body>[notes_gethtml(ckey)]</body>","window=player_notes;size=700x400")


datum/admins/proc/notes_gethtml(var/ckey)
var/savefile/notesfile = new(NOTESFILE)
if(!notesfile) return "<font color='red'>Error: Cannot access [NOTESFILE]</font>"
if(!notesfile) return "<span class='warning'>Error: Cannot access [NOTESFILE]</span>"
if(ckey)
. = "<b>Notes for <a href='?_src_=holder;notes=show'>[ckey]</a>:</b> <a href='?_src_=holder;notes=add;ckey=[ckey]'>\[+\]</a><br>"
notesfile.cd = "/[ckey]"
Expand Down
7 changes: 6 additions & 1 deletion code/modules/client/client procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ var/next_external_rsc = 0
if((global.comms_key == "default_pwd" || length(global.comms_key) <= 6) && global.comms_allowed) //It's the default value or less than 6 characters long, but it somehow didn't disable comms.
src << "<span class='danger'>The server's API key is either too short or is the default value! Consider changing it immediately!</span>"

add_verbs_from_config()
set_client_age_from_db()

if (!ticker || ticker.current_state == GAME_STATE_PREGAME)
Expand Down Expand Up @@ -218,6 +219,10 @@ var/next_external_rsc = 0
var/DBQuery/query_accesslog = dbcon.NewQuery("INSERT INTO `[format_table_name("connection_log")]` (`id`,`datetime`,`serverip`,`ckey`,`ip`,`computerid`) VALUES(null,Now(),'[serverip]','[sql_ckey]','[sql_ip]','[sql_computerid]');")
query_accesslog.Execute()

/client/proc/add_verbs_from_config()
if(config.see_own_notes)
verbs += /client/proc/self_notes


#undef TOPIC_SPAM_DELAY
#undef UPLOAD_LIMIT
Expand Down Expand Up @@ -306,4 +311,4 @@ var/next_external_rsc = 0
'icons/stamp_icons/large_stamp-cap.png',
'icons/stamp_icons/large_stamp-qm.png',
'icons/stamp_icons/large_stamp-law.png'
)
)
5 changes: 4 additions & 1 deletion config/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -152,4 +152,7 @@ TICKCOMP 0
#AUTOMUTE_ON

## Communication key for receiving data through world/Topic(), you don't want to give this out
#COMMS_KEY default_pwd
#COMMS_KEY default_pwd

## Uncomment this to let players see their own notes (they can still be set by admins only)
#SEE_OWN_NOTES