setCommunity mode
This commit is contained in:
		@@ -1412,6 +1412,46 @@ class Guild extends AnonymousGuild {
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Set Community Feature
 | 
			
		||||
   * @param {Boolean} stats True / False to enable / disable Community Feature
 | 
			
		||||
   * @param {TextChannelResolvable} publicUpdatesChannel 
 | 
			
		||||
   * @param {TextChannelResolvable} rulesChannel 
 | 
			
		||||
   * @param {String} reason 
 | 
			
		||||
   */
 | 
			
		||||
  async setCommunity(stats = true, publicUpdatesChannel = '1', rulesChannel = '1', reason) {
 | 
			
		||||
    if (stats) {
 | 
			
		||||
      // Check everyone role
 | 
			
		||||
      const everyoneRole = this.roles.everyone;
 | 
			
		||||
      if (everyoneRole.mentionable) {
 | 
			
		||||
        await everyoneRole.setMentionable(false, reason);
 | 
			
		||||
      }
 | 
			
		||||
      // Setting
 | 
			
		||||
      this.edit(
 | 
			
		||||
        {
 | 
			
		||||
          defaultMessageNotifications: 'ONLY_MENTIONS',
 | 
			
		||||
          explicitContentFilter: 'ALL_MEMBERS',
 | 
			
		||||
          features: [...this.features, 'COMMUNITY'],
 | 
			
		||||
          publicUpdatesChannel,
 | 
			
		||||
          rulesChannel,
 | 
			
		||||
          verificationLevel:
 | 
			
		||||
            VerificationLevels[this.verificationLevel] < 1
 | 
			
		||||
              ? 'LOW'
 | 
			
		||||
              : this.verificationLevel, // Email
 | 
			
		||||
        },
 | 
			
		||||
        reason,
 | 
			
		||||
      );
 | 
			
		||||
    } else {
 | 
			
		||||
      this.edit({
 | 
			
		||||
        publicUpdatesChannel: null,
 | 
			
		||||
        rulesChannel: null,
 | 
			
		||||
        features: this.features.filter(f => f !== 'COMMUNITY'),
 | 
			
		||||
        preferredLocale: this.preferredLocale,
 | 
			
		||||
        description: this.description,
 | 
			
		||||
      }, reason);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  toJSON() {
 | 
			
		||||
    const json = super.toJSON({
 | 
			
		||||
      available: false,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								typings/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								typings/index.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1012,6 +1012,7 @@ export class Guild extends AnonymousGuild {
 | 
			
		||||
  public setSystemChannelFlags(systemChannelFlags: SystemChannelFlagsResolvable, reason?: string): Promise<Guild>;
 | 
			
		||||
  public setVerificationLevel(verificationLevel: VerificationLevel | number, reason?: string): Promise<Guild>;
 | 
			
		||||
  public setPremiumProgressBarEnabled(enabled?: boolean, reason?: string): Promise<Guild>;
 | 
			
		||||
  public setCommunity(stats: boolean, publicUpdatesChannel: TextChannelResolvable, rulesChannel: TextChannelResolvable, reason?: string): Promise<Guild>;
 | 
			
		||||
  public setWidgetSettings(settings: GuildWidgetSettingsData, reason?: string): Promise<Guild>;
 | 
			
		||||
  public toJSON(): unknown;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user