summaryrefslogtreecommitdiff
path: root/node_modules/discord.js/src/structures/ClientUserGuildSettings.js
diff options
context:
space:
mode:
author8cy <[email protected]>2020-04-03 02:37:42 -0700
committer8cy <[email protected]>2020-04-03 02:37:42 -0700
commit60867fb030bae582082340ead7dbc7efdc2f5398 (patch)
tree4c6a7356351be2e4914e15c4703172597c45656e /node_modules/discord.js/src/structures/ClientUserGuildSettings.js
parentcommenting (diff)
downloads5nical-60867fb030bae582082340ead7dbc7efdc2f5398.tar.xz
s5nical-60867fb030bae582082340ead7dbc7efdc2f5398.zip
2020/04/03, 02:34, v1.2.0
Diffstat (limited to 'node_modules/discord.js/src/structures/ClientUserGuildSettings.js')
-rw-r--r--node_modules/discord.js/src/structures/ClientUserGuildSettings.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/node_modules/discord.js/src/structures/ClientUserGuildSettings.js b/node_modules/discord.js/src/structures/ClientUserGuildSettings.js
new file mode 100644
index 0000000..5a28747
--- /dev/null
+++ b/node_modules/discord.js/src/structures/ClientUserGuildSettings.js
@@ -0,0 +1,60 @@
+const Constants = require('../util/Constants');
+const Collection = require('../util/Collection');
+const ClientUserChannelOverride = require('./ClientUserChannelOverride');
+
+/**
+ * A wrapper around the ClientUser's guild settings.
+ */
+class ClientUserGuildSettings {
+ constructor(data, client) {
+ /**
+ * The client that created the instance of the ClientUserGuildSettings
+ * @name ClientUserGuildSettings#client
+ * @type {Client}
+ * @readonly
+ */
+ Object.defineProperty(this, 'client', { value: client });
+ /**
+ * The ID of the guild this settings are for
+ * @type {Snowflake}
+ */
+ this.guildID = data.guild_id;
+ this.channelOverrides = new Collection();
+ this.patch(data);
+ }
+
+ /**
+ * Patch the data contained in this class with new partial data.
+ * @param {Object} data Data to patch this with
+ * @returns {void}
+ * @private
+ */
+ patch(data) {
+ for (const key of Object.keys(Constants.UserGuildSettingsMap)) {
+ const value = Constants.UserGuildSettingsMap[key];
+ if (!data.hasOwnProperty(key)) continue;
+ if (key === 'channel_overrides') {
+ for (const channel of data[key]) {
+ this.channelOverrides.set(channel.channel_id,
+ new ClientUserChannelOverride(channel));
+ }
+ } else if (typeof value === 'function') {
+ this[value.name] = value(data[key]);
+ } else {
+ this[value] = data[key];
+ }
+ }
+ }
+
+ /**
+ * Update a specific property of the guild settings.
+ * @param {string} name Name of property
+ * @param {value} value Value to patch
+ * @returns {Promise<Object>}
+ */
+ update(name, value) {
+ return this.client.rest.methods.patchClientUserGuildSettings(this.guildID, { [name]: value });
+ }
+}
+
+module.exports = ClientUserGuildSettings;