From 86149b1c0bb765e286d3c7364405a944ecce5030 Mon Sep 17 00:00:00 2001 From: "elly1989@rocketmail.com" Date: Thu, 24 May 2012 17:53:38 +0000 Subject: [PATCH] Adds admin memos. It allows admins to leave all the other admins little messages which they can see when they log in. It is available to Game Admin rank and upwards. type "memo" to access the memo features: >write: write a memo >show: shows memos from all admins >delete: delete your own. (Game Masters may delete other admins' memos) Typing "memo write" etc works too. Feature can be disabled by defining ENABLE_MEMOS as 0 MOTD moved to new_player/Login so peole don't see that big motd everytime they DC git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3650 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/admin/admin_memo.dm | 54 +++++++++++++++++++++++ code/modules/admin/admin_verbs.dm | 2 + code/modules/mob/mob.dm | 14 +++--- code/modules/mob/new_player/new_player.dm | 3 ++ tgstation.dme | 3 +- 5 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 code/modules/admin/admin_memo.dm diff --git a/code/modules/admin/admin_memo.dm b/code/modules/admin/admin_memo.dm new file mode 100644 index 00000000000..c67cdab1e3c --- /dev/null +++ b/code/modules/admin/admin_memo.dm @@ -0,0 +1,54 @@ +#define MEMOFILE "data/memo.sav" //where the memos are saved +#define ENABLE_MEMOS 1 //using a define because screw making a config variable for it. This is more efficient and purty. + +//switch verb so we don't spam up the verb lists with like, 3 verbs for this feature. +/client/proc/admin_memo(task in list("write","show","delete")) + set name = "Memo" + set category = "Server" + if(!holder) return + switch(task) + if("write") + admin_memo_write() + if("show") + admin_memo_show() + if("delete") + admin_memo_delete() + + +//write a message +/client/proc/admin_memo_write() + var/savefile/F = new(MEMOFILE) + if(F) + var/memo = input(src,"Type your memo\n(Leaving it blank will delete your current memo):","Write Memo",null) as null|message + switch(memo) + if(null) + return + if("") + F.dir.Remove(ckey) + src << "Memo removed" + return + if( findtext(memo,"[memo]" + message_admins("[key] set an admin memo:
[memo]") + +//show all memos +/client/proc/admin_memo_show() + if(ENABLE_MEMOS) + var/savefile/F = new(MEMOFILE) + if(F) + for(var/ckey in F.dir) + src << "
Admin Memo by [F[ckey]]
" + +//delete your own or somebody else's memo +/client/proc/admin_memo_delete() + var/savefile/F = new(MEMOFILE) + if(F) + var/ckey + if( holder.rank == "Game Master" ) + ckey = input(src,"Whose memo shall we remove?","Remove Memo",null) as null|anything in F.dir + else + ckey = src.ckey + if(ckey) + F.dir.Remove(ckey) + src << "Removed Memo created by [ckey]." diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 358c30ef267..5da52a016f4 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -249,6 +249,7 @@ verbs += /client/proc/toggle_random_events verbs += /client/proc/deadmin_self verbs += /client/proc/Set_Holiday //Force-set a Holiday + if(ENABLE_MEMOS) verbs += /client/proc/admin_memo //verbs += /client/proc/cmd_mass_modify_object_variables --Merged with view variables //verbs += /client/proc/cmd_admin_explosion --Merged with view variables //verbs += /client/proc/cmd_admin_emp --Merged with view variables @@ -402,6 +403,7 @@ verbs -= /client/proc/giveruntimelog //used by coders to retrieve runtime logs verbs -= /client/proc/getserverlog verbs -= /client/proc/cinematic //show a cinematic sequence + verbs -= /client/proc/admin_memo verbs -= /proc/possess verbs -= /proc/release //verbs -= /client/proc/give_spell --Merged with view variables diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 5702791ded8..b21a9cc7ca6 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -651,20 +651,20 @@ return /client/New() - if(findtextEx(key, "Telnet @")) - src << "Sorry, this game does not support Telnet." + if( connection != "seeker" ) + src << "Sorry, this game does not support [connection] connections." //doesn't work del(src) var/isbanned = CheckBan(src) if (isbanned) log_access("Failed Login: [src] - Banned") message_admins("\blue Failed Login: [src] - Banned") - alert(src,"You have been banned.\nReason : [isbanned]","Ban","Ok") + alert(src,"You have been banned.\nReason : [isbanned]","Ban","Ok") //doesn't work del(src) if (!guests_allowed && IsGuestKey(key)) log_access("Failed Login: [src] - Guests not allowed") message_admins("\blue Failed Login: [src] - Guests not allowed") - alert(src,"You cannot play here.\nReason : Guests not allowed","Guests not allowed","Ok") + alert(src,"You cannot play here.\nReason : Guests not allowed","Guests not allowed","Ok") //doesn't work del(src) if (((world.address == address || !(address)) && !(host))) @@ -673,15 +673,13 @@ ..() - if (join_motd) - src << "
[join_motd]
" - // authorize() //old gooncode - if(admins.Find(ckey)) + if( ckey in admins ) holder = new /obj/admins(src) holder.rank = admins[ckey] update_admins(admins[ckey]) + admin_memo_show() if(ticker && ticker.mode && ticker.mode.name =="sandbox") mob.CanBuild() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 4913040fb72..d1d9c64e2da 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -15,6 +15,9 @@ anchored = 1 // don't get pushed around Login() + if (join_motd) + src << "
[join_motd]
" + if(!preferences) preferences = new diff --git a/tgstation.dme b/tgstation.dme index b5fc5c8c8bd..c241eb01888 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -179,8 +179,6 @@ #define FILE_DIR "icons/vending_icons" #define FILE_DIR "interface" #define FILE_DIR "maps" -#define FILE_DIR "maps/backup" -#define FILE_DIR "maps/backup/backup" #define FILE_DIR "maps/RandomZLevels" #define FILE_DIR "sound" #define FILE_DIR "sound/AI" @@ -740,6 +738,7 @@ #include "code\js\byjax.dm" #include "code\js\menus.dm" #include "code\modules\admin\admin.dm" +#include "code\modules\admin\admin_memo.dm" #include "code\modules\admin\admin_verbs.dm" #include "code\modules\admin\banjob.dm" #include "code\modules\admin\create_mob.dm"