MCP package registry #312

Parent #1Owner #29Flags readSource hellcore/hellcore.db

Aliases: MCP package registry, registry

8 verbs · 13 properties · 0 children

Verbs

VerbSpecFlagsDefinerLines
add_packagethis none thisrxd#31211
remove_packagethis none thisrxd#3129
match_packagethis none thisrxd#3126
package_namethis none thisrxd#3126
packagesthis none thisrxd#3121
init_for_module init_for_corethis none thisrxd#3129
nominate_for_corethis none thisrxd#3126
@add-package @remove-packageany at/to thisrd#31223

Properties

PropertyDefinerFlagsOwnerValue
package_names#312r#29{"mcp-negotiate", "mcp-cord", "dns-com-awns-status", "dns-com-vmoo-client", "dns-org-hellmoo-status", "dns-nl-icecrew-serverinfo"}
packages#312r#29{#451510, #214869, #18678, #522013, #394474, #176127}
core_package_names#312r#29{"mcp-negotiate", "mcp-cord"}
aliases#1rc#29{"MCP package registry", "registry"}
description#1rc#29<clear>
object_size#1r#29{5092, 1298434676}
hidden_verbs#1rc#29<clear>
phelp_msg#1rc#29<clear>
weight#1rc#29<clear>
owner_verbs#1rc#29<clear>
plural_name#1rc#29<clear>
client_image#1rc#29<clear>
listening#1rc#29<clear>

Ancestry

Ancestors (nearest first): #1 root

Children: none

Call graph

calls n312_0 #312:add_package n42_0 #42:controls n312_0->n42_0 n312_1 #312:remove_package n312_1->n42_0 n312_4 #312:packages n47_62 #47:make_alist n312_4->n47_62 n312_5 #312:init_for_module n312_5->n42_0 n312_5->n312_1 n312_6 #312:nominate_for_core n312_2 #312:match_package n312_6->n312_2 n312_7 #312:@add-package n312_7->n312_0 n312_7->n42_0 n312_7->n312_1 n107_43 #107:tell n312_7->n107_43 n48_0 #48:object_match_failed n312_7->n48_0 n45_5 #45:isa n312_7->n45_5

Source

add_package

Spec this none thisFlags rxdOwner #29Definer #312

Referenced by

Source

1{name, package} = args;
2if ((caller == this) || $perm_utils:controls(caller_perms(), this))
3if (name in this.package_names)
4raise(E_INVARG, "Another package with that name already exists");
5elseif (package in this.packages)
6raise(E_INVARG, "That package already is registered under a different name.");
7else
8this.package_names = {@this.package_names, name};
9this.packages = {@this.packages, package};
10endif
11endif

remove_package

Spec this none thisFlags rxdOwner #29Definer #312

Referenced by

Source

1{name} = args;
2if ((caller == this) || $perm_utils:controls(caller_perms(), this))
3if (idx = name in this.package_names)
4this.package_names = listdelete(this.package_names, idx);
5this.packages = listdelete(this.packages, idx);
6else
7raise(E_INVARG, "Not a defined package");
8endif
9endif

match_package

Spec this none thisFlags rxdOwner #29Definer #312

Referenced by

Source

1{name} = args;
2if (idx = name in this.package_names)
3return this.packages[idx];
4else
5return $failed_match;
6endif

package_name

Spec this none thisFlags rxdOwner #29Definer #312

Referenced by

none

Source

1{package} = args;
2if (idx = package in this.packages)
3return this.package_names[idx];
4else
5return "";
6endif

packages

Spec this none thisFlags rxdOwner #29Definer #312

Referenced by

none

Source

1return $list_utils:make_alist({this.package_names, this.packages});

init_for_module init_for_core

Spec this none thisFlags rxdOwner #29Definer #312

Referenced by

none

Source

1"Usage:  :init_for_module()";
2if (((!$__core_init_phase) && (caller != this)) && (!$perm_utils:controls(caller_perms(), this)))
3raise(E_PERM);
4endif
5for name in (this.package_names)
6if (!(name in this.core_package_names))
7this:remove_package(name);
8endif
9endfor

nominate_for_core

Spec this none thisFlags rxdOwner #29Definer #312

Referenced by

none

Source

1corenames = this.core_package_names;
2corepackages = {};
3for name in (corenames)
4corepackages = {@corepackages, this:match_package(name)};
5endfor
6return {@pass(@args), @corepackages};

@add-package @remove-package

Spec any at/to thisFlags rdOwner #29Definer #312

Referenced by

none

Source

1if (!$perm_utils:controls(player, this))
2player:tell("You don't have permission to add or remove MCP 2.1 packages.");
3elseif ($command_utils:object_match_failed(dobj, dobjstr))
4elseif (!$object_utils:isa(dobj, $mcp.package))
5player:tell(dobj.name, " is not a valid MCP 2.1 package (descendant of ", $mcp.package, ").");
6elseif (!$perm_utils:controls(player, dobj))
7player:tell("You don't control ", dobj.name, " in order to add or remove it.");
8else
9name = dobj.name;
10package = dobj;
11try
12if (verb == "@add-package")
13this:add_package(name, package);
14player:tell("Added ", package.name, ".");
15else
16this:remove_package(name);
17player:tell("Removed ", package.name, ".");
18endif
19except v (ANY)
20{code, message, value, tb} = v;
21player:tell(code, ": ", message);
22endtry
23endif