#include "boot.clh"
object WIZARD
parents PROGRAMMER;
verb "@wiz*ard" = wiz_cmd;
verb "@dewiz*ard" = dewiz_cmd;
verb "@force" : "to" = force_cmd;
verb "@force" = force_cmd;
verb "@mem" = mem_cmd;
verb "@cachestats @cache_stats @cs" = cachestats_cmd;
verb "@vis*itors" = visitors_cmd;
verb "@boot" = boot_cmd;
verb "@shout" = shout_cmd;
verb "@shutdown" = shutdown_cmd;
method init
if (this == WIZARD)
name = "Wizard";
password = "83pil1MP02An.";
desc = "A short, aged guy with a pointy hat.";
this.add_owner(WIZARD);
endif
pass() to PLAYER;
endmethod /* init */
method cachestats_cmd
echo(cache_stats());
endmethod
method wiz_cmd
var who;
if (caller != this)
return 1;
elseif(!args[2])
echo("Usage: @wizard <player>");
return 0;
endif
who = SYS_OBJ.find_player(args[2]);
if (!who)
echo("I couldn't find that player.");
elseif (who in SYS_OBJ.wizards)
echo(who.name + " is already a wizard.");
elseif (!(who in SYS_OBJ.players))
echo("That's not a player.");
else
SYS_OBJ.add_wizard(who);
endif
endmethod /* wiz_cmd */
method dewiz_cmd
var who;
if (caller != this)
return 1;
elseif(!args[2])
echo("Usage: @dewizard <player>");
return 0;
endif
who = SYS_OBJ.find_player(args[2]);
if (!who)
echo("I couldn't find that player.");
elseif (!(who in SYS_OBJ.wizards))
echo("That's not a wizard.");
elseif (who == player)
echo("You can't dewiz yourself; ask another wizard.");
else
SYS_OBJ.rm_wizard(who);
endif
endmethod /* dewiz_cmd */
method force_cmd
var who;
if (caller != this)
return 1;
elseif (!args[2] || !args[3] || !args[4])
echo("Usage: @force <player> to <cmd>");
return 0;
endif
who = this.match_env(args[2]);
if (!who)
echo("Force whom?");
else
player = who;
player.parse(args[4]);
endif
endmethod
method mem_cmd /* verb */
if (caller != this)
return 1;
endif
echo(checkmem());
endmethod /* mem_cmd */
method visitors_cmd /* verb */
var item, id;
ignore E_SERVERDN;
if (caller != this)
return 1;
endif
echo("Remote objects:");
for item in (SYS_OBJ.visitors())
id = item[1].id;
if (id == E_SERVERDN)
echo("(Ghost of " + tostr(item[1]) + ") is in "
+ item[2].id);
else
echo(item[1].id + " is in " + item[2].id);
endif
endfor
echo("---");
endmethod /* visitors_cmd */
method boot_cmd /* verb */
var who;
if (caller != this)
return 1;
elseif (!args[2])
echo("Usage: @boot <player>");
return 0;
endif
who = SYS_OBJ.find_connected_player(args[2]);
if (!who)
echo("That player is not connected.");
else
if (who.quit_cmd())
echo("You can't boot that player.");
else
echo("Player booted.");
endif
endif
endmethod /* boot_cmd */
method shout_cmd /* verb */
var dude, msg;
if (caller != this)
return 1;
endif
msg = name + " shouts, \"" + args[2] + "\"";
for dude in (SYS_OBJ.connected_players)
dude.tell(msg);
endfor
endmethod /* shout_cmd */
method shutdown_cmd
if (caller != this)
return 1;
endif
writelog("SHUTDOWN by " + this.id);
shutdown();
endmethod
endobject /* WIZARD */