#include <commands.h>
#include <daemons.h>
#include <net/i3.h>
void send_finger_req(string from, string user, string mud){
if(base_name(previous_object()) != CMD_FINGER) return;
I3_DAEMON->send_packet(PRT_FINGER_REQ, from, mud, 0, ({ user }));
}
void process_finger_reply(mixed *info){
object ob;
if(base_name(previous_object()) != I3_DAEMON) return;
if(sizeof(info) != SIZ_FINGER_REPLY) return;
ob = find_living(info[5]);
if(!ob) return;
message("I3",sprintf("\nLogin name: %-27s In real life: %s\n",info[6]+"@"+info[2], info[8]), ob);
message("I3",sprintf("Email Address: %s\n",info[9]),ob);
if(info[11] == -1)
message("I3",sprintf("Last on %s from %s\n",info[10], info[12]), ob);
else
message("I3",sprintf("On since %s from %s\n",info[10], info[12]), ob);
if(info[11] > 60)
message("I3",sprintf("%d minutes Idle Time\n",info[11]/60), ob);
if(!info[14])
message("I3",sprintf("No Plan.\n"),ob);
else
message("I3",sprintf("Plan: %s\n", info[14]), ob);
}
void process_finger_req(mixed *info){
object ob, usr;
mixed *packet;
if(sizeof(info) != SIZ_FINGER_REQ) return;
ob = FINGER_D->restore_data(info[6]);
if(ob){
usr = find_living(info[6]);
packet = ({ ob->query("cap_name"),
"", /* No title available in Connection Object */
ob->query("real_name"),
ob->query("email"),
ctime(ob->query("last_on")),
usr ? query_idle(usr) : -1,
ob->query("ip"),
0,
(file_exists(user_path(info[6])+".plan") ? read_file(user_path(info[6])+".plan") : "No Plan") });
I3_DAEMON->send_packet(PRT_FINGER_REPLY, 0, info[2], info[3], packet);
}
}