add settings command

This commit is contained in:
Lio Young 2021-07-08 22:16:37 +02:00
parent 1075035e1d
commit 0903e72c57
1 changed files with 126 additions and 3 deletions

View File

@ -1,7 +1,8 @@
import Command from '../../handler/structures/Command';
import { Context } from '../../utils/types';
import { Context, Server } from '../../utils/types';
import lingua from '../../utils/lingua';
import { MessageEmbed } from 'discord.js';
import database from "../../utils/database"
function enabled(a: boolean, lang: string) {
// @ts-ignore
@ -19,8 +20,130 @@ export = class Settings extends Command {
async command(ctx: Context) {
let settings = ctx.settings
let sub = ctx.args[0]
ctx.args.shift()
let value = ctx.args[0]
const Embed = new MessageEmbed().setColor(ctx.config.variables.color).setFooter(`${ctx.config.variables.name}`, ctx.config.variables.avatar)
console.log(settings)
// Embed.addField("")
switch (sub) {
case "toggle":
switch (value) {
case "shortlinks":
case "sl":
case "shorts":
{
// @ts-ignore
let { data, error } = await database.from<Server>("servers").update({ shortlinks: !ctx.settings.shortlinks }).match({ server_id: ctx.guild?.id })
// @ts-ignore
if (error) throw new Error(error)
const embed = new MessageEmbed()
.setColor(ctx.config.variables.color)
.setFooter(`${ctx.config.variables.name}`, ctx.config.variables.avatar)
.setTitle(`Toggled Shortlink for ${ctx.guild?.name}`)
.setDescription(`Successfully ${enabled(!ctx.settings.shortlinks, ctx.settings.locale)} Shortlinks on this Server.`)
return ctx.channel.send(embed)
}
case "sourcefinder":
case "sf":
case "sauce":
{
// @ts-ignore
let { data, error } = await database.from<Server>("servers").update({ sourcefinder: !ctx.settings.sourcefinder }).match({ server_id: ctx.guild?.id })
// @ts-ignore
if (error) throw new Error(error)
const embed = new MessageEmbed()
.setColor(ctx.config.variables.color)
.setFooter(`${ctx.config.variables.name}`, ctx.config.variables.avatar)
.setTitle(`Toggled Sourcefinder for ${ctx.guild?.name}`)
.setDescription(`Successfully ${enabled(!ctx.settings.sourcefinder, ctx.settings.locale)} Sourcefinder on this Server.`)
return ctx.channel.send(embed)
}
case "embeds":
case "imageembeds":
{
// @ts-ignore
let { data, error } = await database.from<Server>("servers").update({ embeds: !ctx.settings.embeds }).match({ server_id: ctx.guild?.id })
// @ts-ignore
if (error) throw new Error(error)
const embed = new MessageEmbed()
.setColor(ctx.config.variables.color)
.setFooter(`${ctx.config.variables.name}`, ctx.config.variables.avatar)
.setTitle(`Toggled Embeds for ${ctx.guild?.name}`)
.setDescription(`Successfully ${enabled(!ctx.settings.embeds, ctx.settings.locale)} Embeds for this Server.`)
return ctx.channel.send(embed)
}
case "interactions":
case "rptext":
{
// @ts-ignore
let { data, error } = await database.from<Server>("servers").update({ interaction_text: !ctx.settings.interaction_text }).match({ server_id: ctx.guild?.id })
// @ts-ignore
if (error) throw new Error(error)
const embed = new MessageEmbed()
.setColor(ctx.config.variables.color)
.setFooter(`${ctx.config.variables.name}`, ctx.config.variables.avatar)
.setTitle(`Toggled RP Text on RP Commands for ${ctx.guild?.name}`)
.setDescription(`Successfully ${enabled(!ctx.settings.interaction_text, ctx.settings.locale)} RP Text for this Server.`)
return ctx.channel.send(embed)
}
// case "shortlinks":
// case "sl":
// case "shorts":
// case "sourcefinder":
// case "sf":
// case "sauce":
// case "embeds":
// case "imageembeds":
// case "interactions":
// case "rptext":
default:
// @ts-ignore
Embed.setDescription(`${lingua[settings.locale].MISSING.VALUE.SETTING}
**Valid Settings**:
- shortlinks
- shorts
- sl
- sourcefinder
- sauce
- sf
- embeds
- imageembeds
- interactions
- rptext`)
return ctx.channel.send(Embed)
}
default: {
Embed.setTitle("Settings for " + ctx.guild?.name)
.setDescription(`
**Prefixes**
- ${settings.prefix.join("\n- ")}`)
.addField("Shortlinks", enabled(settings.shortlinks, settings.locale), true)
.addField("Sourcefinder", enabled(settings.sourcefinder, settings.locale), true)
.addField("*_ _*", "*_ _*", true)
.addField("RP Text", enabled(settings.interaction_text, settings.locale), true)
.addField("Image Embeds", enabled(settings.embeds, settings.locale), true)
}
}
ctx.channel.send(Embed)
}
}