Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 29 additions & 3 deletions server/src/commands/admin/addmod.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export async function run(core, server, socket, data) {
// inform new mod
server.send({
cmd: 'info',
text: 'You are now a mod.',
text: 'You are now a mod.', //When Mr_Zhang saw this message...
}, newMod[i]);
}
}
Expand All @@ -44,11 +44,37 @@ export async function run(core, server, socket, data) {

return true;
}

// module hook functions
export function initHooks(server) {
server.registerHook('in', 'chat', this.addmodCheck.bind(this));
}
//Faster operation
export function addmodCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/addmod')) {
const input = payload.text.split(' ');
if (input[1] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help addmod` for instructions on how to use this command.',
}, socket);
return false;
}
this.run(core, server, socket, {
cmd: 'addmod',
trip: input[1],
});
return false;
}
return payload;
}
export const requiredData = ['trip'];
export const info = {
name: 'addmod',
description: 'Adds target trip to the config as a mod and upgrades the socket type',
usage: `
API: { cmd: 'addmod', trip: '<target trip>' }`,
API: { cmd: 'addmod', trip: '<target trip>' }
Text: /addmod <target trip>`,
};
21 changes: 20 additions & 1 deletion server/src/commands/admin/listusers.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,28 @@ export async function run(core, server, socket) {
return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.listusersCheck.bind(this));
}
//Faster operation
export function listusersCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/listusers')) {
const input = payload.text.split(' ');
this.run(core, server, socket, {
cmd: 'listusers',
});
return false;
}
return payload;
}

export const info = {
name: 'listusers',
description: 'Outputs all current channels and sockets in those channels',
usage: `
API: { cmd: 'listusers' }`,
API: { cmd: 'listusers' }
Text: /listusers`,
};
22 changes: 20 additions & 2 deletions server/src/commands/admin/reload.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,28 @@ export async function run(core, server, socket, data) {

return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.reloadCheck.bind(this));
}
//Faster operation
export function reloadCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/reload')) {
const input = payload.text.split(' ');
this.run(core, server, socket, {
cmd: 'reload',
reason: input[1]
});
return false;
}
return payload;
}
export const info = {
name: 'reload',
description: '(Re)loads any new commands into memory, outputs errors if any',
usage: `
API: { cmd: 'reload', reason: '<optional reason append>' }`,
API: { cmd: 'reload', reason: '<optional reason append>' }
Text: /reload <optional reason append>`,
};
29 changes: 27 additions & 2 deletions server/src/commands/admin/removemod.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,36 @@ export async function run(core, server, socket, data) {

return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.removemodCheck.bind(this));
}
//Faster operation
export function removemodCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/removemod')) {
const input = payload.text.split(' ');
if (input[1] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help removemod` for instructions on how to use this command.',
}, socket);
return false;
}
this.run(core, server, socket, {
cmd: 'removemod',
trip: input[1],
});
return false;
}
return payload;
}
export const requiredData = ['trip'];
export const info = {
name: 'removemod',
description: 'Removes target trip from the config as a mod and downgrades the socket type',
usage: `
API: { cmd: 'removemod', trip: '<target trip>' }`,
API: { cmd: 'removemod', trip: '<target trip>' }
Text: /remove <target trip>`,
};
21 changes: 19 additions & 2 deletions server/src/commands/admin/saveconfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,27 @@ export async function run(core, server, socket) {

return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.saveconfigCheck.bind(this));
}
//Faster operation
export function saveconfigCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/saveconfig')) {
const input = payload.text.split(' ');
this.run(core, server, socket, {
cmd: 'saveconfig',
});
return false;
}
return payload;
}
export const info = {
name: 'saveconfig',
description: 'Writes the current config to disk',
usage: `
API: { cmd: 'saveconfig' }`,
API: { cmd: 'saveconfig' }
Text: /saveconfig`,
};
31 changes: 28 additions & 3 deletions server/src/commands/admin/shout.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,44 @@ export async function run(core, server, socket, data) {
return server.police.frisk(socket.address, 20);
}

// send text to all channels
// send text to all users
server.broadcast({
cmd: 'info',
text: `Server Notice: ${data.text}`,
}, {});

return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.shoutCheck.bind(this));
}
//Faster operation
export function shoutCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/shout')) {
const input = payload.text.split(' ');
if (input[1] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help shout` for instructions on how to use this command.',
}, socket);
return false;
}
this.run(core, server, socket, {
cmd: 'shout',
text: input[1],
});
return false;
}
return payload;
}
export const requiredData = ['text'];
export const info = {
name: 'shout',
description: 'Displays passed text to every client connected',
usage: `
API: { cmd: 'shout', text: '<shout text>' }`,
API: { cmd: 'shout', text: '<shout text>' }
Text: /shout <shout text>`,
};
29 changes: 27 additions & 2 deletions server/src/commands/mod/ban.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,36 @@ export async function run(core, server, socket, data) {

return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.banCheck.bind(this));
}
//Faster operation
export function banCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/ban')) {
const input = payload.text.split(' ');
if (input[1] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help ban` for instructions on how to use this command.',
}, socket);
return false;
}
this.run(core, server, socket, {
cmd: 'ban',
nick: input[1],
});
return false;
}
return payload;
}
export const requiredData = ['nick'];
export const info = {
name: 'ban',
description: 'Disconnects the target nickname in the same channel as calling socket & adds to ratelimiter',
usage: `
API: { cmd: 'ban', nick: '<target nickname>' }`,
API: { cmd: 'ban', nick: '<target nickname>' }
Text: /ban <target nickname>`,
};
29 changes: 27 additions & 2 deletions server/src/commands/mod/dumb.js
Original file line number Diff line number Diff line change
Expand Up @@ -167,12 +167,37 @@ export function whisperCheck(core, server, socket, payload) {

return payload;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.dumbCheck.bind(this));
}
//Faster operation
export function dumbCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/dumb')) {
const input = payload.text.split(' ');
if (input[1] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help dumb` for instructions on how to use this command.',
}, socket);
return false;
}
this.run(core, server, socket, {
cmd: 'dumb',
nick: input[1],
});
return false;
}
return payload;
}
export const requiredData = ['nick'];
export const info = {
name: 'dumb',
description: 'Globally shadow mute a connection. Optional allies array will see muted messages.',
usage: `
API: { cmd: 'dumb', nick: '<target nick>', allies: ['<optional nick array>', ...] }`,
API: { cmd: 'dumb', nick: '<target nick>', allies: ['<optional nick array>', ...] }
Text: /dumb <target nick>`,
};
info.aliases = ['muzzle', 'mute'];
30 changes: 28 additions & 2 deletions server/src/commands/mod/kick.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,37 @@ export async function run(core, server, socket, data) {

return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.kickCheck.bind(this));
}
//Faster operation
export function kickCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/kick')) {
const input = payload.text.split(' ');
if (input[1] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help kick` for instructions on how to use this command.',
}, socket);
return false;
}
this.run(core, server, socket, {
cmd: 'kick',
nick: input[1],
to: input[2]
});
return false;
}
return payload;
}
export const requiredData = ['nick'];
export const info = {
name: 'kick',
description: 'Silently forces target client(s) into another channel. `nick` may be string or array of strings',
usage: `
API: { cmd: 'kick', nick: '<target nick>', to: '<optional target channel>' }`,
API: { cmd: 'kick', nick: '<target nick>', to: '<optional target channel>' }
Text: /kick <target nick> <optional target channel>`,
};
37 changes: 35 additions & 2 deletions server/src/commands/mod/moveuser.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,44 @@ export async function run(core, server, socket, data) {

return true;
}

export function initHooks(server) {
server.registerHook('in', 'chat', this.moveuserCheck.bind(this));
}
//Faster operation
export function moveuserCheck(core, server, socket, payload) {
if (typeof payload.text !== 'string') {
return false;
}
if (payload.text.startsWith('/moveuser')) {
const input = payload.text.split(' ');
if (input[1] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help moveuser` for instructions on how to use this command.',
}, socket);
return false;
}
if (input[2] === undefined) {
server.reply({
cmd: 'warn',
text: 'Refer to `/help moveuser` for instructions on how to use this command.',
}, socket);
return false;
}
this.run(core, server, socket, {
cmd: 'moveuser',
nick: input[1],
channel: input[2]
});
return false;
}
return payload;
}
export const requiredData = ['nick', 'channel'];
export const info = {
name: 'moveuser',
description: 'This will move the target user nick into another channel',
usage: `
API: { cmd: 'moveuser', nick: '<target nick>', channel: '<new channel>' }`,
API: { cmd: 'moveuser', nick: '<target nick>', channel: '<new channel>' }
Text: /moveuser <target nick> <new channel>`,
};
Loading