rem: server_bcast_to_servers(":" + servername + " SJOIN " 
add: this.bcast_to_servers_raw(":" + servername + " SJOIN " 
context: function IRCClient_do_join(chan_name,join_key) {	chan_name = chan_name.slice(0,max_chanlen)	var uc_chan_name = chan_name.toUpperCase();	if((chan_name[0] != "#") && (chan_name[0] != "&") && !this.parent) {		this.numeric403(chan_name);		return 0;	}	if(chan_name.search(/[\x00-\x20\x2c\xa0]/)!=-1) {		if (this.local)			this.numeric(479, chan_name				+ " :Channel name contains illegal characters.");		return 0;	}	if (this.channels[uc_chan_name])		return 0;	if ((true_array_len(this.channels) >= max_user_chans) && this.local) {		this.numeric("405", chan_name + " :You have joined too many channels.");		return 0;	}	if (Channels[uc_chan_name]) {		var chan = Channels[uc_chan_name];		if (this.local) {			if ((chan.mode&CHANMODE_INVITE) && (uc_chan_name != this.invited)) {				this.numeric("473", chan.nam					+ " :Cannot join channel (+i: invite only)");				return 0;			}			if ((chan.mode&CHANMODE_LIMIT) && (true_array_len(chan.users)			     	>= chan.arg[CHANMODE_LIMIT]) ) {				this.numeric("471", chan.nam					+ " :Cannot join channel (+l: channel is full)");				return 0;			}			if ((chan.mode&CHANMODE_KEY)					&& (chan.arg[CHANMODE_KEY] != join_key)) {				this.numeric("475", chan.nam					+ " :Cannot join channel (+k: key required)");				return 0;			}			if (chan.isbanned(this.nuh) && (uc_chan_name != this.invited) ) {				this.numeric("474", Channels[chan].nam					+ " :Cannot join channel (+b: you're banned!)");				return 0;			}		}		// add to existing channel		chan.users[this.id] = this;		var str="JOIN :" + chan.nam;		if (!this.local) {			this.bcast_to_channel(chan, str, false);		} else {			this.bcast_to_channel(chan, str, true);			if (chan.topic) {				this.numeric332(chan);				this.numeric333(chan);			} else {				this.numeric331(chan);			}		}		if (chan_name[0] != "&")			server_bcast_to_servers(":" + this.nick + " SJOIN "				+ chan.created + " " + chan.nam,BAHAMUT);			server_bcast_to_servers(":" + this.nick + " JOIN "				+ chan.nam + " " + chan.created,DREAMFORGE);	} else {		// create a new channel		Channels[uc_chan_name] = new Channel(chan_name);		chan=Channels[uc_chan_name];		chan.users[this.id] = this;		chan.modelist[CHANMODE_OP][this.id] = this;		var str="JOIN :" + chan.nam;		var create_op = "";		if (this.local) {			this.originatorout(str,this);			create_op = "@";		}		if (chan_name[0] != "&") {			server_bcast_to_servers(":" + servername + " SJOIN "				+ chan.created + " " + chan.nam + " "				+ chan.chanmode() + " :" + create_op + this.nick,BAHAMUT);			server_bcast_to_servers(":" + this.nick + " JOIN "				+ chan.nam,DREAMFORGE);			if (create_op) {				server_bcast_to_servers(":" + servername + " MODE "					+ chan.nam + " +o " + this.nick + " "					+ chan.created,DREAMFORGE);			}		}	}	if (this.invited.toUpperCase() == chan.nam.toUpperCase())		this.invited = "";	this.channels[uc_chan_name] = chan;	if (!this.parent) {		this.names(chan);		this.numeric(366, chan.nam + " :End of /NAMES list.");	}	return 1; // success}
meta: 9592	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9592/0d03075d3546906690adde36a2c3275d842580d2/ircd_channel.js/clean/load/ircd_channel.js