Browse Source

Add MaxUploadLimit to guilds (#2001)

tags/3.1.0
Quin Lynch GitHub 3 years ago
parent
commit
7745558bdc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 0 deletions
  1. +5
    -0
      src/Discord.Net.Core/Entities/Guilds/IGuild.cs
  2. +10
    -0
      src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs
  3. +9
    -0
      src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs
  4. +3
    -0
      src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs
  5. +3
    -0
      src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs

+ 5
- 0
src/Discord.Net.Core/Entities/Guilds/IGuild.cs View File

@@ -354,6 +354,11 @@ namespace Discord
/// </returns>
bool IsBoostProgressBarEnabled { get; }

/// <summary>
/// Gets the upload limit in bytes for this guild. This number is dependent on the guild's boost status.
/// </summary>
ulong MaxUploadLimit { get; }

/// <summary>
/// Modifies this guild.
/// </summary>


+ 10
- 0
src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs View File

@@ -372,6 +372,16 @@ namespace Discord.Rest
Preconditions.NotNullOrEmpty(attachment.FileName, nameof(attachment.FileName), "File Name must not be empty or null");
}

if (channel is ITextChannel guildTextChannel)
{
var contentSize = (ulong)attachments.Sum(x => x.Stream.Length);

if (contentSize > guildTextChannel.Guild.MaxUploadLimit)
{
throw new ArgumentOutOfRangeException(nameof(attachments), $"Collective file size exceeds the max file size of {guildTextChannel.Guild.MaxUploadLimit} bytes in that guild!");
}
}

// check that user flag and user Id list are exclusive, same with role flag and role Id list
if (allowedMentions != null && allowedMentions.AllowedTypes.HasValue)
{


+ 9
- 0
src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs View File

@@ -124,6 +124,15 @@ namespace Discord.Rest
{
await client.ApiClient.DeleteGuildAsync(guild.Id, options).ConfigureAwait(false);
}
public static ulong GetUploadLimit(IGuild guild)
{
return guild.PremiumTier switch
{
PremiumTier.Tier2 => 50ul * 1000000,
PremiumTier.Tier3 => 100ul * 1000000,
_ => 8ul * 1000000
};
}
#endregion

#region Bans


+ 3
- 0
src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs View File

@@ -99,6 +99,9 @@ namespace Discord.Rest
};
}
}
/// <inheritdoc/>
public ulong MaxUploadLimit
=> GuildHelper.GetUploadLimit(this);
/// <inheritdoc />
public NsfwLevel NsfwLevel { get; private set; }
/// <inheritdoc />


+ 3
- 0
src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs View File

@@ -201,6 +201,9 @@ namespace Discord.WebSocket
};
}
}
/// <inheritdoc/>
public ulong MaxUploadLimit
=> GuildHelper.GetUploadLimit(this);
/// <summary>
/// Gets the widget channel (i.e. the channel set in the guild's widget settings) in this guild.
/// </summary>


Loading…
Cancel
Save