34 lines
1.3 KiB
C
34 lines
1.3 KiB
C
// This file written mostly by Tim Johnson (Tim@TimMUD)
|
|
|
|
// broadcast the chanlist-reply when a channel just now got changed...
|
|
varargs void broadcast_chanlist(string channame, string thismud){
|
|
string name; // channel name in first loop, then mud name in later loop
|
|
string *mudses = keys(connected_muds);
|
|
mapping out=([]); // only used if whole chanlist is sent
|
|
if(thismud && thismud != "" && connected_muds[thismud]) mudses = ({ thismud });
|
|
trr("<><><><><><><><><><>");
|
|
trr("broadcasting chanlist to "+identify(mudses));
|
|
trr("<><><><><><><><><><>");
|
|
#ifdef SEND_WHOLE_CHANLIST
|
|
//trr("broadcasting chanlist to let them know about "+channame);
|
|
foreach(name in keys(channels)){
|
|
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 mudses){
|
|
trr("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
|
|
}));
|
|
}
|
|
//trr("done with: "+name);
|
|
}
|
|
}
|