return;
}
- if(splitargs != undefined)
+ if((splitargs != undefined) && (args != undefined))
args = args.splitMax(" ", splitargs);
- if((minargs != undefined) && (minargs > args.length)) {
- w.errorMessage("Insufficient arguments for command.")
+ if((minargs != undefined) && (
+ ((args != undefined) && (minargs > args.length)) ||
+ ((args == undefined) && (minargs > 0))
+ )) {
+ w.errorMessage("Insufficient arguments for command.");
return;
}
message = "";
if(message == "") {
- this.send("PRIVMSG " + target + " :\x01" + type + "\x01");
+ if(!this.send("PRIVMSG " + target + " :\x01" + type + "\x01"))
+ return;
} else {
- this.send("PRIVMSG " + target + " :\x01" + type + " " + message + "\x01");
+ if(!this.send("PRIVMSG " + target + " :\x01" + type + " " + message + "\x01"))
+ return;
}
this.newTargetLine(target, "CTCP", message, {"x": type});
var target = args[0];
var message = args[1];
- this.newTargetLine(target, "MSG", message, {});
-
- this.send("PRIVMSG " + target + " :" + message);
+ if(this.send("PRIVMSG " + target + " :" + message))
+ this.newTargetLine(target, "MSG", message, {});
}],
cmd_NOTICE: [false, 2, 2, function(args) {
var target = args[0];
var message = args[1];
- this.newTargetLine(target, "NOTICE", message);
- this.send("NOTICE " + target + " :" + message);
+ if(this.send("NOTICE " + target + " :" + message))
+ this.newTargetLine(target, "NOTICE", message);
}],
cmd_QUERY: [false, 2, 1, function(args) {
this.parentObject.newWindow(args[0], WINDOW_QUERY, true);
}, this);
},
disconnected: function(message) {
- for(var x in this.parent.channels)
- this.ui.closeWindow(x);
-
+ for(var x in this.windows) {
+ var w = this.windows[x];
+ if(w.type == WINDOW_CHANNEL)
+ w.close();
+ }
this.tracker = undefined;
this.newServerLine("DISCONNECT", {"m": message});
},
send: function(data) {
if(this.disconnected)
- return;
+ return false;
var r = new Request.JSON({url: "/e/p/" + this.sessionid + "?c=" + encodeURIComponent(data) + "&t=" + this.counter++, onComplete: function(o) {
if(!o || (o[0] == false)) {
if(!this.disconnected) {
this.disconnected = true;
alert("An error occured: " + o[1]);
}
+ return false;
}
}.bind(this)});
r.get();
+ return true;
},
recv: function() {
var r = new Request.JSON({url: "/e/s/" + this.sessionid + "?t=" + this.counter++, onComplete: function(o) {
if(!this.disconnected) {
this.disconnected = true;
- alert("An unknown error occured.");
+ alert("Error: the server closed the connection.");
}
return;
}