Skip to content

Commit 2a1b4c4

Browse files
committed
Add simply inventory verb
1 parent 1b6fe73 commit 2a1b4c4

1 file changed

Lines changed: 47 additions & 29 deletions

File tree

src/player.moo

Lines changed: 47 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -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
138156
endobject

0 commit comments

Comments
 (0)