Skip to content

Commit dcabb08

Browse files
authored
Merge pull request #25 from Madriix/master
Update bouncer.js
2 parents df79ae7 + ed84339 commit dcabb08

File tree

1 file changed

+37
-36
lines changed

1 file changed

+37
-36
lines changed

bouncer.js

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,10 @@ function clientReconnect(socket) {
611611

612612
socket.write("@time=null;msgid=null :"+connection.nick+"!"+connection.ircuser+"@"+connection.host+" JOIN :"+_channel.name+"\n");
613613
_mode_params='';
614+
615+
if ( typeof _channel.modes === 'undefined' )
616+
_channel.modes = "";
617+
614618
for(x=0;x<_channel.modes.length;x++) {
615619
switch(_channel.modes[x]) {
616620
case 'k': _mode_params+=' '+_channel.key;
@@ -808,35 +812,28 @@ function clientConnect(socket) {
808812
break;
809813
case '324':
810814
case 'MODE':
811-
if ( data[2] == "MODE" ) {
812-
_target=data[1]=='324'?data[3].trim():data[3].trim();
815+
if (data[1]=='324') {
816+
_target=data[3].trim();
813817
_sender=data[1].substr(1).split("!")[0];
814-
_mode = data[1]=='324'?data[4].trim():data[4].trim();
815-
_mode = _mode.indexOf(":")!=-1?_mode.substr(1):_mode;
816-
_mode_target=[];
817-
if(data[1]=='324') {
818-
if(data[5])
819-
_mode_target = data.slice(5,data.length);
820-
}
821-
else {
822-
if(data[5])
823-
_mode_target = data.slice(5,data.length);
824-
}
818+
_mode=data[4].trim();
819+
if(data[5])
820+
_mode_target = data.slice(5,data.length);
821+
}
822+
else if (data[2]=='MODE') {
823+
_target=data[3].trim();
824+
_sender=data[1].substr(1).split("!")[0];
825+
_mode=data[4].trim();
826+
if(data[5])
827+
_mode_target = data.slice(5,data.length);
825828
} else {
826-
_target=data[1]=='324'?data[3].trim():data[2].trim();
827-
_sender=data[0].substr(1).split("!")[0];
828-
_mode = data[1]=='324'?data[4].trim():data[3].trim();
829-
_mode = _mode.indexOf(":")!=-1?_mode.substr(1):_mode;
830-
_mode_target=[];
831-
if(data[1]=='324') {
832-
if(data[5])
833-
_mode_target = data.slice(5,data.length);
834-
}
835-
else {
836-
if(data[4])
837-
_mode_target = data.slice(4,data.length);
838-
}
829+
_target=data[2].trim();
830+
_sender=data[2];
831+
_mode=data[3].trim();
832+
if(data[4])
833+
_mode_target = data.slice(4,data.length);
839834
}
835+
836+
_mode = _mode.indexOf(":")!=-1?_mode.substr(1):_mode;
840837

841838
_mode_count = 0;
842839
_add = true;
@@ -1112,11 +1109,13 @@ function clientConnect(socket) {
11121109
_sender=data[1].substr(1).split("!")[0];
11131110
for (key in this.channels) {
11141111
if (this.channels.hasOwnProperty(key)) {
1115-
for(x=0;x<this.channels[key].names.length;x++)
1116-
if(this.channels[key].names[x].replace("@","").replace("+","").replace("~","").replace("%","")==_sender)
1117-
break;
1118-
this.channels[key].names.splice(x,1);
1119-
this.channels[key].userhosts.splice(x,1);
1112+
for(x=0;x<this.channels[key].names.length;x++) {
1113+
if(this.channels[key].names[x].replace("@","").replace("+","").replace("~","").replace("%","")==_sender) {
1114+
this.channels[key].names.splice(x,1);
1115+
this.channels[key].userhosts.splice(x,1);
1116+
break;
1117+
}
1118+
}
11201119
}
11211120
}
11221121
break;
@@ -1141,19 +1140,21 @@ function clientConnect(socket) {
11411140
this._getnames[_channel]=false;
11421141
break;
11431142
case 'NICK':
1144-
_sender = data[1].substr(1);
1143+
_sender = data[1].substr(1).split("!")[0];
11451144
_new = data[3].substr(1).trim();
1145+
11461146
if(_sender==this.nick) {
11471147
this.nick=_new;
11481148
}
1149+
11491150
for (key in this.channels) {
11501151
if (this.channels.hasOwnProperty(key)) {
11511152
for(x=0;x<this.channels[key].names.length;x++) {
1153+
if(this.channels[key].names[x].replace("@","").replace("+","").replace("~","").replace("%","")==_sender) {
11521154
_statut = ( /(@|%|\+)/.test(this.channels[key].names[x].substr(0,1)) ? this.channels[key].names[x].substr(0,1) : "" );
1153-
if(this.channels[key].names[x].replace("@","").replace("+","").replace("~","").replace("%","")==_sender){
1154-
this.channels[key].names.splice(x,1);
1155-
this.channels[key].names.push(_statut+_new);
1156-
break;
1155+
this.channels[key].names.splice(x,1);
1156+
this.channels[key].names.push(_statut+_new);
1157+
break;
11571158
}
11581159
}
11591160
}

0 commit comments

Comments
 (0)