Extract commands to separate file
This commit is contained in:
parent
9312edc20e
commit
476c135379
3 changed files with 102 additions and 88 deletions
86
commands.js
Normal file
86
commands.js
Normal file
|
@ -0,0 +1,86 @@
|
|||
import { SERVER_BUFFER } from "/state.js";
|
||||
|
||||
export default {
|
||||
"query": (app, args) => {
|
||||
var nick = args[0];
|
||||
if (!nick) {
|
||||
throw new Error("Missing nickname");
|
||||
}
|
||||
app.open(nick);
|
||||
},
|
||||
"quit": (app, args) => {
|
||||
if (window.localStorage) {
|
||||
localStorage.removeItem("autoconnect");
|
||||
}
|
||||
app.client.close();
|
||||
},
|
||||
"query": (app, args) => {
|
||||
var nick = args[0];
|
||||
if (!nick) {
|
||||
throw new Error("Missing nickname");
|
||||
}
|
||||
app.open(nick);
|
||||
},
|
||||
"close": (app, args) => {
|
||||
var target = app.state.activeBuffer;
|
||||
if (!target || target == SERVER_BUFFER) {
|
||||
throw new Error("Not in a user or channel buffer");
|
||||
}
|
||||
app.close(target);
|
||||
},
|
||||
"join": (app, args) => {
|
||||
var channel = args[0];
|
||||
if (!channel) {
|
||||
throw new Error("Missing channel name");
|
||||
}
|
||||
app.client.send({ command: "JOIN", params: [channel] });
|
||||
},
|
||||
"part": (app, args) => {
|
||||
var reason = args.join(" ");
|
||||
var channel = app.state.activeBuffer;
|
||||
if (!channel || !app.isChannel(channel)) {
|
||||
throw new Error("Not in a channel");
|
||||
}
|
||||
var params = [channel];
|
||||
if (reason) {
|
||||
params.push(reason);
|
||||
}
|
||||
app.client.send({ command: "PART", params });
|
||||
},
|
||||
"msg": (app, args) => {
|
||||
var target = args[0];
|
||||
var text = args.slice(1).join(" ");
|
||||
app.client.send({ command: "PRIVMSG", params: [target, text] });
|
||||
},
|
||||
"me": (app, args) => {
|
||||
var action = args.join(" ");
|
||||
var target = app.state.activeBuffer;
|
||||
if (!target) {
|
||||
throw new Error("Not in a buffer");
|
||||
}
|
||||
var text = `\x01ACTION ${action}\x01`;
|
||||
app.privmsg(target, text);
|
||||
},
|
||||
"nick": (app, args) => {
|
||||
var newNick = args[0];
|
||||
app.client.send({ command: "NICK", params: [newNick] });
|
||||
},
|
||||
"buffer": (app, args) => {
|
||||
var name = args[0];
|
||||
if (!app.state.buffers.has(name)) {
|
||||
throw new Error("Unknown buffer");
|
||||
}
|
||||
app.switchBuffer(name);
|
||||
},
|
||||
"topic": (app, args) => {
|
||||
var channel = app.state.activeBuffer;
|
||||
if (!channel || !app.isChannel(channel)) {
|
||||
throw new Error("Not in a channel");
|
||||
}
|
||||
var params = [channel];
|
||||
if (args.length > 0) {
|
||||
params.push(args.join(" "));
|
||||
}
|
||||
app.client.send({ command: "TOPIC", params });
|
||||
},
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue