/* -*- LPC -*- */
/*
* $Id: multipl_ayer.c,v 1.9 2003/03/25 09:42:40 wyvyrn Exp ceres $
*/
/* multiplayer command to add/delete names to the list
* of checked players and enter multiplay events into playerinfos
*/
#include <creator.h>
#include <player.h>
inherit "/cmds/base";
varargs int cmd(string command, string name, string what, string extra) {
switch (command) {
case "add":
if (!call_other(PLAYER_MULTIPLAYER_HANDLER, "add_" + what, name, extra)) {
printf("\"%s\"%s isn't known here.\n", name, (extra ? " and/or \"" +
extra + "\"" : ""));
} else {
if (what == "allowed") {
printf("\"%s\" and \"%s\" added as allowed together.\n", name, extra);
} else {
printf("\"%s\" added.\n", name);
}
}
break;
case "del":
if(!call_other(PLAYER_MULTIPLAYER_HANDLER, "delete_" + what, name)) {
printf("\"%s\" isn't on the list.\n", name);
} else {
printf("\"%s\" deleted.\n", name);
}
break;
case "log":
PLAYER_MULTIPLAYER_HANDLER->mark_log(name, extra);
if (extra) {
printf("Added \"multiplay\" playerinfo event for \"%s\": \"%s\".\n",
name, extra);
} else {
printf("Marked \"multiplay\" playerinfo events for \"%s\" as handled.\n",
name);
}
break;
case "list":
write("The list currently consists of: $I$5=\n" +
query_multiple_short(sort_array(call_other(PLAYER_MULTIPLAYER_HANDLER,
"query_" + what),
(: strcmp($1, $2) :)))
+ "$I$0=\n");
break;
case "site":
if(find_player(name)) {
name = query_ip_number(find_player(name));
}
if("/secure/bastards"->change_multi(name, 1, time() + 3600)) {
write("Site " + name + " has been permitted for multiplayers "
"for the next hour.\n");
} else {
write("Error permitting site " + name + " for multiplayers.\n");
}
break;
default:
write("Unknown option.\n");
}
return 1;
} /* cmd */
mixed *query_patterns() {
return ({ "[list]", (: cmd("list", 0, "gits") :),
"{list allow}", (: cmd("list", 0, "allowed") :),
"add git <word'name'>", (: cmd("add", $4[0], "git") :),
"add allowed <word'first name'> <word'second name'>",
(: cmd("add", $4[0], "allowed", $4[1]) :),
"allow site <word'address|name'>", (: cmd("site", $4[0], "allowed") :),
"del allowed <word'name'>", (: cmd("del", $4[0], "allowed") :),
"log <word'name'>", (: cmd("log", $4[0], "git") :),
"log <word'name'> <string'log text'>", (: cmd("log", $4[0], "git",
implode($4[1..], " ")) :)
});
}