summaryrefslogtreecommitdiff
path: root/node_modules/discord.js/src/structures/GuildOnboarding.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/discord.js/src/structures/GuildOnboarding.js')
-rw-r--r--node_modules/discord.js/src/structures/GuildOnboarding.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/node_modules/discord.js/src/structures/GuildOnboarding.js b/node_modules/discord.js/src/structures/GuildOnboarding.js
new file mode 100644
index 0000000..119f905
--- /dev/null
+++ b/node_modules/discord.js/src/structures/GuildOnboarding.js
@@ -0,0 +1,58 @@
+'use strict';
+
+const { Collection } = require('@discordjs/collection');
+const Base = require('./Base');
+const { GuildOnboardingPrompt } = require('./GuildOnboardingPrompt');
+
+/**
+ * Represents the onboarding data of a guild.
+ * @extends {Base}
+ */
+class GuildOnboarding extends Base {
+ constructor(client, data) {
+ super(client);
+
+ /**
+ * The id of the guild this onboarding data is for
+ * @type {Snowflake}
+ */
+ this.guildId = data.guild_id;
+
+ const guild = this.guild;
+
+ /**
+ * The prompts shown during onboarding and in customize community
+ * @type {Collection<Snowflake, GuildOnboardingPrompt>}
+ */
+ this.prompts = data.prompts.reduce(
+ (prompts, prompt) => prompts.set(prompt.id, new GuildOnboardingPrompt(client, prompt, this.guildId)),
+ new Collection(),
+ );
+
+ /**
+ * The ids of the channels that new members get opted into automatically
+ * @type {Collection<Snowflake, GuildChannel>}
+ */
+ this.defaultChannels = data.default_channel_ids.reduce(
+ (channels, channelId) => channels.set(channelId, guild.channels.cache.get(channelId)),
+ new Collection(),
+ );
+
+ /**
+ * Whether onboarding is enabled
+ * @type {boolean}
+ */
+ this.enabled = data.enabled;
+ }
+
+ /**
+ * The guild this onboarding is from
+ * @type {Guild}
+ * @readonly
+ */
+ get guild() {
+ return this.client.guilds.cache.get(this.guildId);
+ }
+}
+
+exports.GuildOnboarding = GuildOnboarding;