/*
* clist.h
*/
/* The stuff for the dynamic rooms */
extern void dynamic_defrag_rooms();
extern void dynamic_test_func_blocks(), dynamic_test_func_keys();
extern void dynamic_dfstats();
extern void dynamic_validate_rooms();
/**/
extern char *check_legal_entry(player *, char *, int);
extern char *list_lines(list_ent *);
extern void to_room1(), to_room2(), room_link();
extern void say(), quit(), pulldown(), change_password(), change_email(),
do_save(), wall(), tell(), grant(), remove_privs(), nuke_player(),
view_saved_lists(), banish_player(), unbanish(), sync_files(),
sync_all_by_user(), restore_files(), check(),abort_shutdown(),
make_new_character(), room_command(), list_admins(), disclaim(),
suicide(), view_player_url(), block_beeps(), redtape(),
test_fn(), unlink_from_room(), look(), trans_to(), crash(),
validate_email(), go_room(), remote(), recho(), whisper(),
emote(), echo(), gender(), shout(), exclude(),comments(),
remove_shout(), set_screenlock(), toggle_singblock(),
friended(), block_blinks(), pg_version(), social_afk(),
set_title(), set_description(), set_plan(), set_prompt(),
set_converse_prompt(), set_term_width(), set_word_wrap(),
new(), minister(), decap_player(), xref_player_email(),
blank_password(), new_blankpass(), pemote(), premote(),
converse_mode_on(), converse_mode_off(), swho(), set_pretitle(),
clear_list(), change_list_absolute(), reset_total_idle(),
set_list(), reset_list(), toggle_list(), noisy(), ignore(),
inform(), grab(), friend(), bar(), invite(), key(), listfind(),
set_enter_msg(), set_ignore_msg(), view_commands(), qwho(),
beep(), blocktells(), earmuffs(), move_to(), report_idea(),
change_room_entermsg(), hide(), check_idle(), set_idle_msg(),
view_ip(), view_player_email(), public_com(), do_grab(),
go_quiet(), view_time(), toggle_tags(), echoall(),
straight_home(), close_to_newbies(), su(), suemote(), susing(),
su_hilited(), emergency(), see_echo(), dump_com(),
news_command(), mail_command(), list_notes(), list_all_notes(),
toggle_news_inform(), toggle_mail_inform(), dibbs(), extend(),
recap(), soft_eject(), social_smile(), social_snog(), help(),
reload(), informed_who(), edtime(), see_player_whois(),
listgits(), check_banish_status(), edidle(), toggle_noprs(),
hitells(), block(), privs(), boot_out(), wake(), view_note(),
dest_note(), sneeze(), resident(), join(), crash(), port(),
motd(), trace(), trans_fn(), remove_move(), relink_note(),
add_lag(), toggle_iacga(), recount_news(), banish_edit(),
same_site(), set_age(), set_birthday(), warn(), netstat(),
nopager(), bounce(), vlog(), reset_sneeze(), splat_player(),
block_su(), unsplat(), invites_list(), rename_player(),
quiet_rename(), mindseye(), think(), set_session(),
set_comment(), newthink(), view_session(), super_help(),
set_yes_session(), reply(), ereply(), prison_player(), twho(),
reset_session(), set_login_room(), room_entry(), nopropose(),
assist_player(), on_duty(), barge(), report_error(),
clear_screen(), confirm_password(), inform_room_enter(),
show_exits(), blank_email(), hang(), dumb(), undumb(),
unconverse(), unjail(), go_colony(), suthink(), script(),
player_stats(), go_comfy(), mode(), hilltop(), yoyo(),
tell_friends(), remote_friends(), remote_think(),
ad(), adminemote(), adminthink(), sumotd(), qwho_old(),
bump_off(), emoted_wall(), thinkin_wall(), wall_to_supers(),
toggle_friend_inform(), superview(), marry(), divorce(),
superpost(), adminview(), adminpost(), sban(), nban(),
emote_shout(), pemote_shout(), think_shout(), echo_shout(),
rthink_friends(), premote_friends(), recho_friends(),
res_count(), on_lsu(), off_lsu(), forcehelp(),
pinfo_command(), remove_sing(), sing(), rsing(),
sing_friends(), sing_shout(), beep_tell(), lesser_warn(),
repeat_mistell(), set_logonmsg(), set_logoffmsg(),
set_blockmsg(), set_exitmsg(), set_irl_name(),
set_alt_email(), set_hometown(), set_spod_class(),
set_favorites(), do_backup(), block_ftells(), marry_edit(),
remove_from_others_list(), list_spods(), list_ministers(),
toggle_email_site_flags(), friend_mailblock(),
tell_others_friends(), remote_others_friends(),
premote_others_friends(), rsing_others_friends(),
beepat_others_friends(), recho_others_friends(),
rt_others_friends(), beepat_friends(), begin_ressie(),
define_alias(), undefine_alias(), view_alias(),
toggle_color(), fingerpaint(), view_others_aliases(),
define_logon_macro(), define_logoff_macro(), no_msgs(),
define_recon_macro(), library_list(), library_copy(),
library_examine(), block_room_descriptions(), edfirst();
extern void channelcreate(), channellist(), channelrename(),
channelquit(), channelboot(), channeljoin(), channelban(),
channelkill(), viewchannelcmds(), channelcmd(),
channelsay(), channelemote(), channelpemote(),
channelthink(), channelhitell(), channelwho(), game_hi(),
channelkillown(), channelxfercrown(), channelsing(),
channelsettopic(), channelnosing(), channelnonewbies(),
channelprivate(), toggleblockchans(), channelbarge(),
list_friendblock(), list_mailblock(), list_shareroom(),
channelinvite(), channeluninvite(), net_propose(),
acc_engage(), reject(), net_anul_all(), hide_bachelor_status(),
list_nofaccess(), global_nofriend(), declare_flirt(),
customize_colors(), toggle_system_color(), treply(),
sreply(), yreply(), preply(), echoreply(), view_people_and_flags();
extern void edit_quit(), edit_end(), edit_wipe(), edit_view(),
edit_view_line(), edit_back_line(), edit_forward_line(),
edit_view_commands(), edit_goto_top(), edit_goto_bottom(),
edit_stats(), edit_delete_line(), edit_goto_line(),
toggle_quiet_edit(), change_auto_base(), echoroomall(),
paper_rock_scissors(), cancel_engage(), purge_gaglist(),
list_all_gags(), delete_gag(), create_gag(), listdumb();
extern void check_wrap(), check_updates(), check_email(), check_rooms(),
check_exits(), view_others_list(), do_list(), view_list(),
view_check_commands(), check_info(), check_room(),
check_entry(), check_alist(), change_player_limits(),
blank_something(), xref_name(), su_examine(), su_stats(),
make_git(), clear_git(), view_review(), reportto();
extern void exit_room_mode(), create_new_room(), change_room_id(),
change_room_name(), delete_room(), add_exit(), remove_exit(),
add_auto(), remove_auto(), check_autos(), autos_com(),
view_room_commands(), view_room_key_commands(), who(), where(),
room_lock(), room_bolt(), room_lockable(), room_open(),
set_home(), go_home(), visit(), go_main(), room_edit(), with(),
grabable(), transfer_room(), room_linkable(), room_exitmsgs_ok(),
room_soundproof(), room_isolate(), room_antising(), newfinger(),
newexamine(), give_news_notimeout(), blank_all_aliases();
extern void view_news_commands(), exit_news_mode(), list_news(),
post_news(), followup(), remove_article(), read_article(),
reply_article(), switch_channel_style(), delete_item(),
create_object(), inventory(), view_store(), make_builder(),
buy_object(), list_builders(), delete_items(), sell_item(),
delete_all_items(), sitem_set_value(), edcash(), give_item(),
toggle_no_gift(), item_set_classes(), eat_item(), wear_item(),
examine_item(), weild_item(), bop_with_weilded_item(),
play_wif_item(), drink_item(), toggle_block_items(),
toggle_block_logins(), toggle_no_bops();
extern void view_mail_commands(), exit_mail_mode(), view_sent(),
view_received(), send_letter(), read_letter(), reply_letter(),
delete_received(), delete_sent(), toggle_anonymous(), lsu(),
lnew(), ignoreprefix(), ignoreemoteprefix(), set_time_delay(),
forward_letter(), editor_search_string(), edit_search_and_replace(),
list_snews(), read_sarticle(), list_snews(), reply_suarticle(),
give_snews_notimeout(), post_snews(), sfollowup(), recount_snews(),
remove_sarticle(), view_snews_commands(), exit_snews_mode(),
snews_command(), set_made_from(), fake_nuke_player();
extern void player_flags_verbose(),blank_list(), spodlist_view(),
close_to_ressies();
#ifdef PC
extern void psuedo_person(), switch_person();
#endif
/* dummy commands for stack checks */
struct command input_to = {"input_to fn", 0, 0, 0, 0, 0, 0};
struct command timer = {"timer fn", 0, 0, 0, 0, 0, 0};
/* command list for editor */
struct command editor_list[] = {
{"del", edit_delete_line, 0, 0, 1, 0, 0},
{"-", edit_back_line, 0, 0, 1, 0, 0},
{"+", edit_forward_line, 0, 0, 1, 0, 0},
{"view", edit_view, 0, 0, 1, 0, 0},
{"l", edit_view_line, 0, 0, 1, 0, 0},
{"g", edit_goto_line, 0, 0, 1, 0, 0},
{"s", editor_search_string, 0, 0, 1, 0, 0},
{"sr", edit_search_and_replace, 0, 0, 1, 0, 0},
{"top", edit_goto_top, 0, 0, 1, 0, 0},
{"bot", edit_goto_bottom, 0, 0, 1, 0, 0},
{"end", edit_end, 0, 0, 1, 0, 0},
{"quit", edit_quit, 0, 0, 1, 0, 0},
{"wipe", edit_wipe, 0, 0, 1, 0, 0},
{"stats", edit_stats, 0, 0, 1, 0, 0},
{"quiet", toggle_quiet_edit, 0, 0, 1, 0, 0},
{"commands", edit_view_commands, 0, 0, 1, 0, 0},
{"?", help, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
};
/* command list for the room function */
struct command keyroom_list[] = {
{"check", check_rooms, BUILD, 0, 1, 0, 0},
{"chekc", check_rooms, BUILD, 0, 1, 0, 0},
{"commands", view_room_key_commands, BUILD, 0, 1, 0, 0},
{"end", exit_room_mode, BUILD, 0, 1, 0, 0},
{"entermsg", change_room_entermsg, BUILD, 0, 1, 0, 0},
{"exits", check_exits, BUILD, 0, 1, 0, 0},
{"+exit", add_exit, BUILD, 0, 1, 0, 0},
{"-exit", remove_exit, BUILD, 0, 1, 0, 0},
{"go", go_room, BUILD, 0, 1, 0, 0},
{"?", help, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 0, 0, 0},
{"info", check_room, BUILD, 0, 1, 0, 0},
{"lock", room_lock, BUILD, 0, 1, 0, 0},
{"lockable", room_lockable, BUILD, 0, 1, 0, 0},
{"look", look, BUILD, 0, 1, 0, 0},
{"linkable", room_linkable, BUILD, 0, 1, 0, 0},
{"name", change_room_name, BUILD, 0, 1, 0, 0},
{"open", room_open, BUILD, 0, 1, 0, 0},
{"trans", trans_fn, BUILD, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
};
struct command room_list[] = {
{"bolt", room_bolt, BUILD, 0, 1, 0, 0},
{"edit", room_edit, BUILD, 0, 1, 0, 0},
{"sethome", set_home, BUILD, 0, 1, 0, 0},
{"lock", room_lock, BUILD, 0, 1, 0, 0},
{"lockable", room_lockable, BUILD, 0, 1, 0, 0},
{"linkable", room_linkable, BUILD, 0, 1, 0, 0},
{"open", room_open, BUILD, 0, 1, 0, 0},
{"entrance", room_entry, BUILD, 0, 1, 0, 0},
{"entermsg", change_room_entermsg, BUILD, 0, 1, 0, 0},
{"+exit", add_exit, BUILD, 0, 1, 0, 0},
{"-exit", remove_exit, BUILD, 0, 1, 0, 0},
{"link", room_link, BUILD, 0, 1, 0, 0},
{"exits", check_exits, BUILD, 0, 1, 0, 0},
{"id", change_room_id, BUILD, 0, 1, 0, 0},
{"name", change_room_name, BUILD, 0, 1, 0, 0},
{"notify", inform_room_enter, BUILD, 0, 1, 0, 0},
{"end", exit_room_mode, BUILD, 0, 1, 0, 0},
{"info", check_room, BUILD, 0, 1, 0, 0},
{"check", check_rooms, BUILD, 0, 1, 0, 0},
{"chekc", check_rooms, BUILD, 0, 1, 0, 0},
{"+auto", add_auto, BUILD, 0, 1, 0, 0},
{"-auto", remove_auto, BUILD, 0, 1, 0, 0},
{"speed", change_auto_base, BUILD, 0, 1, 0, 0},
{"autos", autos_com, BUILD, 0, 1, 0, 0},
{"delete", delete_room, BUILD, 0, 1, 0, 0},
{"create", create_new_room, BUILD, 0, 1, 0, 0},
{"go", go_room, BUILD, 0, 1, 0, 0},
{"look", look, BUILD, 0, 1, 0, 0},
{"trans", trans_fn, BUILD, 0, 1, 0, 0},
{"home", go_home, BUILD, 0, 1, 0, 0},
{"exitmsg_con", room_exitmsgs_ok, BUILD, 0, 1, 0, 0},
{"soundproof", room_soundproof, BUILD, 0, 1, 0, 0},
{"isolate", room_isolate, BUILD, 0, 1, 0, 0},
{"chamber", room_antising, BUILD, 0, 1, 0, 0},
{"commands", view_room_commands, BUILD, 0, 1, 0, 0},
{"?", help, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 1, 0, 0},
{"transfer", transfer_room, ADMIN, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
};
/* command list for channel function... */
struct command chan_list[] = {
{"ban", channelban, SU, 0, 1, 0, 0},
{"barge", channelbarge, ADMIN, 0, 1, 0, 0},
{"boot", channelboot, 0, 0, 1, 0, 0},
{"commands", viewchannelcmds, 0, 0, 1, 0, 0},
{"create", channelcreate, BASE, 0, 1, 0, 0},
{"emote", channelemote, 0, 0, 1, 0, 0},
{"hitell", channelhitell, 0, 0, 1, 0, 0},
{"invite", channelinvite, BASE, 0, 1, 0, 0},
{"join", channeljoin, 0, 0, 1, 0, 0},
{"kill", channelkill, SU, 0, 1, 0, 0},
{"list", channellist, 0, 0, 1, 0, 0},
{"nonewbies", channelnonewbies, BASE, 0, 1, 0, 0},
{"nosing", channelnosing, BASE, 0, 1, 0, 0},
{"nuke", channelkillown, BASE, 0, 1, 0, 0},
{"pemote", channelpemote, 0, 0, 1, 0, 0},
{"private", channelprivate, BASE, 0, 1, 0, 0},
{"quit", channelquit, 0, 0, 1, 0, 0},
{"rename", channelrename, BASE, 0, 1, 0, 0},
{"say", channelsay, 0, 0, 1, 0, 0},
{"sing", channelsing, 0, 0, 1, 0, 0},
{"think", channelthink, 0, 0, 1, 0, 0},
{"topic", channelsettopic, BASE, 0, 1, 0, 0},
{"uninvite", channeluninvite, BASE, 0, 1, 0, 0},
{"who", channelwho, 0, 0, 1, 0, 0},
{"xfer", channelxfercrown, BASE, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}
};
/* command list for the check function */
struct command check_list[] = {
{"flags", player_flags_verbose, 0, 0, 1, 0, 0},
{"mail", view_received, MAIL, 0, 1, 0, 0},
{"sent", view_sent, MAIL, 0, 1, 0, 0},
{"news", list_news, 0, 0, 1, 0, 0},
{"snews", list_snews, (PSU|SU), 0, 1, 0, 0},
{"exits", check_exits, 0, 0, 1, 0, 0},
{"entry", check_entry, 0, 0, 1, 0, 0},
{"list", check_alist, LIST, 0, 1, 0, 0},
{"autos", check_autos, BUILD, 0, 1, 0, 0},
{"room", check_room, 0, 0, 1, 0, 0},
{"rooms", check_rooms, BUILD, 0, 1, 0, 0},
{"email", check_email, 0, 0, 1, 0, 0},
{"wrap", check_wrap, 0, 0, 1, 0, 0},
{"res_list", view_saved_lists, ADMIN, 0, 1, 0, 0},
{"updates", check_updates, (LOWER_ADMIN | ADMIN), 0, 1, 0, 0},
{"info", check_info, ADMIN, 0, 1, 0, 0},
{"commands", view_check_commands, 0, 0, 1, 0, 0},
{"ip", view_ip, (SU | ADMIN), 0, 1, 0, 0},
{"mails", view_player_email, ADMIN, 0, 1, 0, 0},
{"?", help, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}};
/* command list for the news sub command */
struct command news_list[] = {
{"check", list_news, 0, 0, 1, 0, 0},
{"chekc", list_news, 0, 0, 1, 0, 0},
{"read", read_article, 0, 0, 1, 0, 0},
{"view", list_news, 0, 0, 1, 0, 0},
{"reply", reply_article, MAIL, 0, 1, 0, 0},
{"areply", reply_article, MAIL, 0, 1, 0, 0},
{"xreply", reply_article, MAIL, ADMIN, 1, 0, 0},
{"nto", give_news_notimeout, MAIL, ADMIN, 1, 0, 0},
{"post", post_news, MAIL, 0, 1, 0, 0},
{"apost", post_news, MAIL, 0, 1, 0, 0},
{"xpost", post_news, MAIL, ADMIN, 1, 0, 0},
{"followup", followup, MAIL, 0, 1, 0, 0},
{"afollowup", followup, MAIL, 0, 1, 0, 0},
{"xfollowup", followup, MAIL, ADMIN, 1, 0, 0},
{"remove", remove_article, MAIL, 0, 1, 0, 0},
{"commands", view_news_commands, 0, 0, 1, 0, 0},
{"inform", toggle_news_inform, 0, 0, 1, 0, 0},
{"end", exit_news_mode, 0, 0, 1, 0, 0},
{"?", help, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}};
/* sunews commandlist */
struct command snews_list[] = {
{"check", list_snews, (PSU|SU), 0, 1, 0, 0},
{"chekc", list_snews, (PSU|SU), 0, 1, 0, 0},
{"read", read_sarticle, (PSU|SU), 0, 1, 0, 0},
{"view", list_snews, (PSU|SU), 0, 1, 0, 0},
{"reply", reply_suarticle, (PSU|SU), MAIL, 1, 0, 0},
{"areply", reply_suarticle, (PSU|SU), MAIL, 1, 0, 0},
{"xreply", reply_suarticle, MAIL, ADMIN, 1, 0, 0},
{"nto", give_snews_notimeout, MAIL, ADMIN, 1, 0, 0},
{"post", post_snews, MAIL, (PSU|SU), 1, 0, 0},
{"apost", post_snews, MAIL, (PSU|SU), 1, 0, 0},
{"xpost", post_snews, MAIL, ADMIN, 1, 0, 0},
{"followup", sfollowup, MAIL, (PSU|SU), 1, 0, 0},
{"afollowup", sfollowup, MAIL, (PSU|SU), 1, 0, 0},
{"xfollowup", sfollowup, MAIL, ADMIN, 1, 0, 0},
{"remove", remove_sarticle, MAIL, (PSU|SU), 1, 0, 0},
{"commands", view_snews_commands, (PSU|SU), 0, 1, 0, 0},
{"end", exit_snews_mode, (PSU|SU), 0, 1, 0, 0},
{"?", help, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}};
/* command list for the mail sub command */
struct command mail_list[] = {
{"check", view_received, 0, 0, 1, 0, 0},
{"chekc", view_received, 0, 0, 1, 0, 0},
{"read", read_letter, MAIL, 0, 1, 0, 0},
{"post", send_letter, MAIL, 0, 1, 0, 0},
{"apost", send_letter, MAIL, 0, 1, 0, 0},
{"xpost", send_letter, MAIL, ADMIN, 1, 0, 0},
{"reply", reply_letter, MAIL, 0, 1, 0, 0},
{"forward", forward_letter, MAIL, 0, 1, 0, 0},
{"areply", reply_letter, MAIL, 0, 1, 0, 0},
{"aforward", forward_letter, MAIL, 0, 1, 0, 0},
{"xreply", reply_letter, MAIL, ADMIN, 1, 0, 0},
{"xforward", forward_letter, MAIL, ADMIN, 1, 0, 0},
{"delete", delete_received, MAIL, 0, 1, 0, 0},
{"remove", delete_sent, MAIL, 0, 1, 0, 0},
{"commands", view_mail_commands, MAIL, 0, 1, 0, 0},
{"end", exit_mail_mode, MAIL, 0, 1, 0, 0},
{"sent", view_sent, MAIL, 0, 1, 0, 0},
{"view", view_received, MAIL, 0, 1, 0, 0},
{"inform", toggle_mail_inform, 0, 0, 1, 0, 0},
{"noanon", toggle_anonymous, 0, 0, 1, 0, 0},
{"?", help, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}};
/* restricted command list for naughty peoples */
struct command restricted_list[] = {
{"'", say, 0, 0, 0, 0, 0},
{"`", say, 0, 0, 0, 0, 0},
{"\"", say, 0, 0, 0, 0, 0},
{"::", pemote, 0, 0, 0, 0, 0},
{":;", pemote, 0, 0, 0, 0, 0},
{";;", pemote, 0, 0, 0, 0, 0},
{";:", pemote, 0, 0, 0, 0, 0},
{";", emote, 0, 0, 0, 0, 0},
{":", emote, 0, 0, 0, 0, 0},
{"=", whisper, 0, 0, 0, 0, 0},
{"emote", emote, 0, 0, 1, 0, 0},
{"say", say, 0, 0, 1, 0, 0},
{"pemote", pemote, 0, 0, 1, 0, 0},
{"whisper", whisper, 0, 0, 1, 0, 0},
{"look", look, 0, 0, 1, 0, 0},
{"l", look, 0, 0, 1, 0, 0},
{"?", help, 0, 0, 1, 0, 0},
{"help", help, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0}};
/* this is the main command list */
/* any command with type INVISc is not to be shown on the actual list =) */
struct command complete_list[] = { /* non alphabetic */
{"'", say, 0, 0, 0, 0, COMMc},
{"`", say, 0, 0, 0, 0, (COMMc|INVISc)},
{"\"", say, 0, 0, 0, 0, COMMc},
{"::", pemote, 0, 0, 0, 0, (COMMc|INVISc)},
{":;", pemote, 0, 0, 0, 0, (COMMc|INVISc)},
{";;", pemote, 0, 0, 0, 0, COMMc},
{";:", pemote, 0, 0, 0, 0, (COMMc|INVISc)},
{";", emote, 0, 0, 0, 0, COMMc},
{":", emote, 0, 0, 0, 0, COMMc},
{">", tell, 0, 0, 0, 0, COMMc},
{".", tell, 0, 0, 0, 0, COMMc},
{"<:", premote, 0, 0, 0, 0, (COMMc|INVISc)},
{",:", premote, 0, 0, 0, 0, (COMMc|INVISc)},
{"<;", premote, 0, 0, 0, 0, COMMc},
{",;", premote, 0, 0, 0, 0, COMMc},
{"<", remote, 0, 0, 0, 0, COMMc},
{",", remote, 0, 0, 0, 0, COMMc},
{"=", whisper, 0, 0, 0, 0, COMMc},
{"!;;", pemote_shout, 0, 0, 0, 0, COMMc},
{"!::", pemote_shout, 0, 0, 0, 0, INVISc},
{"!;", emote_shout, 0, 0, 0, 0, COMMc},
{"!:", emote_shout, 0, 0, 0, 0, INVISc},
{"!~", think_shout, 0, 0, 0, 0, COMMc},
{"!*", think_shout, 0, 0, 0, 0, INVISc},
{"!+", echo_shout, ECHO_PRIV, 0, 0, 0, COMMc},
{"!-", echo_shout, ECHO_PRIV, 0, 0, 0, INVISc},
{"!)", sing_shout, 0, 0, 0, 0, COMMc},
{"!(", sing_shout, 0, 0, 0, 0, INVISc},
{"!", shout, 0, 0, 0, 0, COMMc},
{"?", help, 0, 0, 0, 0, (INFOc|MISCc)},
{"+", echo, ECHO_PRIV, 0, 0, 0, COMMc},
{"-", recho, ECHO_PRIV, 0, 0, 0, COMMc},
{"[-", echoreply, ECHO_PRIV, 0, 0, 0, INVISc},
{"[+", echoreply, ECHO_PRIV, 0, 0, 0, COMMc},
{"[&", yreply, BASE, 0, 0, 0, COMMc},
{"[*", treply, 0, 0, 0, 0, INVISc},
{"[~", treply, 0, 0, 0, 0, COMMc},
{"[(", sreply, 0, 0, 0, 0, INVISc},
{"[)", sreply, 0, 0, 0, 0, COMMc},
{"[:", preply, 0, 0, 0, 0, INVISc},
{"[;", preply, 0, 0, 0, 0, COMMc},
{"]", reply, 0, 0, 0, 0, COMMc},
{"[", ereply, 0, 0, 0, 0, COMMc},
{")", sing, 0, 0, 0, 0, COMMc},
{"(", rsing, 0, 0, 0, 0, COMMc},
{"~", newthink, 0, 0, 0, 0, COMMc},
{"*", remote_think, 0, 0, 0, 0, COMMc},
{"&", beep_tell, BASE, 0, 0, 0, COMMc},
{0, 0, 0, 0, 0, 0, 0},
{"abort", abort_shutdown, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"accept", acc_engage, BASE, 0, 1, 0, MISCc},
{"aecho", echoall, ADMIN, 0, 1, 0, ADMINc},
{"afk", social_afk, BASE, 0, 1, 0, SOCIALc},
{"age", set_age, 0, 0, 1, 0, DESCc},
{"all_delete", delete_all_items, ADMIN, 0, 1, 0, ITEMc},
{"ask", lesser_warn, (SU|WARN), 0, 1, 0, SUPERc},
{"assist", assist_player, (PSU|SU), 0, 1, 0, SUPERc},
{"anews", adminview, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"anul", net_anul_all, ADMIN, 0, 1, 0, ADMINc},
{"apost", adminpost, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"ad", ad, (LOWER_ADMIN | ADMIN | TESTCHAR), 0, 1, 0, ADMINc},
{"ae", adminemote, (LOWER_ADMIN | ADMIN | TESTCHAR), 0, 1, 0, ADMINc},
{"at", adminthink, (LOWER_ADMIN | ADMIN | TESTCHAR), 0, 1, 0, ADMINc},
{0, 0, 0, 0, 0, 0, 0},
{"backup", do_backup, ADMIN, 0, 1, 0, ADMINc},
{"banish", banish_player, (ASU | ADMIN), 0, 1, 0, SUPERc},
{"bar", bar, LIST, 0, 1, 0, LISTc},
{"barge", barge, ADMIN, 0, 1, 0, ADMINc},
{"bday", set_birthday, 0, 0, 1, 0, DESCc},
{"becho", echoroomall, ADMIN, 0, 1, 0, ADMINc},
{"bedit", banish_edit, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"beep", beep, LIST, 0, 1, 0, LISTc},
/* {"begin", begin_ressie, NO_SYNC, BASE, 1, 0, MISCc}, */
{"birthday", set_birthday, 0, 0, 1, 0, (INVISc|DESCc)},
{"blank_alias", blank_all_aliases, BASE, 0, 1, 0, MISCc},
{"blank_email", blank_email, (LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc},
{"blank_gags", purge_gaglist, 0, 0, 1, 0, MISCc},
{"blank_items", delete_items, BASE, 0, 1, 0, ITEMc},
{"blank_list", blank_list, LIST, 0, 1, 0, LISTc},
{"blank", blank_something, SU, 0, 1, 0, SUPERc},
{"blankpass", new_blankpass, (ASU | ADMIN), 0, 1, 0, SUPERc},
{"block", block, LIST, 0, 1, 0, LISTc},
{"blockchans", toggleblockchans, 0, 0, 1, 0, SYSc},
{"blockdesc", block_room_descriptions, 0, 0, 1, 0, SYSc},
{"blockfmail", friend_mailblock, LIST, 0, 1, 0, SYSc},
{"blockfriends", block_ftells, LIST, 0, 1, 0, SYSc},
{"blockgames", toggle_noprs, 0, 0, 1, 0, MISCc},
{"blockitems", toggle_block_items, 0, 0, 1, 0, (SYSc|ITEMc)},
{"blocklist", global_nofriend, LIST, 0, 1, 0, LISTc},
{"blocklogins", toggle_block_logins, 0, 0, 1, 0, SYSc},
{"blockmsg", set_blockmsg, HCADMIN, 0, 1, 0, DESCc},
{"blocktells", blocktells, 0, 0, 1, 0, SYSc},
{"boot", boot_out, BUILD, 0, 1, 0, ROOMc},
{"bop", bop_with_weilded_item, BASE, 0, 1, 0, ITEMc},
{"bounce", bounce, 0, 0, 1, 0, MOVEc},
{"bug", report_error, BASE, 0, 1, 0, MISCc},
{"builder", make_builder, ADMIN, 0, 1, 0, ADMINc},
{"bump", bump_off, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"buy", buy_object, BASE, 0, 1, 0, ITEMc},
{0, 0, 0, 0, 0, 0, 0},
{"c(", channelsing, 0, 0, 0, 0, INVISc},
{"c)", channelsing, 0, 0, 0, 0, INVISc},
{"c*", channelthink, 0, 0, 0, 0, INVISc},
{"c~", channelthink, 0, 0, 0, 0, INVISc},
{"c\"", channelsay, 0, 0, 0, 0, INVISc},
{"c\'", channelsay, 0, 0, 0, 0, INVISc},
{"c::", channelpemote, 0, 0, 0, 0, INVISc},
{"c;;", channelpemote, 0, 0, 0, 0, INVISc},
{"c;", channelemote, 0, 0, 0, 0, INVISc},
{"c:", channelemote, 0, 0, 0, 0, INVISc},
{"cancel", cancel_engage, BASE, 0, 1, 0, MISCc},
{"ce", channelemote, 0, 0, 1, 0, COMMc},
{"ch", channelsay, 0, 0, 1, 0, COMMc},
{"ch_hi", channelhitell, 0, 0, 1, 0, SYSc},
{"chan", channelcmd, 0, 0, 1, 0, MISCc},
/* {"chan_off", spod_block, SPOD, 0, 1, 0, MISCc}, */
{"check", check, 0, 0, 1, 0, INFOc},
{"chekc", check, 0, 0, 1, 0, (INFOc|INVISc)},
{"chlim", change_player_limits, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"ckban", check_banish_status, SU, 0, 1, 0, SUPERc},
{"clist", clear_list, LIST, 0, 1, 0, LISTc},
{"cls", clear_screen, 0, 0, 1, 0, MISCc},
{"color", toggle_color, 0, 0, 1, 0, SYSc},
{"colorize", customize_colors, 0, 0, 1, 0, SYSc},
{"colour", toggle_color, 0, 0, 1, 0, INVISc},
{"colourize", customize_colors, 0, 0, 1, 0, INVISc},
{"comfy", go_comfy, SU, 0, 1, 0, SUPERc},
{"commands", view_commands, 0, 0, 1, 0, MISCc},
{"comment", set_comment, 0, 0, 1, 0, MISCc},
{"comments", comments, 0, 0, 1, 0, (MISCc|INFOc)},
{"confirm", confirm_password, (PSU|SU), 0, 1, 0, SUPERc},
{"connectmsg", set_logonmsg, BASE, 0, 1, 0, INVISc},
{"connect_room", set_login_room, BASE, 0, 1, 0, (SYSc|ROOMc)},
{"converse", converse_mode_on, BASE, 0, 1, 0, MISCc},
{"cp", channelpemote, 0, 0, 1, 0, COMMc},
{"cprompt", set_converse_prompt, BASE, 0, 1, 0, MISCc},
{"crash", crash, ADMIN, 0, 1, 0, ADMINc},
{"create", create_object, BASE, 0, 1, 0, ITEMc},
{"cs", channelsing, 0, 0, 1, 0, COMMc},
{"ct", channelthink, 0, 0, 1, 0, COMMc},
{"cwho", channelwho, 0, 0, 1, 0, INFOc},
{0, 0, 0, 0, 0, 0, 0},
/* Stuff for dynamic rooms */
/* These seems to crash it by putting too much in the pager.
{"dtb", dynamic_test_func_blocks, ADMIN, 0, 1, 0, ADMINc},
{"dtk", dynamic_test_func_keys, ADMIN, 0, 1, 0, ADMINc},
*/
{"decap", decap_player, SU, 0, 1, 0, SUPERc},
{"define", define_alias, BASE, 0, 1, 0, MISCc},
{"deflogin", define_logon_macro, BASE, 0, 1, 0, INVISc},
{"deflogon", define_logon_macro, BASE, 0, 1, 0, MISCc},
{"deflogoff", define_logoff_macro, BASE, 0, 1, 0, MISCc},
{"deflogout", define_logoff_macro, BASE, 0, 1, 0, INVISc},
{"defrag", dynamic_defrag_rooms, ADMIN, 0, 1, 0, ADMINc},
{"defrecon", define_recon_macro, BASE, 0, 1, 0, MISCc},
{"delete", delete_item, BASE, 0, 1, 0, ITEMc},
{"desc", set_description, 0, 0, 1, 0, DESCc},
{"description", set_description, 0, 0, 1, 0, (DESCc|INVISc)},
{"dfcheck", dynamic_validate_rooms, ADMIN, 0, 1, 0, ADMINc},
{"dfstats", dynamic_dfstats, ADMIN, 0, 1, 0, ADMINc},
{"dibbs", dibbs, SU, 0, 1, 0, SUPERc},
{"disclaim", disclaim, ADMIN, 0, 1, 0, ADMINc},
{"disconnectmsg", set_logoffmsg, BASE, 0, 1, 0, INVISc},
{"divorce", divorce, 0, 0, 1, 0, INVISc},
{"drag", soft_eject, SU, 0, 1, 0, SUPERc},
{"drink", drink_item, BASE, 0, 1, 0, ITEMc},
{"dump", dump_com, (LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc},
{"dumb", dumb, (DUMB | SU), 0, 1, 0, (MISCc|SUPERc)}, /* but why? *shrug */
/**/
{0, 0, 0, 0, 0, 0, 0},
{"earmuffs", earmuffs, 0, 0, 1, 0, SYSc},
{"eat", eat_item, BASE, 0, 1, 0, ITEMc},
{"echo", echo, ECHO_PRIV, 0, 1, 0, COMMc},
{"edcash", edcash, ADMIN, 0, 1, 0, ADMINc},
{"edfirst", edfirst, ADMIN, 0, 1, 0, ADMINc},
{"edidle", edidle, ADMIN, 0, 1, 0, ADMINc},
{"edtime", edtime, ADMIN, 0, 1, 0, ADMINc},
{"ef", recho_friends, ECHO_PRIV, LIST, 1, 0, COMMc},
{"email", change_email, 0, 0, 1, 0, SYSc},
{"emergency", emergency, 0, 0, 1, 0, MISCc},
{"emote", emote, 0, 0, 1, 0, COMMc},
{"end", converse_mode_off, BASE, 0, 1, 0, MISCc},
{"entermsg", set_enter_msg, 0, 0, 1, 0, DESCc},
{"eo", recho_others_friends, ECHO_PRIV, 0, 1, 0, COMMc},
{"ereply", ereply, 0, 0, 1, 0, COMMc},
{"etrace", xref_player_email, ADMIN, 0, 1, 0, ADMINc},
{"evict", sneeze, (SU | ADMIN), HOUSE, 1, 0, SUPERc},
{"ewall", emoted_wall, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"examine", newexamine, 0, 0, 1, 0, INFOc},
{"exclude", exclude, 0, 0, 1, 0, COMMc},
{"exitmsg", set_exitmsg, BASE, 0, 1, 0, DESCc},
{"exits", check_exits, 0, 0, 1, 0, (INFOc|ROOMc)},
{"extend", extend, SU, 0, 1, 0, SUPERc},
{0, 0, 0, 0, 0, 0, 0},
{"f", newfinger, 0, 0, 1, 0, INFOc},
{"favorite", set_favorites, 0, 0, 1, 0, DESCc},
{"favourite", set_favorites, 0, 0, 1, 0, INVISc}, /* for brits and aussies */
{"find", listfind, LIST, 0, 1, 0, LISTc},
{"finger", newfinger, 0, 0, 1, 0, INFOc},
{"fingerpaint", fingerpaint, 0, 0, 1, 0, MISCc},
{"flirt", declare_flirt, LIST, 0, 1, 0, MISCc},
{"flist", change_list_absolute, LIST, 0, 1, 0, LISTc},
{"forcehelp", forcehelp, SU, 0, 1, 0, SUPERc},
{"friend", friend, LIST, 0, 1, 0, LISTc},
/* {"friended", friended, BASE, 0, 1, 0, INVISc}, */
{"friendblock", list_friendblock, LIST, 0, 1, 0, LISTc},
{"fwho", qwho_old, 0, 0, 1, 0, (INFOc|LISTc)},
{0, 0, 0, 0, 0, 0, 0},
{"gag", create_gag, 0, 0, 1, 0, MISCc},
{"game_hi", game_hi, 0, 0, 1, 0, SYSc},
/* {"ge", spodemote, SPOD, 0, 1, 0, COMMc}, */
{"gender", gender, 0, 0, 1, 0, MISCc},
{"ghome", straight_home, BUILD, 0, 1, 0, (SYSc|ROOMc)},
{"git", make_git, SU, 0, 1, 0, SUPERc},
{"give", give_item, BASE, 0, 1, 0, ITEMc},
{"go", go_room, 0, 0, 1, 0, MOVEc},
/* {"gp", spodpemote, SPOD, 0, 1, 0, COMMc}, */
{"grab", do_grab, 0, 0, 1, 0, MISCc},
{"grabable", grabable, 0, 0, 1, 0, INFOc},
{"grabme", grab, LIST, 0, 1, 0, LISTc},
{"grant", grant, (ADMIN | HCADMIN), 0, 1, 0, ADMINc},
/* {"gs", spodsing, SPOD, 0, 1, 0, COMMc}, */
/* {"gt", spodthink, SPOD, 0, 1, 0, COMMc}, */
{"gwho", list_all_gags, 0, 0, 1, 0, MISCc},
{0, 0, 0, 0, 0, 0},
{"help", help, 0, 0, 1, 0, (INFOc|MISCc)},
{"hide", hide, 0, 0, 1, 0, (SYSc|MISCc)},
/* {"hilltop", hilltop, 0, 0, 1, 0, MOVEc}, */
{"history", view_review, 0, 0, 1, 0, MISCc},
{"hitells", hitells, 0, 0, 1, 0, SYSc},
{"home", go_home, BUILD, 0, 1, 0, MOVEc},
{"hometown", set_hometown, BASE, 0, 1, 0, DESCc},
{"homeview", mindseye, BUILD, 0, 1, 0, (ROOMc|INFOc)},
{0, 0, 0, 0, 0, 0, 0},
{"i", inventory, BASE, 0, 1, 0, ITEMc},
{"iacga", toggle_iacga, 0, 0, 1, 0, SYSc},
{"idea", report_idea, BASE, 0, 1, 0, MISCc},
{"idle", check_idle, 0, 0, 1, 0, INFOc},
{"idlemsg", set_idle_msg, 0, 0, 1, 0, DESCc},
{"ignore", ignore, LIST, 0, 1, 0, LISTc},
{"ignoremsg", set_ignore_msg, LIST, 0, 1, 0, DESCc},
{"inform", inform, LIST, 0, 1, 0, LISTc},
{"inv", inventory, BASE, 0, 1, 0, INVISc},
{"inventory", inventory, BASE, 0, 1, 0, ITEMc},
{"invite", invite, LIST, 0, 1, 0, LISTc},
{"invites", invites_list, 0, 0, 1, 0, INFOc},
{"irl_name", set_irl_name, BASE, 0, 1, 0, DESCc},
{"iwho", informed_who, LIST, 0, 1, 0, (INFOc|LISTc)},
{"ix", examine_item, BASE, 0, 1, 0, ITEMc},
{0, 0, 0, 0, 0, 0, 0},
{"jail", prison_player, (SU | ADMIN), 0, 1, 0, SUPERc},
{"jetlag", set_time_delay, 0, 0, 1, 0, (SYSc|MISCc)},
{"join", join, 0, 0, 1, 0, MOVEc},
{0, 0, 0, 0, 0, 0, 0},
{"key", key, LIST, 0, 1, 0, LISTc},
{0, 0, 0, 0, 0, 0},
{"l", look, 0, 0, 1, 0, (ROOMc|INFOc)},
{"lad", list_admins, (LOWER_ADMIN|ADMIN|TESTCHAR), 0, 1, 0, ADMINc},
{"lag", add_lag, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"leave", go_main, 0, 0, 1, 0, MOVEc},
{"libcopy", library_copy, BASE, 0, 1, 0, MISCc},
{"libexam", library_examine, BASE, 0, 1, 0, MISCc},
{"liblist", library_list, BASE, 0, 1, 0, MISCc},
{"linewrap", set_term_width, 0, 0, 1, 0, SYSc},
{"list", view_list, LIST, 0, 1, 0, LISTc},
{"list_builders", list_builders, 0, 0, 1, 0, ITEMc},
{"list_gits", listgits, (PSU|SU), 0, 1, 0, SUPERc},
{"list_obj", view_store, BASE, 0, 1, 0, ITEMc},
{"list_objects", view_store, BASE, 0, 1, 0, ITEMc},
{"list_min", list_ministers, 0, 0, 1, 0, INFOc},
{"list_new", lnew, (PSU|SU), 0, 1, 0, SUPERc},
{"list_notes", list_notes, ADMIN, 0, 1, 0, ADMINc},
{"list_res", view_saved_lists, (PSU|SU|ADMIN), 0, 1, 0, SUPERc},
{"list_spods", list_spods, 0, 0, 1, 0, INFOc},
{"list_su", lsu, 0, 0, 1, 0, INFOc},
{"list_url", view_player_url, 0, 0, 1, 0, INFOc},
{"login_fwho", toggle_friend_inform, LIST, 0, 1, 0, INVISc},
{"loginmsg", set_logonmsg, BASE, 0, 1, 0, INVISc},
{"login", define_logon_macro, BASE, 0, 1, 0, INVISc},
{"logon", define_logon_macro, BASE, 0, 1, 0, INVISc},
{"loginmsg", set_logonmsg, BASE, 0, 1, 0, INVISc},
{"logoutmsg", set_logoffmsg, BASE, 0, 1, 0, INVISc},
{"logoff", define_logoff_macro, BASE, 0, 1, 0, INVISc},
{"logoffmsg", set_logoffmsg, BASE, 0, 1, 0, DESCc},
{"logon_fwho", toggle_friend_inform, LIST, 0, 1, 0, LISTc},
{"logonmsg", set_logonmsg, BASE, 0, 1, 0, DESCc},
{"logout", define_logoff_macro, BASE, 0, 1, 0, INVISc},
{"logoutmsg", set_logoffmsg, BASE, 0, 1, 0, INVISc},
/*{"list_all_notes", list_all_notes, ADMIN, 0, 1, 0, ADMINc}, */
{"lock", room_lock, 0, 0, 1, 0, (ROOMc)},
{"look", look, 0, 0, 1, 0, (ROOMc|INFOc)},
{"lsa", view_alias, BASE, 0, 1, 0, MISCc},
{"lsb", list_builders, 0, 0, 1, 0, ITEMc},
{"lsc", channellist, 0, 0, 1, 0, INFOc},
{"lsg", listgits, (PSU|SU), 0, 1, 0, SUPERc},
{"lsi", view_ip, (SU | ADMIN), 0, 1, 0, SUPERc},
{"lsm", list_ministers, 0, 0, 1, 0, INFOc},
{"lsn", lnew, (PSU|SU), 0, 1, 0, SUPERc},
{"lso", view_store, BASE, 0, 1, 0, ITEMc},
{"lsp", list_spods, 0, 0, 1, 0, INFOc},
{"lsr", view_saved_lists, (SU | ADMIN), 0, 1, 0, SUPERc},
{"lss", comments, 0, 0, 1, 0, (INFOc|MISCc)},
{"lst", listdumb, (PSU|SU), 0, 1, 0, SUPERc},
{"lsu", lsu, 0, 0, 1, 0, INFOc},
{"lsw", view_player_url, 0, 0, 1, 0, INFOc},
{0, 0, 0, 0, 0, 0},
{"madefrom", set_made_from, BASE, 0, 1, 0, DESCc},
{"made_from", set_made_from, BASE, 0, 1, 0, INVISc},
{"mail", mail_command, MAIL, 0, 1, 0, MISCc},
{"mailblock", list_mailblock, LIST, 0, 1, 0, LISTc},
{"main", go_main, 0, 0, 1, 0, MOVEc},
/* {"make", make_new_character, ADMIN, 0, 1, 0, ADMINc}, */
/*{"malloc", show_malloc, ( LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc}, */
{"marry", marry, 0, 0, 1, 0, INVISc},
{"medit", marry_edit, ADMIN, 0, 1, 0, ADMINc},
{"minister", minister, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"mindscape", go_home, BUILD, HOUSE, 1, 0, MOVEc},
{"mindseye", mindseye, BUILD, 0, 1, 0, (INFOc|ROOMc)},
{"mode", mode, (PSU|SU|ADMIN), 0, 1, 0, SUPERc},
{"motd", motd, 0, 0, 1, 0, INFOc},
{0, 0, 0, 0, 0, 0, 0},
{"netstat", netstat, ADMIN, 0, 1, 0, ADMINc},
{"new", new, 0, 0, 1, 0, INFOc},
{"newbies", close_to_newbies, ASU, 0, 1, 0, SUPERc},
{"newbie_ban", nban, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"news", news_command, 0, 0, 1, 0, MISCc},
{"nobachelor", hide_bachelor_status, 0, 0, 1, 0, MISCc},
{"nobeep", block_beeps, 0, 0, 1, 0, SYSc},
{"noblink", block_blinks, 0, 0, 1, 0, MISCc},
{"nobops", toggle_no_bops, BASE, 0, 1, 0, ITEMc},
{"noeprefix", ignoreemoteprefix, 0, 0, 1, 0, SYSc},
{"nofriend", list_nofaccess, LIST, 0, 1, 0, LISTc},
{"no_games", toggle_noprs, 0, 0, 1, 0, INVISc},
{"nogames", toggle_noprs, 0, 0, 1, 0, INVISc},
{"nogift", toggle_no_gift, BASE, 0, 1, 0, ITEMc},
{"noisy", noisy, LIST, 0, 1, 0, LISTc},
{"nomsg", no_msgs, SU, 0, 1, 0, SUPERc},
{"nopager", nopager, 0, 0, 1, 0, SYSc},
{"no_prs", toggle_noprs, 0, 0, 1, 0, INVISc},
{"noprs", toggle_noprs, 0, 0, 1, 0, MISCc},
{"noprefix", ignoreprefix, 0, 0, 1, 0, SYSc},
{"no_propose", nopropose, 0, 0, 1, 0, MISCc},
{"no_proposals", nopropose, 0, 0, 1, 0, INVISc},
{"nuke", nuke_player, (ASU | ADMIN), 0, 1, 0, SUPERc},
{0, 0, 0, 0, 0, 0, 0},
{"off_duty", block_su, (PSU|SU), 0, 1, 0, SUPERc},
{"off_lsu", off_lsu, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"on_duty", on_duty, (PSU|SU), 0, 1, 0, SUPERc},
{"on_lsu", on_lsu, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"oreply", echoreply, ECHO_PRIV, 0, 1, 0, COMMc},
{0, 0, 0, 0, 0, 0},
{"passwd", change_password, 0, 0, 1, 0, INVISc},
{"password", change_password, 0, 0, 1, 0, MISCc},
{"pemote", pemote, 0, 0, 1, 0, COMMc},
{"pf", premote_friends, LIST, 0, 1, 0, COMMc},
{"pinfo", pinfo_command, 0, 0, 1, 0, INFOc},
{"plan", set_plan, BASE, 0, 1, 0, DESCc},
{"play", play_wif_item, BASE, 0, 1, 0, ITEMc},
{"po", premote_others_friends, 0, 0, 1, 0, COMMc},
{"prefix", set_pretitle, BASE, 0, 1, 0, DESCc},
{"premote", premote, 0, 0, 1, 0, COMMc},
{"preply", preply, 0, 0, 1, 0, COMMc},
{"prompt", set_prompt, 0, 0, 1, 0, MISCc},
{"propose", net_propose, BASE, 0, 1, 0, MISCc},
{"privs", privs, BASE, 0, 1, 0, INFOc},
#ifdef PC
{"pseudo", psuedo_person, 0, 0, 1, 0, MISCc},
#endif
{"potty", go_colony, 0, 0, 1, 0, MOVEc},
{"prs", paper_rock_scissors, 0, 0, 1, 0, MISCc},
{"pstats", player_stats, (PSU|SU), 0, 1, 0, SUPERc},
{"public", public_com, 0, 0, 1, 0, INVISc},
{"pyemote", pemote_shout, 0, 0, 1, 0, COMMc},
{0, 0, 0, 0, 0, 0, 0},
{"quiet", go_quiet, 0, 0, 1, 0, MISCc},
{"quit", quit, 0, 0, 1, 0, MISCc},
{"qwho", qwho_old, 0, 0, 1, 0, (INFOc|LISTc)},
{0, 0, 0, 0, 0, 0, 0},
{"re", repeat_mistell, 0, 0, 1, 0, COMMc},
{"recap", recap, 0, 0, 1, 0, DESCc},
{"recho", recho, ECHO_PRIV, 0, 1, 0, COMMc},
{"recon", define_recon_macro, BASE, 0, 1, 0, MISCc},
{"recount", recount_news, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"recount_snews", recount_snews, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"redtape", redtape, SU, 0, 1, 0, SUPERc},
{"reject", reject, BASE, 0, 1, 0, MISCc},
{"relink", relink_note, ADMIN, 0, 1, 0, ADMINc},
{"remote", remote, 0, 0, 1, 0, COMMc},
{"remove", remove_privs, (ADMIN|HCADMIN), 0, 1, 0, ADMINc},
{"rename", rename_player, (SU | ADMIN), 0, 1, 0, SUPERc},
{"repeat", repeat_mistell, 0, 0, 1, 0, COMMc},
{"reply", reply, 0, 0, 1, 0, COMMc},
{"reportto", reportto, 0, 0, 1, 0, MISCc},
{"res", resident, (PSU|SU), 0, 1, 0, SUPERc},
{"res_count", res_count, 0, 0, 1, 0, INFOc},
{"reset_idle", reset_total_idle, ADMIN, 0, 1, 0, ADMINc},
{"reset_session", reset_session, SU, 0, 1, 0, SUPERc},
{"reset_sneeze", reset_sneeze, (SU | ADMIN), 0, 1, 0, SUPERc},
{"resident", resident, (PSU|SU), 0, 1, 0, SUPERc},
{"ressies", close_to_ressies, ADMIN, 0, 1, 0, ADMINc},
{"restore", restore_files, ADMIN, 0, 1, 0, ADMINc},
{"review", view_review, 0, 0, 1, 0, MISCc},
{"rf", remote_friends, LIST, 0, 1, 0, COMMc},
{"rlist", reset_list, LIST, 0, 1, 0, LISTc},
{"reload", reload, ( LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc},
{"rm_list", remove_from_others_list, LIST, 0, 1, 0, LISTc},
{"rm_move", remove_move, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"rm_note", dest_note, ADMIN, 0, 1, 0, ADMINc},
{"rm_shout", remove_shout, (SU | ADMIN), 0, 1, 0, SUPERc},
{"rm_sing", remove_sing, (SU | ADMIN), 0, 1, 0, SUPERc},
{"ro", remote_others_friends, 0, 0, 1, 0, COMMc},
{"room", room_command, BUILD, 0, 1, 0, ROOMc},
{"rpt", reportto, 0, 0, 1, 0, INVISc},
{"rsing", rsing, 0, 0, 1, 0, COMMc},
{"rt", remote_think, 0, 0, 1, 0, COMMc},
{"rtf", rthink_friends, LIST, 0, 1, 0, COMMc},
{"rto", rt_others_friends, 0, 0, 1, 0, COMMc},
{"rthink", remote_think, 0, 0, 1, 0, COMMc},
{0, 0, 0, 0, 0, 0, 0},
{"s\'", su, PSU, FOREST_STYLE_CHAN, 0, 0, SUPERc},
{"s\"", su, PSU, FOREST_STYLE_CHAN, 0, 0, INVISc},
{"s;", suemote, PSU, FOREST_STYLE_CHAN, 0, 0, SUPERc},
{"s:", suemote, PSU, FOREST_STYLE_CHAN, 0, 0, INVISc},
{"s~", suthink, PSU, FOREST_STYLE_CHAN, 0, 0, SUPERc},
{"s)", susing, PSU, FOREST_STYLE_CHAN, 0, 0, INVISc},
{"s(", susing, PSU, FOREST_STYLE_CHAN, 0, 0, SUPERc},
{"save", do_save, BASE, 0, 1, 0, MISCc},
{"say", say, 0, 0, 1, 0, COMMc},
{"scare", fake_nuke_player, ASU, 0, 1, 0, SUPERc},
{"screenlock", set_screenlock, 0, 0, 1, 0, MISCc},
{"script", script, (SCRIPT), 0, 1, 0, MISCc},
{"se", suemote, PSU, REGULAR_STYLE_CHAN, 1, 0, SUPERc},
{"seeecho", see_echo, 0, 0, 1, 0, SYSc},
{"seesess", view_session, 0, 0, 1, 0, (INFOc|MISCc)},
{"seetitle", set_yes_session, 0, 0, 1, 0, SYSc},
{"sell", sell_item, BASE, 0, 1, 0, ITEMc},
{"session", set_session, SESSION, 0, 1, 0, MISCc},
{"setbit", item_set_classes, BASE, 0, 1, 0, ITEMc},
{"setval", sitem_set_value, BASE, 0, 1, 0, ITEMc},
{"sf", sing_friends, LIST, 0, 1, 0, COMMc},
{"shareroom", list_shareroom, LIST, 0, 1, 0, LISTc},
{"shelp", super_help, (PSU|SU), 0, 1, 0, SUPERc},
{"shout", shout, 0, 0, 1, 0, COMMc},
{"show", toggle_tags, 0, 0, 1, 0, INFOc},
{"showexits", show_exits, BASE, 0, 1, 0, (INFOc|ROOMc)},
{"shutdown", pulldown, SU, 0, 1, 0, SUPERc},
{"sing", sing, 0, 0, 1, 0, COMMc},
{"singblock", toggle_singblock, 0, 0, 1, 0, SYSc},
{"site", same_site, (TRACE | SU | PSU), 0, 1, 0, SUPERc},
{"site_ban", sban, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"slist", set_list, LIST, 0, 1, 0, LISTc},
{"smile", social_smile, BASE, 0, 1, 0, SOCIALc},
{"sneeze", sneeze, (SU | ADMIN), 0, 1, 0, SUPERc},
{"snews", snews_command, (PSU|SU), 0, 1, 0, SUPERc},
{"snog", social_snog, BASE, 0, 1, 0, SOCIALc},
{"so", rsing_others_friends, 0, 0, 1, 0, COMMc},
{"splat", splat_player, SU, 0, 1, 0, SUPERc},
{"spod_class", set_spod_class, SPOD, 0, 1, 0, DESCc},
{"spods", spodlist_view, 0, 0, 1, 0, INFOc},
/* {"spost", superpost, SU, 0, 1, 0, SUPERc}, */
{"spost", post_snews, MAIL, (PSU|SU), 1, 0, SUPERc},
{"sreply", sreply, 0, 0, 1, 0, COMMc},
{"ss", susing, PSU, REGULAR_STYLE_CHAN, 1, 0, SUPERc},
{"st", suthink, PSU, REGULAR_STYLE_CHAN, 1, 0, SUPERc},
{"su", su, PSU, REGULAR_STYLE_CHAN, 1, 0, SUPERc},
{"su_hi", su_hilited, PSU, 0, 1, 0, SUPERc},
{"su:", suemote, PSU, REGULAR_STYLE_CHAN, 1, 0, SUPERc},
{"suicide", suicide, BASE, 0, 1, 0, MISCc},
{"sumotd", sumotd, (PSU | SU | ADMIN), 0, 1, 0, SUPERc},
{"suwall", wall_to_supers, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"swho", swho, 0, 0, 1, 0, INFOc},
#ifdef PC
{"switch", switch_person, 0, 0, 1, 0, MISCc},
#endif
{"sync", sync_files, (LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc},
{"syncall", sync_all_by_user, (LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc},
{"syscolor", toggle_system_color, 0, 0, 1, 0, SYSc},
{"syscolour", toggle_system_color, 0, 0, 1, 0, INVISc},
{0, 0, 0, 0, 0, 0, 0},
{"tell", tell, 0, 0, 1, 0, COMMc},
{"tel", tell, 0, 0, 1, 0, (INVISc|COMMc)},
{"tf", tell_friends, LIST, 0, 1, 0, COMMc},
{"think", newthink, 0, 0, 1, 0, COMMc},
{"tlist", toggle_list, LIST, 0, 1, 0, LISTc},
{"time", view_time, 0, 0, 1, 0, (INFOc|MISCc)},
{"title", set_title, 0, 0, 1, 0, DESCc},
{"to", tell_others_friends, 0, 0, 1, 0, COMMc},
{"toggle", toggle_email_site_flags, BASE, 0, 1, 0, SYSc},
{"toggle_chan", switch_channel_style, PSU, 0, 1, 0, SUPERc},
{"trace", trace, (TRACE | SU | ADMIN), 0, 1, 0, SUPERc},
{"trans", trans_fn, 0, 0, 1, 0, MOVEc},
{"treply", treply, 0, 0, 1, 0, COMMc},
{"twall", thinkin_wall, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"twho", twho, 0, 0, 1, 0, INFOc},
{0, 0, 0, 0, 0, 0, 0},
/* {"unlink",unlink_from_room,ADMIN,1,0}, */
{"unbanish", unbanish, (ASU | ADMIN), 0, 1, 0, SUPERc},
{"unconverse", unconverse, (SU | ADMIN), 0, 1, 0, SUPERc},
{"undefine", undefine_alias, BASE, 0, 1, 0, MISCc},
{"undumb", undumb, (DUMB | SU | ADMIN), 0, 1, 0, (MISCc|SUPERc)},
{"ungag", delete_gag, 0, 0, 1, 0, MISCc},
{"ungit", clear_git, SU, 0, 1, 0, SUPERc},
{"unjail", unjail, (SU | ADMIN), 0, 1, 0, SUPERc},
{"unsplat", unsplat, (ASU | ADMIN), 0, 1, 0, SUPERc},
{"url", set_alt_email, BASE, 0, 1, 0, DESCc},
{0, 0, 0, 0, 0, 0, 0},
{"val", view_others_aliases, LOWER_ADMIN, 0, 1, 0, ADMINc},
{"validate", resident, ASU, 0, 1, 0, SUPERc},
{"validate_email", validate_email, (ASU | ADMIN), 0, 1, 0, SUPERc},
{"version", pg_version, 0, 0, 1, 0, MISCc},
{"view_note", view_note, ADMIN, 0, 1, 0, ADMINc},
{"view_flags", view_people_and_flags, ADMIN, 0, 1, 0, ADMINc},
{"visit", visit, 0, 0, 1, 0, MOVEc},
{"vlist", view_others_list, (LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc},
{"vlog", vlog, (LOWER_ADMIN|ADMIN), 0, 1, 0, ADMINc},
{0, 0, 0, 0, 0, 0, 0},
{"w", who, 0, 0, 1, 0, INFOc},
{"wake", wake, 0, 0, 1, 0, MISCc},
{"wall", wall, (LOWER_ADMIN | ADMIN), 0, 1, 0, ADMINc},
{"warn", warn, (WARN | SU), 0, 1, 0, SUPERc},
{"wear", wear_item, BASE, 0, 1, 0, ITEMc},
{"weild", weild_item, BASE, 0, 1, 0, ITEMc},
{"where", where, 0, 0, 1, 0, INFOc},
{"whisper", whisper, 0, 0, 1, 0, COMMc},
{"who", who, 0, 0, 1, 0, INFOc},
{"whois", see_player_whois, BASE, 0, 1, 0, INFOc},
{"with", with, 0, 0, 1, 0, INFOc},
{"wordwrap", set_word_wrap, 0, 0, 1, 0, SYSc},
{0, 0, 0, 0, 0, 0, 0},
{"x", newexamine, 0, 0, 1, 0, INFOc},
{"xref", xref_name, (PSU|SU), 0, 1, 0, SUPERc},
{0, 0, 0, 0, 0, 0, 0},
{"y", su_examine, (PSU|SU), 0, 1, 0, SUPERc},
{"yecho", echo_shout, ECHO_PRIV, 0, 1, 0, COMMc},
{"yell", beep_tell, BASE, 0, 1, 0, COMMc},
{"yemote", emote_shout, 0, 0, 1, 0, COMMc},
{"yf", beepat_friends, LIST, 0, 1, 0, COMMc},
{"yo", beepat_others_friends, BASE, 0, 1, 0, COMMc},
{"yreply", yreply, 0, 0, 1, 0, COMMc},
{"ysing", sing_shout, 0, 0, 1, 0, COMMc},
{"ythink", think_shout, 0, 0, 1, 0, COMMc},
{"yoyo", yoyo, (SU | ADMIN), 0, 1, 0, SUPERc},
{0, 0, 0, 0, 0, 0, 0},
{"z", su_stats, ADMIN, 0, 1, 0, ADMINc},
{0, 0, 0, 0, 0, 0, 0}
};
struct command *coms[27];