#include <network.h> private nosave string *imud_ignored; int do_block(string); int do_unblock(string); void wiz_commands() { add_command("block", "", (:do_block(0):)); add_command("block", "<word'name'>", (:do_block($4[0]):)); add_command("unblock", "<word'name'>", (:do_unblock($4[0]):)); } /* wiz_commands() */ int do_block(string str) { if (!str) { if (!sizeof(imud_ignored)) { write("Not blocking anyone.\n"); return 1; } write("Blocking "+query_multiple_short(imud_ignored)+".\n"); return 1; } if (!pointerp(imud_ignored)) imud_ignored = ({ lower_case(str) }); else imud_ignored += ({ lower_case(str) }); write("Okay, now ignoring intermud channel messages from "+str+".\n"); write("Use \"unblock\" to remove.\n"); return 1; } int do_unblock(string str) { int idx; if (!str) return notify_fail("Syntax: unblock <name>|all\n"); if (!pointerp(imud_ignored) || !sizeof(imud_ignored)) return notify_fail("You are not blocking anyone.\n"); if (str == "all") { imud_ignored = 0; write("Okay, unblocked everyone.\n"); return 1; } if ((idx = member_array(lower_case(str), imud_ignored)) == -1) return notify_fail("You are not blocking "+str+".\n"); imud_ignored = delete(imud_ignored, idx, 1); write("Okay, removed "+str+" from your blocked list.\n"); return 1; } int check_not_ignored(string who) { if (!pointerp(imud_ignored)) return 1; return member_array(lower_case(who), imud_ignored) == -1; }