const { Setting } = require('../../../../interfaces'); class DescriptionSetting extends Setting { constructor(client) { super(client, { name: 'index', module: 'utility', index: 'guildIndex', aliases: [ ], usage: '', examples: [ 'index on', 'index description some description here', 'description some description here', 'description clear' ], guarded: false, resolve: 'GUILD', default: { guildIndex: { indexed: false, description: 'Use `-settings description` to change your guild description', tags: [] } }, custom: true }); } async handle(message, params) { let index = null, langParams = {}; const setting = message.guild._settings[this.index] || this.default[this.index]; const { guild } = message; const { resolver } = this.client; const method = params[0].toLowerCase(); if (method === 'description' || message._settingCaller === 'description') { if (method === 'description') params.shift(); if (params[0].toLowerCase() === 'clear') setting.description = this.default[this.index].description; else setting.description = params.join(', '); index = 'S_INDEX_DESCRIPTION_SET'; langParams.changes = setting.description || 'N/A'; } else if (resolver.resolveBoolean(method)) { setting.indexed = true; index = 'S_INDEX_TOGGLE'; langParams.toggle = message.format('ON_OFF_TOGGLE', { toggle: true }, true); } else if (resolver.resolveBoolean(method) === false) { setting.indexed = false; index = 'S_INDEX_TOGGLE'; langParams.toggle = message.format('ON_OFF_TOGGLE', { toggle: false }, true); } else return { error: true, msg: message.format('ERR_INVALID_METHOD', { method }) }; await message.guild._updateSettings({ [this.index]: setting }); return { error: false, msg: message.format(index, langParams) }; } async fields(guild) { const setting = guild._settings[this.index]; return [ { name: '》 Indexing', value: setting?.indexed, inline: true }, { name: '》 Tags', value: setting?.tags.join(', ') || 'N/A', inline: true }, { name: '》 Description', value: setting?.description || 'N/A' } ]; } } module.exports = DescriptionSetting;