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"