Switch to edit mode.
Name(s): @rmalias1: "Syntax: @rmalias <alias>[,...,<alias>] from <object>"
2: " @rmalias <alias>[,...,<alias>] from <object>:<verb>"
3: ""
4: "The first form is used to remove aliases from an object. If the object is a valid player, space and commas will be assumed to be separations between unwanted aliases. Otherwise, only commas will be assumed to be separations."
5: "[5/10/93 Nosredna: flushed above is_player feature"
6: "Note that @rmalias will not affect the object's name, only its aliases."
7: ""
8: "The second form is for use by programmers, to remove aliases from a verb they own. All spaces and commas are assumed to be separations between unwanted aliases."
9: if (player != this)
10: return
11: endif
12: set_task_perms(player)
13: spec = $code_utils:parse_verbref(iobjstr)
14: if (spec)
15: object = player:my_match_object(spec[1])
16: if (!$command_utils:object_match_failed(object, spec[1]))
17: vname = spec[2]
18: try
19: info = verb_info(object, vname)
20: except (E_VERBNF)
21: return player:notify("That object does not define that verb.")
22: except e (ANY)
23: return player:tell(e)
24: endtry
25: old_aliases = $string_utils:explode(info[3])
26: not_used = {}
27: for alias in (bad_aliases = $list_utils:remove_duplicates($string_utils:explode(strsub(dobjstr, ",", " "))))
28: if (!(alias in old_aliases))
29: not_used = {@not_used, alias}
30: bad_aliases = setremove(bad_aliases, alias)
31: else
32: old_aliases = setremove(old_aliases, alias)
33: endif
34: endfor
35: if (not_used)
36: player:notify(tostr(object.name, "(", object, "):", vname, " does not have the alias", length(not_used) > 1 ? "es" | "", " ", $string_utils:english_list(not_used), "."))
37: endif
38: if (bad_aliases && old_aliases)
39: aliases = $string_utils:from_list(old_aliases, " ")
40: info[3] = aliases
41: result = set_verb_info(object, vname, info)
42: if (typeof(result) == $ERR)
43: player:notify(tostr(result))
44: else
45: player:notify(tostr("Alias", length(bad_aliases) > 1 ? "es" | "", " ", $string_utils:english_list(bad_aliases), " removed from verb ", $string_utils:nn(object), ":", vname))
46: player:notify(tostr("Verbname is now ", $string_utils:nn(object), ":\"", aliases, "\""))
47: endif
48: elseif (!old_aliases)
49: player:notify("You have to leave a verb with at least one alias.")
50: endif
51: endif
52: else
53: object = player:my_match_object(iobjstr)
54: if (!$command_utils:object_match_failed(object, iobjstr))
55: old_aliases = object.aliases
56: not_used = {}
57: for alias in (bad_aliases = $list_utils:remove_duplicates($list_utils:map_arg($string_utils, "trim", $string_utils:explode(dobjstr, ","))))
58: "removed is_player(object) ? strsub(dobjstr, \" \", \",\") | --Nosredna"
59: if (!(alias in old_aliases))
60: not_used = {@not_used, alias}
61: bad_aliases = setremove(bad_aliases, alias)
62: else
63: old_aliases = setremove(old_aliases, alias)
64: endif
65: endfor
66: if (not_used)
67: player:notify(tostr(object.name, "(", object, ") does not have the alias", length(not_used) > 1 ? "es" | "", " ", $string_utils:english_list(not_used), "."))
68: endif
69: if (bad_aliases)
70: try
71: r = object:set_aliases(old_aliases)
72: player:notify(tostr("Alias", length(bad_aliases) > 1 ? "es" | "", " ", $string_utils:english_list(bad_aliases), " removed from ", object.name, "(", object, ")."))
73: player:notify(tostr("Aliases for ", object.name, "(", object, ") are now ", $string_utils:from_value(old_aliases, 1)))
74: except (E_INVARG)
75: player:notify("That particular name change not allowed (see help @rename or help @rmalias).")
76: except (E_NACC)
77: player:notify("Oops. You can't update that object's aliases right now; try again in a few minutes.")
78: except e (ANY)
79: player:notify(tostr(e))
80: endtry
81: endif
82: endif
83: endif
84: "Last modified by Dax (#789) on Thu May 5 17:15:48 2005 MDT."