chomens-bot-js/commands/cloop.js

103 lines
3.7 KiB
JavaScript
Raw Permalink Normal View History

const { EmbedBuilder } = require('discord.js')
2022-08-14 05:51:45 -04:00
2022-12-01 05:15:30 -05:00
function list (bot, discord, channeldc, selector, config) {
2022-11-27 02:35:28 -05:00
const message = []
2022-08-14 05:51:45 -04:00
2022-10-19 21:14:29 -04:00
if (discord) {
2022-12-09 08:09:49 -05:00
for (const [index, { command, interval, list }] of Object.entries(bot.cloop.list)) {
if (!list) continue
2022-12-09 08:09:49 -05:00
message.push(index)
2022-11-27 02:35:28 -05:00
message.push(' > ')
2022-12-09 08:09:49 -05:00
message.push(`\`${command}\``)
2022-11-27 02:35:28 -05:00
message.push(' - ')
2022-12-09 08:09:49 -05:00
message.push(interval)
2022-11-27 02:35:28 -05:00
message.push('\n')
2022-10-19 21:14:29 -04:00
}
2022-11-27 02:35:28 -05:00
message.pop()
2022-10-19 21:14:29 -04:00
const Embed = new EmbedBuilder()
2022-12-01 05:15:30 -05:00
.setColor(config.discord.embedsColors.normal)
2022-11-27 02:35:28 -05:00
.setTitle('Cloops')
.setDescription(message.join(''))
channeldc.send({ embeds: [Embed] })
} else {
message.push({ text: 'Cloops:', color: 'green' })
2022-11-27 02:35:28 -05:00
message.push('\n')
2022-08-14 05:51:45 -04:00
2022-12-09 08:09:49 -05:00
for (const [index, { command, interval, list }] of Object.entries(bot.cloop.list)) {
if (!list) continue
2022-12-09 08:09:49 -05:00
message.push({ text: index, color: 'aqua' })
message.push({ text: ' > ', color: 'gold' })
2022-12-09 08:09:49 -05:00
message.push({ text: command, color: 'green' })
message.push({ text: ' - ', color: 'gold' })
2022-12-09 08:09:49 -05:00
message.push({ text: interval, color: 'green' })
message.push('\n')
}
2022-08-14 05:51:45 -04:00
message.pop()
bot.tellraw(selector, message)
}
2022-08-14 05:51:45 -04:00
}
2022-08-14 05:51:45 -04:00
module.exports = {
name: 'cloop',
alias: [],
description: 'Loop commands',
usage: [
'<hash> add <interval> <command>',
'<hash> remove <index>',
'<hash> removeall|clear',
'<hash> list'
],
2022-08-14 05:51:45 -04:00
trusted: 1,
execute (bot, username, sender, prefix, args, config, hash, ownerhash, selector) {
if (args[1] === 'add' && args[3]) {
2022-11-27 02:35:28 -05:00
if (!Number(args[2]) && Number(args[2]) !== 0) throw new SyntaxError('Invalid interval')
bot.cloop.add(args.slice(3).join(' '), args[2])
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') {
2022-11-27 02:35:28 -05:00
list(bot, false, null, selector)
} else if (args[1] === 'remove') {
bot.cloop.remove(args[2])
2022-11-27 02:35:28 -05:00
bot.tellraw(selector, [{ text: 'Removed cloop ' }, { text: args[2], color: 'aqua' }])
} else if (args[1] === 'removeall' || args[1] === 'clear') {
bot.cloop.clear()
2022-11-27 02:35:28 -05:00
bot.tellraw(selector, [{ text: 'Removed all looped commands', color: 'white' }])
2022-11-07 08:08:29 -05:00
} else {
2022-11-27 02:35:28 -05:00
throw new SyntaxError('Invalid argument')
2022-08-14 05:51:45 -04:00
}
},
discordExecute (bot, username, sender, prefix, args, channeldc, message, config) {
if (args[0] === 'add' && args[2]) {
2022-11-27 02:35:28 -05:00
if (!Number(args[1]) && Number(args[1]) !== 0) throw new SyntaxError('Invalid interval')
bot.cloop.add(args.slice(2).join(' '), args[1])
const Embed = new EmbedBuilder()
2022-12-01 05:15:30 -05:00
.setColor(config.discord.embedsColors.normal)
2022-11-27 02:35:28 -05:00
.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') {
2022-12-01 05:15:30 -05:00
list(bot, true, channeldc, '@a', config)
} else if (args[0] === 'remove') {
bot.cloop.remove(args[1])
const Embed = new EmbedBuilder()
2022-12-01 05:15:30 -05:00
.setColor(config.discord.embedsColors.normal)
2022-11-27 02:35:28 -05:00
.setTitle('Cloop')
.setDescription(`Removed cloop \`${args[1]}\``)
channeldc.send({ embeds: [Embed] })
} else if (args[0] === 'removeall' || args[0] === 'clear') {
bot.cloop.clear()
const Embed = new EmbedBuilder()
2022-12-01 05:15:30 -05:00
.setColor(config.discord.embedsColors.normal)
2022-11-27 02:35:28 -05:00
.setTitle('Cloop')
.setDescription('Removed all looped commands')
channeldc.send({ embeds: [Embed] })
2022-11-07 08:08:29 -05:00
} else {
2022-11-27 02:35:28 -05:00
throw new Error('Invalid argument')
2022-10-19 21:14:29 -04:00
}
2022-11-27 02:35:28 -05:00
}
}