aboutsummaryrefslogtreecommitdiff
path: root/src/lib/extensions/discord.js
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2021-08-26 11:34:37 -0400
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2021-08-26 11:34:37 -0400
commit85d24271a00d9363fe022ebb8e132bd506c712ba (patch)
treec860c982f6adc2e05f8b0db67b0cdce9142ad136 /src/lib/extensions/discord.js
parent2e539511a49ff993eded39751a2e768315ee4ff6 (diff)
downloadtanzanite-85d24271a00d9363fe022ebb8e132bd506c712ba.tar.gz
tanzanite-85d24271a00d9363fe022ebb8e132bd506c712ba.tar.bz2
tanzanite-85d24271a00d9363fe022ebb8e132bd506c712ba.zip
features wip
Diffstat (limited to 'src/lib/extensions/discord.js')
-rw-r--r--src/lib/extensions/discord.js/BushGuild.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/extensions/discord.js/BushGuild.ts b/src/lib/extensions/discord.js/BushGuild.ts
index 908fcec..4fc27a7 100644
--- a/src/lib/extensions/discord.js/BushGuild.ts
+++ b/src/lib/extensions/discord.js/BushGuild.ts
@@ -20,6 +20,22 @@ export class BushGuild extends Guild {
return features.includes(feature);
}
+ public async addFeature(feature: GuildFeatures): Promise<GuildModel['enabledFeatures']> {
+ const features = await this.getSetting('enabledFeatures');
+ const newFeatures = util.addOrRemoveFromArray('add', features, feature);
+ return (await this.setSetting('enabledFeatures', newFeatures)).enabledFeatures;
+ }
+
+ public async removeFeature(feature: GuildFeatures): Promise<GuildModel['enabledFeatures']> {
+ const features = await this.getSetting('enabledFeatures');
+ const newFeatures = util.addOrRemoveFromArray('remove', features, feature);
+ return (await this.setSetting('enabledFeatures', newFeatures)).enabledFeatures;
+ }
+
+ public async toggleFeature(feature: GuildFeatures): Promise<GuildModel['enabledFeatures']> {
+ return (await this.hasFeature(feature)) ? await this.removeFeature(feature) : await this.addFeature(feature);
+ }
+
public async getSetting<K extends keyof GuildModel>(setting: K): Promise<GuildModel[K]> {
// client.console.debug(`getSetting: ${setting}`);
return (