Critical Hotfix for !announce and !serverannounce
This commit is contained in:
parent
bddbb3a4a3
commit
eadfa7c126
|
|
@ -22,6 +22,7 @@ const tokebot = require('./tokebot');
|
||||||
const linkUtils = require('../../utils/linkUtils');
|
const linkUtils = require('../../utils/linkUtils');
|
||||||
const permissionModel = require('../../schemas/permissionSchema');
|
const permissionModel = require('../../schemas/permissionSchema');
|
||||||
const channelModel = require('../../schemas/channel/channelSchema');
|
const channelModel = require('../../schemas/channel/channelSchema');
|
||||||
|
const { command } = require('../../validators/tokebotValidator');
|
||||||
|
|
||||||
module.exports = class commandPreprocessor{
|
module.exports = class commandPreprocessor{
|
||||||
constructor(server, chatHandler){
|
constructor(server, chatHandler){
|
||||||
|
|
@ -82,7 +83,7 @@ module.exports = class commandPreprocessor{
|
||||||
if(commandObj.argumentArray != null){
|
if(commandObj.argumentArray != null){
|
||||||
if(this.commandProcessor[commandObj.argumentArray[0].toLowerCase()] != null){
|
if(this.commandProcessor[commandObj.argumentArray[0].toLowerCase()] != null){
|
||||||
//Process the command and use the return value to set the sendflag (true if command valid)
|
//Process the command and use the return value to set the sendflag (true if command valid)
|
||||||
commandObj.sendFlag = await this.commandProcessor[commandObj.argumentArray[0].toLowerCase()](commandObj);
|
commandObj.sendFlag = await this.commandProcessor[commandObj.argumentArray[0].toLowerCase()](commandObj, this);
|
||||||
}else{
|
}else{
|
||||||
//Process as toke command if we didnt get a match from the standard server-side command processor
|
//Process as toke command if we didnt get a match from the standard server-side command processor
|
||||||
commandObj.sendFlag = await this.tokebot.tokeProcessor(commandObj);
|
commandObj.sendFlag = await this.tokebot.tokeProcessor(commandObj);
|
||||||
|
|
@ -123,75 +124,75 @@ class commandProcessor{
|
||||||
}
|
}
|
||||||
|
|
||||||
//Command keywords get run through .toLowerCase(), so we should use lowercase method names for command methods
|
//Command keywords get run through .toLowerCase(), so we should use lowercase method names for command methods
|
||||||
whisper(preprocessor){
|
whisper(commandObj){
|
||||||
//splice out our command
|
//splice out our command
|
||||||
preprocessor.commandArray.splice(0,2);
|
commandObj.commandArray.splice(0,2);
|
||||||
|
|
||||||
//Mark out the current message as a whisper
|
//Mark out the current message as a whisper
|
||||||
preprocessor.chatType = 'whisper';
|
commandObj.chatType = 'whisper';
|
||||||
|
|
||||||
//Make sure to throw the send flag
|
//Make sure to throw the send flag
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
spoiler(preprocessor){
|
spoiler(commandObj){
|
||||||
//splice out our command
|
//splice out our command
|
||||||
preprocessor.commandArray.splice(0,2);
|
commandObj.commandArray.splice(0,2);
|
||||||
|
|
||||||
//Mark out the current message as a spoiler
|
//Mark out the current message as a spoiler
|
||||||
preprocessor.chatType = 'spoiler';
|
commandObj.chatType = 'spoiler';
|
||||||
|
|
||||||
//Make sure to throw the send flag
|
//Make sure to throw the send flag
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
strikethrough(preprocessor){
|
strikethrough(commandObj){
|
||||||
//splice out our command
|
//splice out our command
|
||||||
preprocessor.commandArray.splice(0,2);
|
commandObj.commandArray.splice(0,2);
|
||||||
|
|
||||||
//Mark out the current message as a spoiler
|
//Mark out the current message as a spoiler
|
||||||
preprocessor.chatType = 'strikethrough';
|
commandObj.chatType = 'strikethrough';
|
||||||
|
|
||||||
//Make sure to throw the send flag
|
//Make sure to throw the send flag
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
bold(preprocessor){
|
bold(commandObj){
|
||||||
//splice out our command
|
//splice out our command
|
||||||
preprocessor.commandArray.splice(0,2);
|
commandObj.commandArray.splice(0,2);
|
||||||
|
|
||||||
//Mark out the current message as a spoiler
|
//Mark out the current message as a spoiler
|
||||||
preprocessor.chatType = 'bold';
|
commandObj.chatType = 'bold';
|
||||||
|
|
||||||
//Make sure to throw the send flag
|
//Make sure to throw the send flag
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
italics(preprocessor){
|
italics(commandObj){
|
||||||
//splice out our command
|
//splice out our command
|
||||||
preprocessor.commandArray.splice(0,2);
|
commandObj.commandArray.splice(0,2);
|
||||||
|
|
||||||
//Mark out the current message as a spoiler
|
//Mark out the current message as a spoiler
|
||||||
preprocessor.chatType = 'italics';
|
commandObj.chatType = 'italics';
|
||||||
|
|
||||||
//Make sure to throw the send flag
|
//Make sure to throw the send flag
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
async announce(preprocessor){
|
async announce(commandObj, preprocessor){
|
||||||
//Get the current channel from the database
|
//Get the current channel from the database
|
||||||
const chanDB = await channelModel.findOne({name: preprocessor.socket.chan});
|
const chanDB = await channelModel.findOne({name: commandObj.socket.chan});
|
||||||
|
|
||||||
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
||||||
if(chanDB != null && await chanDB.permCheck(preprocessor.socket.user, 'announce')){
|
if(chanDB != null && await chanDB.permCheck(commandObj.socket.user, 'announce')){
|
||||||
//splice out our command
|
//splice out our command
|
||||||
preprocessor.commandArray.splice(0,2);
|
commandObj.commandArray.splice(0,2);
|
||||||
|
|
||||||
//Prep the message using pre-processor functions chat-handling
|
//Prep the message using pre-processor functions chat-handling
|
||||||
await preprocessor.prepMessage();
|
await preprocessor.prepMessage(commandObj);
|
||||||
|
|
||||||
//send it
|
//send it
|
||||||
this.chatHandler.relayChannelAnnouncement(preprocessor.socket.chan, preprocessor.message, preprocessor.links);
|
this.chatHandler.relayChannelAnnouncement(commandObj.socket.chan, commandObj.message, commandObj.links);
|
||||||
|
|
||||||
//throw send flag
|
//throw send flag
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -201,17 +202,17 @@ class commandProcessor{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async serverannounce(preprocessor){
|
async serverannounce(commandObj, preprocessor){
|
||||||
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
||||||
if(await permissionModel.permCheck(preprocessor.socket.user, 'announce')){
|
if(await permissionModel.permCheck(commandObj.socket.user, 'announce')){
|
||||||
//splice out our command
|
//splice out our command
|
||||||
preprocessor.commandArray.splice(0,2);
|
commandObj.commandArray.splice(0,2);
|
||||||
|
|
||||||
//Prep the message using pre-processor functions for chat-handling
|
//Prep the message using pre-processor functions for chat-handling
|
||||||
await preprocessor.prepMessage();
|
await preprocessor.prepMessage(commandObj);
|
||||||
|
|
||||||
//send it
|
//send it
|
||||||
this.chatHandler.relayServerAnnouncement(preprocessor.message, preprocessor.links);
|
this.chatHandler.relayServerAnnouncement(commandObj.message, commandObj.links);
|
||||||
|
|
||||||
//throw send flag
|
//throw send flag
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -221,14 +222,14 @@ class commandProcessor{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async clear(preprocessor){
|
async clear(commandObj){
|
||||||
//Get the current channel from the database
|
//Get the current channel from the database
|
||||||
const chanDB = await channelModel.findOne({name: preprocessor.socket.chan});
|
const chanDB = await channelModel.findOne({name: commandObj.socket.chan});
|
||||||
|
|
||||||
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
||||||
if(await chanDB.permCheck(preprocessor.socket.user, 'clearChat')){
|
if(await chanDB.permCheck(commandObj.socket.user, 'clearChat')){
|
||||||
//Send off the command
|
//Send off the command
|
||||||
this.chatHandler.clearChat(preprocessor.socket.chan, preprocessor.argumentArray[1]);
|
this.chatHandler.clearChat(commandObj.socket.chan, commandObj.argumentArray[1]);
|
||||||
//throw send flag
|
//throw send flag
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -237,24 +238,24 @@ class commandProcessor{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async kick(preprocessor){
|
async kick(commandObj){
|
||||||
//Get the current channel from the database
|
//Get the current channel from the database
|
||||||
const chanDB = await channelModel.findOne({name: preprocessor.socket.chan});
|
const chanDB = await channelModel.findOne({name: commandObj.socket.chan});
|
||||||
|
|
||||||
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
//Check if the user has permission, and publicly shame them if they don't (lmao)
|
||||||
if(await chanDB.permCheck(preprocessor.socket.user, 'kickUser')){
|
if(await chanDB.permCheck(commandObj.socket.user, 'kickUser')){
|
||||||
//Get username from argument array
|
//Get username from argument array
|
||||||
const username = preprocessor.argumentArray[1];
|
const username = commandObj.argumentArray[1];
|
||||||
|
|
||||||
//Get channel
|
//Get channel
|
||||||
const channel = this.server.activeChannels.get(preprocessor.socket.chan);
|
const channel = this.server.activeChannels.get(commandObj.socket.chan);
|
||||||
|
|
||||||
//get initiator and target user objects
|
//get initiator and target user objects
|
||||||
const initiator = channel.userList.get(preprocessor.socket.user.user);
|
const initiator = channel.userList.get(commandObj.socket.user.user);
|
||||||
const target = channel.userList.get(username);
|
const target = channel.userList.get(username);
|
||||||
|
|
||||||
//get initiator and target override abilities
|
//get initiator and target override abilities
|
||||||
const override = await permissionModel.overrideCheck(preprocessor.socket.user, 'kickUser');
|
const override = await permissionModel.overrideCheck(commandObj.socket.user, 'kickUser');
|
||||||
const targetOverride = await permissionModel.overrideCheck(target, 'kickUser');
|
const targetOverride = await permissionModel.overrideCheck(target, 'kickUser');
|
||||||
|
|
||||||
//If there is no user
|
//If there is no user
|
||||||
|
|
@ -291,10 +292,10 @@ class commandProcessor{
|
||||||
|
|
||||||
|
|
||||||
//Splice out kick
|
//Splice out kick
|
||||||
preprocessor.commandArray.splice(0,4)
|
commandObj.commandArray.splice(0,4)
|
||||||
|
|
||||||
//Get collect reason
|
//Get collect reason
|
||||||
var reason = preprocessor.commandArray.join('');
|
var reason = commandObj.commandArray.join('');
|
||||||
|
|
||||||
//If no reason was given
|
//If no reason was given
|
||||||
if(reason == ''){
|
if(reason == ''){
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue