Browse Source

Added role updates via PRESENCE_UPDATE

tags/docs-0.9
RogueException 9 years ago
parent
commit
235ff5f7c7
3 changed files with 16 additions and 14 deletions
  1. +2
    -0
      src/Discord.Net/API/Members.cs
  2. +1
    -7
      src/Discord.Net/DiscordClient.cs
  3. +13
    -7
      src/Discord.Net/Models/Member.cs

+ 2
- 0
src/Discord.Net/API/Members.cs View File

@@ -48,6 +48,8 @@ namespace Discord.API
public string GameId;
[JsonProperty("status")]
public string Status;
[JsonProperty("roles")] //TODO: Might be temporary
public string[] Roles;
}
public class VoiceMemberInfo : MemberReference
{


+ 1
- 7
src/Discord.Net/DiscordClient.cs View File

@@ -621,13 +621,7 @@ namespace Discord
case "PRESENCE_UPDATE":
{
var data = e.Payload.ToObject<PresenceUpdateEvent>(_serializer);
var member = _members[data.User.Id, data.GuildId];
/*if (_config.TrackActivity)
{
var user = _users[data.User.Id];
if (user != null)
user.UpdateActivity(DateTime.UtcNow);
}*/
var member = _members.GetOrAdd(data.User.Id, data.GuildId);
if (member != null)
{
member.Update(data);


+ 13
- 7
src/Discord.Net/Models/Member.cs View File

@@ -95,13 +95,8 @@ namespace Discord
Update(model.User);
if (model.JoinedAt.HasValue)
JoinedAt = model.JoinedAt.Value;

//Set roles, with the everyone role added too
string[] newRoles = new string[model.Roles.Length + 1];
newRoles[0] = Server.EveryoneRoleId;
for (int i = 0; i < model.Roles.Length; i++)
newRoles[i + 1] = model.Roles[i];
RoleIds = newRoles;
if (model.Roles != null)
UpdateRoles(model.Roles);

UpdatePermissions();
}
@@ -118,6 +113,8 @@ namespace Discord
if (model.User != null)
Update(model.User as UserReference);

if (model.Roles != null)
UpdateRoles(model.Roles);
if (model.Status != null && Status != model.Status)
{
Status = model.Status;
@@ -148,6 +145,15 @@ namespace Discord
if (model.IsServerSuppressed != null)
IsServerSuppressed = model.IsServerSuppressed.Value;
}
private void UpdateRoles(string[] roleIds)
{
//Set roles, with the everyone role added too
string[] newRoles = new string[roleIds.Length + 1];
newRoles[0] = Server.EveryoneRoleId;
for (int i = 0; i < roleIds.Length; i++)
newRoles[i + 1] = roleIds[i];
RoleIds = newRoles;
}

internal void UpdateActivity(DateTime? activity = null)
{


Loading…
Cancel
Save