/* /daemon/services/who.c * from the Dead Souls LPC Library * handles the Intermud 3 who service * created by Descartes of Borg 950623 */ #define SERVICE_WHO #include <daemons.h> #include <rooms.h> void eventReceiveWhoReply(mixed *packet) { string list, *who; object ob; if( file_name(previous_object()) != INTERMUD_D ) return; if( !packet[5] || !(ob = find_player(convert_name(packet[5]))) ) return; list = "%^MAGENTA%^Remote who information from " + packet[2] + ":%^RESET%^\n"; foreach(who in packet[6]) list += who[0] + " (" + who[1] + " idle): " + who[2] +"\n"; ob->eventPrint(list); } void eventReceiveWhoRequest(mixed *packet) { mixed *msg; string ret = ""; if( file_name(previous_object()) != INTERMUD_D ) return; msg = map(filter(users(), (: (environment($1) && !((int)$1->GetInvis())) :)), (: ({ (string)$1->GetCapName(), query_idle($1), (string)$1->GetShort() }) :)); INTERMUD_D->eventWrite(({ "who-reply", 5, mud_name(), 0, packet[2], packet[3], msg })); foreach(string *entry in msg){ ret += entry[0]+", "; } //ret = truncate(ret,2); } void eventSendWhoRequest(string mud) { string who; who = (string)this_player(1)->GetKeyName(); INTERMUD_D->eventWrite(({ "who-req", 5, mud_name(), who, mud, 0 })); }