mirror of
https://github.com/ChomeNS/chomens-bot-mc.git
synced 2024-11-23 15:47:57 -05:00
117 lines
3.9 KiB
JavaScript
117 lines
3.9 KiB
JavaScript
/* eslint-disable require-jsdoc */
|
|
/* eslint-disable max-len */
|
|
const { MessageEmbed } = require('discord.js')
|
|
function add (command, interval, bot) {
|
|
const id = setInterval(() => bot.core.run(command), interval)
|
|
|
|
bot.cloops.push({ id, interval, command })
|
|
}
|
|
function remove (item, bot) {
|
|
clearInterval(bot.cloops[item].id)
|
|
|
|
bot.cloops.splice(item, 1)
|
|
}
|
|
function clear (bot) {
|
|
for (const interval of bot.cloops) clearInterval(interval.id)
|
|
|
|
bot.cloops = []
|
|
}
|
|
function list (bot, discord, channeldc, selector) {
|
|
const message = []
|
|
|
|
if (discord) {
|
|
for (const [id, cloop] of Object.entries(bot.cloops)) {
|
|
message.push(id)
|
|
message.push(' > ')
|
|
message.push(`\`${cloop.command}\``)
|
|
message.push(' - ')
|
|
message.push(cloop.interval)
|
|
message.push('\n')
|
|
}
|
|
|
|
message.pop()
|
|
|
|
const Embed = new MessageEmbed()
|
|
.setColor('#FFFF00')
|
|
.setTitle('Cloops')
|
|
.setDescription(message.join(''))
|
|
channeldc.send({ embeds: [Embed] })
|
|
return
|
|
}
|
|
|
|
message.push({ text: 'Cloops:', color: 'green' })
|
|
message.push('\n')
|
|
|
|
for (const [id, cloop] of Object.entries(bot.cloops)) {
|
|
message.push({ text: id, color: 'aqua' })
|
|
message.push({ text: ' > ', color: 'gold' })
|
|
message.push({ text: cloop.command, color: 'green' })
|
|
message.push({ text: ' - ', color: 'gold' })
|
|
message.push({ text: cloop.interval, color: 'green' })
|
|
message.push('\n')
|
|
}
|
|
|
|
message.pop()
|
|
|
|
bot.tellraw(selector, message)
|
|
}
|
|
module.exports = {
|
|
name: 'cloop',
|
|
alias: [],
|
|
description: 'Loop commands',
|
|
usage: [
|
|
'<hash> <add> <interval> <command>',
|
|
'<hash> <remove> <index>',
|
|
'<hash> <removeall>',
|
|
'<hash> <list>'
|
|
],
|
|
trusted: 1,
|
|
execute (bot, username, usernameraw, sender, prefix, args, config, hash, ownerhash, selector) {
|
|
if (!bot.cloops) bot.cloops = []
|
|
if (args[1] === 'add' && args[3]) {
|
|
if (!Number(args[2]) && Number(args[2]) !== 0) throw new SyntaxError('Invalid interval')
|
|
add(args.slice(3).join(' '), args[2], bot)
|
|
bot.tellraw(selector, [{ text: 'Added command ', color: 'white' }, { text: `${args.slice(3).join(' ')}`, color: 'aqua' }, { text: ' with interval ', color: 'white' }, { text: `${args[2]}`, color: 'green' }, { text: ' to the cloops', color: 'white' }])
|
|
} else if (args[1] === 'list') {
|
|
list(bot, false, null, selector)
|
|
} else if (args[1] === 'remove') {
|
|
remove(args[2], bot)
|
|
bot.tellraw(selector, [{ text: 'Removed cloop ' }, { text: args[2], color: 'aqua' }])
|
|
} else if (args[1] === 'removeall') {
|
|
clear(bot)
|
|
bot.tellraw(selector, [{ text: 'Removed all looped commands', color: 'white' }])
|
|
} else {
|
|
throw new SyntaxError('Invalid argument')
|
|
}
|
|
},
|
|
discordExecute (bot, username, usernameraw, sender, prefix, args, channeldc, message) {
|
|
if (!bot.cloops) bot.cloops = []
|
|
if (args[0] === 'add' && args[2]) {
|
|
if (!Number(args[1]) && Number(args[1]) !== 0) throw new SyntaxError('Invalid interval')
|
|
add(args.slice(2).join(' '), args[1], bot)
|
|
const Embed = new MessageEmbed()
|
|
.setColor('#FFFF00')
|
|
.setTitle('Cloop')
|
|
.setDescription(`Added cloop \`${args.slice(2).join(' ')}\` with interval ${args[1]} to the cloops`)
|
|
channeldc.send({ embeds: [Embed] })
|
|
} else if (args[0] === 'list') {
|
|
list(bot, true, channeldc)
|
|
} else if (args[0] === 'remove') {
|
|
remove(args[1], bot)
|
|
const Embed = new MessageEmbed()
|
|
.setColor('#FFFF00')
|
|
.setTitle('Cloop')
|
|
.setDescription(`Removed cloop \`${args[1]}\``)
|
|
channeldc.send({ embeds: [Embed] })
|
|
} else if (args[0] === 'removeall') {
|
|
clear(bot)
|
|
const Embed = new MessageEmbed()
|
|
.setColor('#FFFF00')
|
|
.setTitle('Cloop')
|
|
.setDescription('Removed all looped commands')
|
|
channeldc.send({ embeds: [Embed] })
|
|
} else {
|
|
throw new Error('Invalid argument')
|
|
}
|
|
}
|
|
}
|