Skip to content

Commit

Permalink
Merge pull request #411 from thelounge/xpaw/join
Browse files Browse the repository at this point in the history
Fix channel join regression and fix possibly joining parted channels
  • Loading branch information
astorije committed Jun 19, 2016
2 parents 500c6e2 + d66e86d commit e8cc465
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 30 deletions.
41 changes: 11 additions & 30 deletions src/client.js
Expand Up @@ -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 || "",
Expand All @@ -149,6 +159,7 @@ Client.prototype.connect = function(args) {
commands: args.commands,
ip: args.ip,
hostname: args.hostname,
channels: channels,
});
network.setNick(nick);

Expand Down Expand Up @@ -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, [
Expand Down
29 changes: 29 additions & 0 deletions src/plugins/irc-events/connection.js
Expand Up @@ -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."
Expand Down

0 comments on commit e8cc465

Please sign in to comment.