#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); } }