@@ -26,6 +26,53 @@ object PLAYER
2626 player:tell(look_d:into_event());
2727 endverb
2828
29+ verb "i*nventory" (any none none) owner: HACKER flags: "rxd"
30+ "Display player's inventory using list format";
31+ caller != player && return E_PERM;
32+ items = this.contents;
33+ !items && return this:tell($event:mk_inventory(player, "You are not carrying anything."));
34+ "Get item names";
35+ item_names = {};
36+ for item in (items)
37+ item_names = {@item_names, item:name()};
38+ endfor
39+ "Create and display the inventory list";
40+ list_obj = $list:mk(item_names);
41+ title_obj = $title:mk("Inventory");
42+ content = $block:mk(title_obj, list_obj);
43+ event = $event:mk_inventory(player, content);
44+ this:tell(event);
45+ endverb
46+
47+ verb "who @who" (any any any) owner: ARCH_WIZARD flags: "rxd"
48+ "Display list of connected players using table format";
49+ caller != player && return E_PERM;
50+ players = connected_players();
51+ !players && return this:tell($event:mk_not_found(this, "No players are currently connected."));
52+ "Build table data";
53+ headers = {"Name", "Idle", "Connected", "Location"};
54+ rows = {};
55+ for p in (players)
56+ if (typeof(idle_time = idle_seconds(p)) != ERR)
57+ name = p:name();
58+ idle_str = idle_time:format_time_seconds();
59+ conn_str = connected_seconds(p):format_time_seconds();
60+ location_name = valid(p.location) ? p.location:name() | "(nowhere)";
61+ rows = {@rows, {name, idle_str, conn_str, location_name}};
62+ endif
63+ endfor
64+ "Create and display the table";
65+ if (rows)
66+ table_obj = $table:mk(headers, rows);
67+ title_obj = $title:mk("Who's Online");
68+ content = $block:mk(title_obj, table_obj);
69+ event = $event:mk_who(player, content);
70+ this:tell(event);
71+ else
72+ this:tell($event:mk_who(this, "No connected players found."));
73+ endif
74+ endverb
75+
2976 verb "msg_no_dobj_match msg_no_iobj_match" (this none this) owner: HACKER flags: "rxd"
3077 return $event:mk_not_found(player, "I don't see that here.");
3178 endverb
@@ -106,33 +153,4 @@ object PLAYER
106153 verb mk_connected_event (this none this) owner: HACKER flags: "rxd"
107154 return $event:mk_say(this, $sub:nc(), " ", $sub:self_alt("have", "has"), " disconnected.");
108155 endverb
109-
110- verb "who @who" (any any any) owner: ARCH_WIZARD flags: "rxd"
111- "Display list of connected players using table format";
112- caller != player && return E_PERM;
113- players = connected_players();
114- !players && return this:tell($event:mk_not_found(this, "No players are currently connected."));
115- "Build table data";
116- headers = {"Name", "Idle", "Connected", "Location"};
117- rows = {};
118- for p in (players)
119- if (typeof(idle_time = idle_seconds(p)) != ERR)
120- name = p:name();
121- idle_str = idle_time:format_time_seconds();
122- conn_str = connected_seconds(p):format_time_seconds();
123- location_name = valid(p.location) ? p.location:name() | "(nowhere)";
124- rows = {@rows, {name, idle_str, conn_str, location_name}};
125- endif
126- endfor
127- "Create and display the table";
128- if (rows)
129- table_obj = $table:mk(headers, rows);
130- title_obj = $title:mk("Who's Online");
131- content = $block:mk(title_obj, table_obj);
132- event = $event:mk_who(player, content);
133- this:tell(event);
134- else
135- this:tell($event:mk_not_found(this, "No connected players found."));
136- endif
137- endverb
138156endobject
0 commit comments