Fixed several model processing bugs
This commit is contained in:
@@ -219,7 +219,7 @@ namespace Discord.API
|
||||
switch (channels.Length)
|
||||
{
|
||||
case 0:
|
||||
throw new ArgumentOutOfRangeException(nameof(args));
|
||||
return;
|
||||
case 1:
|
||||
await ModifyGuildChannel(channels[0].Id, new ModifyGuildChannelParams { Position = channels[0].Position }).ConfigureAwait(false);
|
||||
break;
|
||||
@@ -476,8 +476,10 @@ namespace Discord.API
|
||||
|
||||
if (result.Count > 1)
|
||||
return result.SelectMany(x => x);
|
||||
else
|
||||
else if (result.Count == 1)
|
||||
return result[0];
|
||||
else
|
||||
return Array.Empty<GuildMember>();
|
||||
}
|
||||
public async Task RemoveGuildMember(ulong guildId, ulong userId)
|
||||
{
|
||||
@@ -535,7 +537,7 @@ namespace Discord.API
|
||||
switch (roles.Length)
|
||||
{
|
||||
case 0:
|
||||
throw new ArgumentOutOfRangeException(nameof(args));
|
||||
return Array.Empty<Role>();
|
||||
case 1:
|
||||
return ImmutableArray.Create(await ModifyGuildRole(guildId, roles[0].Id, roles[0]).ConfigureAwait(false));
|
||||
default:
|
||||
@@ -580,10 +582,12 @@ namespace Discord.API
|
||||
if (models.Length != DiscordConfig.MaxMessagesPerBatch) { i++; break; }
|
||||
}
|
||||
|
||||
if (runs > 1)
|
||||
return result.Take(runs).SelectMany(x => x);
|
||||
else
|
||||
if (i > 1)
|
||||
return result.Take(i).SelectMany(x => x);
|
||||
else if (i == 1)
|
||||
return result[0];
|
||||
else
|
||||
return Array.Empty<Message>();
|
||||
}
|
||||
public Task<Message> CreateMessage(ulong channelId, CreateMessageParams args)
|
||||
=> CreateMessage(0, channelId, args);
|
||||
@@ -636,7 +640,7 @@ namespace Discord.API
|
||||
switch (messageIds.Length)
|
||||
{
|
||||
case 0:
|
||||
throw new ArgumentOutOfRangeException(nameof(args.MessageIds));
|
||||
return;
|
||||
case 1:
|
||||
await DeleteMessage(guildId, channelId, messageIds[0]).ConfigureAwait(false);
|
||||
break;
|
||||
|
||||
@@ -81,11 +81,11 @@ namespace Discord.Rest
|
||||
{
|
||||
var emojis = ImmutableArray.CreateBuilder<Emoji>(model.Emojis.Length);
|
||||
for (int i = 0; i < model.Emojis.Length; i++)
|
||||
emojis[i] = new Emoji(model.Emojis[i]);
|
||||
emojis.Add(new Emoji(model.Emojis[i]));
|
||||
Emojis = emojis.ToArray();
|
||||
}
|
||||
else
|
||||
Emojis = ImmutableArray<Emoji>.Empty;
|
||||
Emojis = Array.Empty<Emoji>();
|
||||
|
||||
var roles = new ConcurrentDictionary<ulong, Role>(1, model.Roles?.Length ?? 0);
|
||||
if (model.Roles != null)
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace Discord.Rest
|
||||
Attachments = ImmutableArray.Create(attachments);
|
||||
}
|
||||
else
|
||||
Attachments = ImmutableArray<Attachment>.Empty;
|
||||
Attachments = Array.Empty<Attachment>();
|
||||
|
||||
if (model.Embeds.Length > 0)
|
||||
{
|
||||
@@ -78,18 +78,18 @@ namespace Discord.Rest
|
||||
Embeds = ImmutableArray.Create(embeds);
|
||||
}
|
||||
else
|
||||
Embeds = ImmutableArray<Embed>.Empty;
|
||||
Embeds = Array.Empty<Embed>();
|
||||
|
||||
if (model.Mentions.Length > 0)
|
||||
{
|
||||
var discord = Discord;
|
||||
var builder = ImmutableArray.CreateBuilder<PublicUser>(model.Mentions.Length);
|
||||
for (int i = 0; i < model.Mentions.Length; i++)
|
||||
builder[i] = new PublicUser(discord, model.Mentions[i]);
|
||||
builder.Add(new PublicUser(discord, model.Mentions[i]));
|
||||
MentionedUsers = builder.ToArray();
|
||||
}
|
||||
else
|
||||
MentionedUsers = ImmutableArray<PublicUser>.Empty;
|
||||
MentionedUsers = Array.Empty<PublicUser>();
|
||||
MentionedChannelIds = MentionHelper.GetChannelMentions(model.Content);
|
||||
MentionedRoleIds = MentionHelper.GetRoleMentions(model.Content);
|
||||
if (model.IsMentioningEveryone)
|
||||
|
||||
@@ -39,9 +39,9 @@ namespace Discord.Rest
|
||||
Nickname = model.Nick;
|
||||
|
||||
var roles = ImmutableArray.CreateBuilder<Role>(model.Roles.Length + 1);
|
||||
roles[0] = Guild.EveryoneRole;
|
||||
roles.Add(Guild.EveryoneRole);
|
||||
for (int i = 0; i < model.Roles.Length; i++)
|
||||
roles[i + 1] = Guild.GetRole(model.Roles[i]);
|
||||
roles.Add(Guild.GetRole(model.Roles[i]));
|
||||
_roles = roles.ToImmutable();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user