diff options
author | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2021-08-26 11:34:37 -0400 |
---|---|---|
committer | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2021-08-26 11:34:37 -0400 |
commit | 85d24271a00d9363fe022ebb8e132bd506c712ba (patch) | |
tree | c860c982f6adc2e05f8b0db67b0cdce9142ad136 /src/lib/extensions/discord.js | |
parent | 2e539511a49ff993eded39751a2e768315ee4ff6 (diff) | |
download | tanzanite-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.ts | 16 |
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 ( |