diff --git a/exec/ircd.js b/exec/ircd.js index 6cf8faf3319da05258d0cc6a71750f1a1a907f57..461bbaac2e6098b6689cf4865417d46a2b256f6c 100644 --- a/exec/ircd.js +++ b/exec/ircd.js @@ -3152,26 +3152,6 @@ function IRCClient_setusermode(modestr) { return 0; var final_modestr = ""; var bcast_modestr = ""; - if (addmodes) - final_modestr += "+" + addmodes; - if (delmodes) - final_modestr += "-" + delmodes; - if (bcast_addmodes) - bcast_modestr += "+" + bcast_addmodes; - if (bcast_delmodes) - bcast_modestr += "-" + bc|= USERMODE_CHAR[mym]; - } else if ((umode.del_flags&USERMODE_CHAR[mym]) && - (this.mode&USERMODE_CHAR[mym])) { - delmodes += mym; - if (USERMODE_BCAST[mym]) - bcast_delmodes += mym; - this.mode &= ~USERMODE_CHAR[mym]; - } - } - if (!addmodes && !delmodes) - return 0; - var final_modestr = ""; - var bcast_modestr = ""; if (addmodes) final_modestr += "+" + addmodes; if (delmodes) @@ -3180,7 +3160,7 @@ function IRCClient_setusermode(modestr) { bcast_modestr += "+" + bcast_addmodes; if (bcast_delmodes) bcast_modestr += "-" + bcast_delmodes; - if (!this.parent) { + if (!this.local) { this.originatorout("MODE "+this.nick+" "+final_modestr,this); if (bcast_addmodes || bcast_delmodes) this.bcast_to_servers("MODE "+this.nick+" "+bcast_modestr,this); @@ -3275,4 +3255,31 @@ function YLine(pingfreq,connfreq,maxlinks,sendq) { this.pingfreq = pingfreq; this.connfreq = connfreq; this.maxlinks = maxlinks; - this.sendq = s \ No newline at end of file + this.sendq = sendq; +} + +function ZLine(ipmask,reason) { + this.ipmask = ipmask; + this.reason = reason; +} + +function WhoWas(nick,uprefix,host,realname,server,serverdesc) { + this.nick = nick; + this.uprefix = uprefix; + this.host = host; + this.realname = realname; + this.server = server; + this.serverdesc = serverdesc; +} + +function NickBuf(oldnick,newnick) { + this.oldnick = oldnick; + this.newnick = newnick; +} + +// used for tracking true SJOIN nicks. +function SJOIN_Nick(nick,isop,isvoice) { + this.nick = nick; + this.isop = isop; + this.isvoice = isvoice; +}