65 lines
2.2 KiB
C
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;
|
|
}
|