Add /cycle command (a.k.a. /rejoin)

Closes #1436
This commit is contained in:
dgw 2017-08-23 18:08:44 -05:00
parent a99ea14dc0
commit bed6053cec
4 changed files with 37 additions and 0 deletions

View file

@ -785,6 +785,19 @@
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/rejoin</code>
</div>
<div class="description">
<p>
Leave and immediately rejoin the current channel. Useful to
quickly get op from ChanServ in an empty channel, for example.
</p>
<p>Alias: <code>/cycle</code></p>
</div>
</div>
<div class="help-item">
<div class="subject">
<code>/query nick</code>

View file

@ -28,6 +28,7 @@ const commands = [
"/collapse",
"/connect",
"/ctcp",
"/cycle",
"/deop",
"/devoice",
"/disconnect",
@ -46,6 +47,7 @@ const commands = [
"/query",
"/quit",
"/raw",
"/rejoin",
"/say",
"/send",
"/server",

View file

@ -41,6 +41,7 @@ var inputs = [
"ctcp",
"msg",
"part",
"rejoin",
"action",
"away",
"connect",

View file

@ -0,0 +1,21 @@
"use strict";
var Msg = require("../../models/msg");
var Chan = require("../../models/chan");
exports.commands = ["cycle", "rejoin"];
exports.input = function(network, chan) {
if (chan.type !== Chan.Type.CHANNEL) {
chan.pushMessage(this, new Msg({
type: Msg.Type.ERROR,
text: "You can only rejoin channels."
}));
return;
}
network.irc.part(chan.name, "Rejoining");
network.irc.join(chan.name);
return true;
};