Merge pull request #411 from thelounge/xpaw/join

Fix channel join regression and fix possibly joining parted channels
This commit is contained in:
Jérémie Astori 2016-06-19 12:59:49 -04:00 committed by GitHub
commit e8cc465228
2 changed files with 40 additions and 30 deletions

View file

@ -137,6 +137,16 @@ Client.prototype.connect = function(args) {
var nick = args.nick || "lounge-user";
var webirc = null;
var channels = [];
if (args.join) {
var join = args.join.replace(/\,/g, " ").split(/\s+/g);
join.forEach(function(chan) {
channels.push(new Chan({
name: chan
}));
});
}
var network = new Network({
name: args.name || "",
@ -149,6 +159,7 @@ Client.prototype.connect = function(args) {
commands: args.commands,
ip: args.ip,
hostname: args.hostname,
channels: channels,
});
network.setNick(nick);
@ -221,36 +232,6 @@ Client.prototype.connect = function(args) {
webirc: webirc,
});
network.irc.on("registered", function() {
if (network.irc.network.cap.enabled.length > 0) {
network.channels[0].pushMessage(client, new Msg({
text: "Enabled capabilities: " + network.irc.network.cap.enabled.join(", ")
}));
}
var delay = 1000;
var commands = args.commands;
if (Array.isArray(commands)) {
commands.forEach(function(cmd) {
setTimeout(function() {
client.input({
target: network.channels[0].id,
text: cmd
});
}, delay);
delay += 1000;
});
}
var join = (args.join || "");
if (join) {
setTimeout(function() {
join = join.split(/\s+/);
network.irc.join(join[0], join[1]);
}, delay);
}
});
events.forEach(function(plugin) {
var path = "./plugins/irc-events/" + plugin;
require(path).apply(client, [

View file

@ -10,6 +10,35 @@ module.exports = function(irc, network) {
text: "Network created, connecting to " + network.host + ":" + network.port + "..."
}));
irc.on("registered", function() {
if (network.irc.network.cap.enabled.length > 0) {
network.channels[0].pushMessage(client, new Msg({
text: "Enabled capabilities: " + network.irc.network.cap.enabled.join(", ")
}));
}
var delay = 1000;
var commands = network.commands;
if (Array.isArray(commands)) {
commands.forEach(function(cmd) {
setTimeout(function() {
client.input({
target: network.channels[0].id,
text: cmd
});
}, delay);
delay += 1000;
});
}
network.channels.forEach(function(chan) {
setTimeout(function() {
network.irc.join(chan.name);
}, delay);
delay += 100;
});
});
irc.on("socket connected", function() {
network.channels[0].pushMessage(client, new Msg({
text: "Connected to the network."