parent $user_interfaces
object $messages_ui
var $root dbref 'messages_ui
var $root child_index 0
var $root fertile 1
var $root manager $messages_ui
var $root owned [$messages_ui]
var $root owners [$]
var $root writable []
var $root readable ['parameters, 'methods, 'code]
var $old_command_environment verb_cache #[]
var $old_command_environment command_cache [["@mesg *", 'mesg_cmd]]
var $old_command_environment shortcuts_cache []
var $has_commands commands [["@mesg *", 'mesg_cmd]]
var $has_commands shortcuts []
var $root inited 1
method mesg_cmd
arg com, args;
var style, pos, mesg, obj, name, definer, matches, m, o, n, output, m, me;
pos = " is " in args;
if (pos) {
style = 'set;
mesg = substr(args, pos + 4);
args = substr(args, 1, pos - 1);
} else {
style = 'get;
mesg = "";
}
pos = "on " in args;
if (pos) {
obj = .match_env_nice(substr(args, pos + 3));
args = substr(args, 1, pos - 1);
} else {
obj = this();
}
if (!(obj.has_ancestor($has_messages))) {
.tell((obj.dbref()) + " does not have messages.");
return;
}
pos = ":" in args;
if (pos) {
definer = .match_env_nice(substr(args, pos - 1));
name = substr(args, pos + 1);
} else {
name = args;
}
if (style == 'set) {
obj.set_message_part(name, definer, mesg);
} else {
output = .parse_messages(obj.messages(), name);
.tell(output);
return;
}
.
method parse_messages
arg message, [mask];
var output, definer, m, p, s;
output = [];
mask = [@mask, ""][1];
for definer in (dict_keys(message)) {
output = [@output, (((definer.name()) + " (") + (definer.dbref())) + "):"];
for m in (dict_keys(message[definer])) {
// .debug(.message(m, definer));
p = (.message(m, definer)).uncompile();
if (type(p) == 'dictionary) {
for s in (dict_keys(p)) {
if (match_begin((m + ".") + s, mask))
output = [@output, [(((" " + m) + ".") + s) + ": "].join(p[s])];
}
} else if (match_begin(m, mask)) {
output = [@output, [(" " + m) + ": "].join(p)];
}
}
}
return output;
.