mud/lib/cmds/creators/notices.c
2020-09-06 05:43:07 -07:00

65 lines
2.2 KiB
C

/* /cmds/creators/notices
* from the Dead Souls Mud Library
* created by Blitz@Dead Souls 950115
*/
#include <lib.h>
#include <daemons.h>
#define OneDay (3600 * 24)
string GetHelp(string foo);
mixed cmd(string str) {
string * words;
object ob = this_player();
int x;
if( !sizeof(str) ) x = 1;
else x = to_int(str);
if( x < 1 ) {
if( !archp(this_player()) ) return GetHelp(0);
words = explode(str, " ");
if( words[0] == "-d" ) {
if( sizeof(words) < 2 ) return GetHelp(0);
x = to_int(words[1]);
if( x < 1 && words[1] != "0" )
return "Bad value ("+words[1]+").";
if( NOTIFY_D->eventRemoveNotice(x) )
ob->eventPrint("Notice number " + x + " has been erased.");
else ob->eventPrint("Could not remove number " + x + ".");
return 1;
}
else if( words[0] == "-p" && sizeof(words) > 1 ) {
string file = words[1];
if( sizeof(words) > 2 ) x = to_int(words[2]);
else x = 1;
if( x < 1 ) return GetHelp(0);
if( NOTIFY_D->eventWriteNotices(file, time() - (OneDay*x)) )
ob->eventPrint("Notices dumped to " + file + ".");
else ob->eventPrint("No notices found, nothing done.");
return 1;
}
else return GetHelp(0);
}
x = time() - (OneDay * x);
if( !NOTIFY_D->eventPrintNotices(this_player(), x) )
return "No recent notices found.";
else return 1;
}
string GetHelp(string foo) {
string str;
str = "Syntax: notices [number of days back]\n\n"
"Without arguments, this command displays all notices "
"posted within the last 24 hours. You may also "
"specify how many days back to search. For example, "
"\"notices 7\" will display all notices posted within "
"the last week.";
if( archp(this_player()) )
str += "\nArch Commands: notices -d <id number>\n"
" notices -p <file name> <number of days back>\n\n"
"The d option deletes the specified notice id number.\n"
"the p option will dump the output into <file name>";
return str;
}