// This file written completely by Tim Johnson (Tim@TimMUD)
// broadcast the chanlist-reply when a channel just now got changed...
static void broadcast_chanlist(string channame){
string name; // channel name in first loop, then mud name in later loop
#ifdef SEND_WHOLE_CHANLIST
mapping out=([]); // only used if whole chanlist is sent
#endif
debug("broadcasting chanlist to let them know about "+channame);
#ifdef SEND_WHOLE_CHANLIST
foreach(name in keys(channel_updates)){
if(!channels[channame])
out[name]=0;
else
out[name]=({ channels[name][1], channels[name][0] });
}
#else
if(!channels[channame])
out = ([ channame:0 ]);
else
out = ([ channame:({ channels[channame][1], channels[channame][0] }) ]);
#endif
foreach(name in keys(connected_muds)){
debug("inside loop with "+name);
if(member_array("channel", keys(mudinfo[name]["services"]))!=-1){
// only tell muds that have the "channel" service...
write_data(connected_muds[name], ({
"chanlist-reply",5,router_name,0,name,0,channel_update_counter,out
}));
}
debug("done with: "+name);
}
}