/*
* Original by Drizzt, fixed reply format Leto@Earth, 092495
*/
#include <commands.h>
#include <net/i3.h>
/* START WHO ROUTINES */
string send_who_req(string mud, string from){
if(base_name(previous_object()) != CMD_WHO) return "INVALID";
if(mud == "global") {
I3_DAEMON->send_packet(PRT_WHO_REQ, from, 0, 0, ({ }));
return "Global who request sent!\n";
}
mud = I3_DAEMON->query_network_name(mud);
if(!mud) return "Mud not found in I3 Database!\n";
I3_DAEMON->send_packet(PRT_WHO_REQ, from, mud, 0, ({ }));
return "Who Request sent to "+mud+"\n";
}
void process_who_reply(mixed *info){
object ob;
int i;
mixed *data;
if(base_name(previous_object()) != I3_DAEMON) return;
if(sizeof(info) != SIZ_WHO_REPLY) return;
if(!(ob = find_living(info[5]))) return;
/* Put your own little thingy in here, whatever you like */
data = info[6];
if(!sizeof(data)){
message("I3","\n___---==[ Nobody logged into "+info[2]+" ]==---___\n",ob);
return;
}
message("I3","\n___---==[ Who Reply From: "+info[2]+" ]==---___\n",ob);
message("I3",sprintf("%-15s %-20s %s\n", "Name", "Idle","Extra"),ob);
message("I3",sprintf("%-15s %-20s %s\n", "----", "----","-----"),ob);
for(i=0;i<sizeof(data);i++){
message("I3",sprintf("%-15s %-20s %s\n", capitalize(data[i][0]), format_time(data[i][1]), data[i][2]),ob);
}
}
void process_who_req(mixed *info){
object *obs;
mixed packet;
int i;
if(base_name(previous_object()) != I3_DAEMON) return;
if(sizeof(info) != SIZ_WHO_REQ) return;
packet = ({ });
obs = users();
//for(i=0;i<sizeof(obs);i++){
//packet += ({ ({ ({ obs[i]->query("cap_name"), query_idle(obs[i]), query_ip_name(obs[i]) }) }) });
//}
packet = map(filter(users(),(: !((int)$1->query("invisible")) :)),
(: ({ (string)$1->query("cap_name"),query_idle($1),""}) :));
I3_DAEMON->send_packet(PRT_WHO_REPLY,0 , info[2], info[3], ({ packet }) );
}
/* END WHO ROUTINES */