#include <parser.h>
#include <access.h>
inherit COMMAND_BASE;
private int do_suspend(string, int, string);
// The lord version of suspend.
mixed cmd(string name, int tim, string reason) {
if (this_player() != this_player(1)) {
return 0;
}
if (!lordp(geteuid(previous_object()))) {
return notify_fail("You must be a lord to suspend "
"someone.");
}
return do_suspend(name, tim, reason);
}
// The normal creator suspend
int suspend(string who, string reason) {
if(this_player() != this_player(1))
return 0;
if(!lordp(geteuid(previous_object())) &&
!DOMAIN_H->query_member("liaison",geteuid(previous_object())))
return notify_fail("Only liaisons can do that.\n");
return do_suspend(who, 2, reason);
}
#ifdef 0
// The liaison multiplayer suspend
int suspend_multi(string who) {
if(this_player() != this_player(1))
return 0;
if (!lordp(geteuid(previous_object()))) {
return notify_fail("You must be a lord to suspend "
"someone for multiplaying.");
}
if(!DOMAIN_H->query_member("liaison",TP->query_name()))
return notify_fail("Only liaisons can do that.\n");
return do_suspend(who, 14*24, "Multiplaying");
}
#endif
private int do_suspend(string name, int tim, string reason) {
notify_fail("We failed!\n");
if (!BASTARDS_H->suspend_person(name, tim*60*60, reason)) {
return 0;
}
write(name+" suspended until "+ctime(time()+tim*60*60)+"\n");
return 1;
}
int help() {
if(!lordp(geteuid(previous_object())) &&
!DOMAIN_H->query_member("liaison",TP->query_name()))
return notify_fail("");
write("suspend <name> <reason> -- will suspend a player for 2 hours.\n");
write("suspend <name> multiplaying -- will suspend a multiplayer for "
"2 weeks.\n");
if (lordp(geteuid(this_player())))
write("suspend <name> <time> <reason> where time is in hours.\n");
return 1;
}
mixed *query_patterns() {
return ({ "<word'player'> <number'time'> <string'reason'>",
(: cmd($4[0], $4[1], implode($4[2..], " ")) :),
"<word'player'> <string'reason'>",
(: suspend($4[0], implode($4[1..], " ")) :),
#ifdef 0
"<word'player'> multiplaying",
(: suspend_multi($4[0]) :),
#endif
"help", (: help() :) });
} /* query_patterns() */