2018-07-10 07:49:23 +00:00
|
|
|
"use strict";
|
|
|
|
|
|
|
|
const $ = require("jquery");
|
|
|
|
|
|
|
|
exports.input = function(args) {
|
|
|
|
const utils = require("../utils");
|
|
|
|
const socket = require("../socket");
|
|
|
|
const {vueApp} = require("../vue");
|
|
|
|
|
2018-09-25 16:52:22 +00:00
|
|
|
if (args.length > 0) {
|
2019-10-04 16:56:18 +00:00
|
|
|
let channels = args[0];
|
2018-07-10 07:49:23 +00:00
|
|
|
|
2019-10-04 16:56:18 +00:00
|
|
|
if (channels.length > 0) {
|
|
|
|
const chanTypes = vueApp.activeChannel.network.serverOptions.CHANTYPES;
|
|
|
|
const channelList = args[0].split(",");
|
|
|
|
|
|
|
|
if (chanTypes && chanTypes.length > 0) {
|
|
|
|
for (let c = 0; c < channelList.length; c++) {
|
|
|
|
if (!chanTypes.includes(channelList[c][0])) {
|
|
|
|
channelList[c] = chanTypes[0] + channelList[c];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
channels = channelList.join(",");
|
|
|
|
|
|
|
|
const chan = utils.findCurrentNetworkChan(channels);
|
2018-09-25 16:52:22 +00:00
|
|
|
|
|
|
|
if (chan) {
|
|
|
|
$(`#sidebar .chan[data-id="${chan.id}"]`).trigger("click");
|
2019-10-04 16:56:18 +00:00
|
|
|
} else {
|
|
|
|
socket.emit("input", {
|
|
|
|
text: `/join ${channels} ${args.length > 1 ? args[1] : ""}`,
|
|
|
|
target: vueApp.activeChannel.channel.id,
|
|
|
|
});
|
|
|
|
|
|
|
|
return true;
|
2018-09-25 16:52:22 +00:00
|
|
|
}
|
2018-07-10 07:49:23 +00:00
|
|
|
}
|
|
|
|
} else if (vueApp.activeChannel.channel.type === "channel") {
|
2018-09-25 16:52:22 +00:00
|
|
|
// If `/join` command is used without any arguments, re-join current channel
|
2018-07-10 07:49:23 +00:00
|
|
|
socket.emit("input", {
|
|
|
|
target: vueApp.activeChannel.channel.id,
|
|
|
|
text: `/join ${vueApp.activeChannel.channel.name}`,
|
|
|
|
});
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
};
|