forked from Galactic/galactic-bot
95 lines
2.8 KiB
JavaScript
95 lines
2.8 KiB
JavaScript
const { Setting } = require('../../../../interfaces');
|
|
|
|
class DescriptionSetting extends Setting {
|
|
|
|
constructor(client) {
|
|
|
|
super(client, {
|
|
name: 'index',
|
|
module: 'utility',
|
|
index: 'guildIndex',
|
|
aliases: [
|
|
],
|
|
usage: '<method|value..>',
|
|
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; |