oh no
This commit is contained in:
parent
a4e568dec6
commit
befc5dc8e6
|
@ -1,6 +1,9 @@
|
|||
const Discord = require('discord.js');
|
||||
const fs = require('fs').promises;
|
||||
|
||||
const events = require('events');
|
||||
const shutEmitter = new events.EventEmitter();
|
||||
|
||||
module.exports.meta = {
|
||||
name: 'copypasta',
|
||||
aliases: ['pasta'],
|
||||
|
@ -24,9 +27,35 @@ module.exports.run = async (message, args) => {
|
|||
|
||||
let lines = (await fs.readFile(__dirname + '/copypastas/' + pasta))
|
||||
.toString('utf-8')
|
||||
.split('\n');
|
||||
.split('\n')
|
||||
.filter(line => line.trim() != '');
|
||||
|
||||
lines.forEach(async line => {
|
||||
await message.channel.send(line, { tts: true });
|
||||
this.copypastaing[message.channel.id] = true;
|
||||
|
||||
sendLine();
|
||||
const interval = setInterval(sendLine, 1250);
|
||||
const listener = shutEmitter.once('shut', cid => {
|
||||
if (cid == message.channel.id) {
|
||||
clearInterval(interval);
|
||||
this.copypastaing[message.channel.id] = false;
|
||||
}
|
||||
});
|
||||
|
||||
async function sendLine() {
|
||||
if (lines.length == 0) {
|
||||
this.copypastaing[message.channel.id] = false;
|
||||
clearTimeout(interval);
|
||||
shutEmitter.removeListener('shut', listener);
|
||||
return;
|
||||
}
|
||||
|
||||
const line = lines.shift();
|
||||
await message.channel.send(line, { tts: true });
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.shut = (channelID) => {
|
||||
shutEmitter.emit('shut', channelID);
|
||||
}
|
||||
|
||||
module.exports.copypastaing = {}
|
4565
commands/copypastas/beemovie
Normal file
4565
commands/copypastas/beemovie
Normal file
File diff suppressed because it is too large
Load diff
16
commands/stop.js
Normal file
16
commands/stop.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
const Discord = require('discord.js');
|
||||
|
||||
module.exports.meta = {
|
||||
name: 'stop',
|
||||
aliases: ['stfu', 'shut'],
|
||||
staffOnly: false
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Discord.Message} message
|
||||
* @param {Array<string>} args
|
||||
*/
|
||||
module.exports.run = async (message, args) => {
|
||||
require('./copypasta').shut(message.channel.id);
|
||||
}
|
|
@ -33,6 +33,9 @@ client.on('message', message => {
|
|||
|
||||
logger.info(`[CMD] ${message.author.id} ${message.author.tag} => ${cmdName} ${args.join(' ')}`);
|
||||
|
||||
if (cmd.meta?.name != 'stop' && require('../commands/copypasta').copypastaing[message.channel?.id])
|
||||
return message.react('810153990733561876').catch(console.warn);
|
||||
|
||||
if (cmd.meta?.staffOnly && !message.member.permissions.has('ADMINISTRATOR')) {
|
||||
logger.warn(`${message.author.tag} => Refusing to run staff command`);
|
||||
message.channel.send(
|
||||
|
|
Loading…
Reference in a new issue