Fixed User nullref errors
This commit is contained in:
@@ -7,20 +7,20 @@ namespace Discord.API
|
|||||||
[JsonProperty("id")]
|
[JsonProperty("id")]
|
||||||
public ulong Id { get; set; }
|
public ulong Id { get; set; }
|
||||||
[JsonProperty("username")]
|
[JsonProperty("username")]
|
||||||
public string Username { get; set; }
|
public Optional<string> Username { get; set; }
|
||||||
[JsonProperty("discriminator")]
|
[JsonProperty("discriminator")]
|
||||||
public string Discriminator { get; set; }
|
public Optional<string> Discriminator { get; set; }
|
||||||
[JsonProperty("bot")]
|
[JsonProperty("bot")]
|
||||||
public bool Bot { get; set; }
|
public Optional<bool> Bot { get; set; }
|
||||||
[JsonProperty("avatar")]
|
[JsonProperty("avatar")]
|
||||||
public string Avatar { get; set; }
|
public Optional<string> Avatar { get; set; }
|
||||||
|
|
||||||
//CurrentUser
|
//CurrentUser
|
||||||
[JsonProperty("verified")]
|
[JsonProperty("verified")]
|
||||||
public bool Verified { get; set; }
|
public Optional<bool> Verified { get; set; }
|
||||||
[JsonProperty("email")]
|
[JsonProperty("email")]
|
||||||
public string Email { get; set; }
|
public Optional<string> Email { get; set; }
|
||||||
[JsonProperty("mfa_enabled")]
|
[JsonProperty("mfa_enabled")]
|
||||||
public bool MfaEnabled { get; set; }
|
public Optional<bool> MfaEnabled { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,9 +58,16 @@ namespace Discord
|
|||||||
internal void AddChannel(ICachedChannel channel)
|
internal void AddChannel(ICachedChannel channel)
|
||||||
{
|
{
|
||||||
_channels[channel.Id] = channel;
|
_channels[channel.Id] = channel;
|
||||||
|
|
||||||
var dmChannel = channel as CachedDMChannel;
|
var dmChannel = channel as CachedDMChannel;
|
||||||
if (dmChannel != null)
|
if (dmChannel != null)
|
||||||
_dmChannels[dmChannel.Recipient.Id] = dmChannel;
|
_dmChannels[dmChannel.Recipient.Id] = dmChannel;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var groupChannel = channel as CachedGroupChannel;
|
||||||
|
if (groupChannel != null)
|
||||||
|
_groupChannels.TryAdd(groupChannel.Id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
internal ICachedChannel RemoveChannel(ulong id)
|
internal ICachedChannel RemoveChannel(ulong id)
|
||||||
{
|
{
|
||||||
@@ -73,6 +80,12 @@ namespace Discord
|
|||||||
CachedDMChannel ignored;
|
CachedDMChannel ignored;
|
||||||
_dmChannels.TryRemove(dmChannel.Recipient.Id, out ignored);
|
_dmChannels.TryRemove(dmChannel.Recipient.Id, out ignored);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var groupChannel = channel as CachedGroupChannel;
|
||||||
|
if (groupChannel != null)
|
||||||
|
_groupChannels.TryRemove(id);
|
||||||
|
}
|
||||||
return channel;
|
return channel;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -528,7 +528,6 @@ namespace Discord
|
|||||||
|
|
||||||
var currentUser = new CachedSelfUser(this, data.User);
|
var currentUser = new CachedSelfUser(this, data.User);
|
||||||
int unavailableGuilds = 0;
|
int unavailableGuilds = 0;
|
||||||
//dataStore.GetOrAddUser(data.User.Id, _ => currentUser);
|
|
||||||
for (int i = 0; i < data.Guilds.Length; i++)
|
for (int i = 0; i < data.Guilds.Length; i++)
|
||||||
{
|
{
|
||||||
var model = data.Guilds[i];
|
var model = data.Guilds[i];
|
||||||
|
|||||||
@@ -31,9 +31,12 @@ namespace Discord
|
|||||||
|
|
||||||
base.Update(model, source);
|
base.Update(model, source);
|
||||||
|
|
||||||
Email = model.Email;
|
if (model.Email.IsSpecified)
|
||||||
IsVerified = model.Verified;
|
Email = model.Email.Value;
|
||||||
IsMfaEnabled = model.MfaEnabled;
|
if (model.Verified.IsSpecified)
|
||||||
|
IsVerified = model.Verified.Value;
|
||||||
|
if (model.MfaEnabled.IsSpecified)
|
||||||
|
IsMfaEnabled = model.MfaEnabled.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task UpdateAsync()
|
public async Task UpdateAsync()
|
||||||
|
|||||||
@@ -31,10 +31,14 @@ namespace Discord
|
|||||||
{
|
{
|
||||||
if (source == UpdateSource.Rest && IsAttached) return;
|
if (source == UpdateSource.Rest && IsAttached) return;
|
||||||
|
|
||||||
_avatarId = model.Avatar;
|
if (model.Avatar.IsSpecified)
|
||||||
DiscriminatorValue = ushort.Parse(model.Discriminator);
|
_avatarId = model.Avatar.Value;
|
||||||
IsBot = model.Bot;
|
if (model.Discriminator.IsSpecified)
|
||||||
Username = model.Username;
|
DiscriminatorValue = ushort.Parse(model.Discriminator.Value);
|
||||||
|
if (model.Bot.IsSpecified)
|
||||||
|
IsBot = model.Bot.Value;
|
||||||
|
if (model.Username.IsSpecified)
|
||||||
|
Username = model.Username.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString() => $"{Username}#{Discriminator}";
|
public override string ToString() => $"{Username}#{Discriminator}";
|
||||||
|
|||||||
Reference in New Issue
Block a user