public CachedMember(CachedSharedUser sharedUser, Snowflake guildId, MemberJsonModel model) : base(sharedUser) { GuildId = guildId; Update(model); }
public void Update(MemberJsonModel model) { if (model.User.HasValue) { Update(model.User.Value); } Nick = model.Nick; RoleIds = model.Roles.ReadOnly(); if (model.JoinedAt.HasValue) { JoinedAt = model.JoinedAt.Value; } if (model.Mute.HasValue) { IsMuted = model.Mute.Value; } if (model.Deaf.HasValue) { IsDeafened = model.Deaf.Value; } if (model.PremiumSince.HasValue) { BoostedAt = model.PremiumSince.Value; } IsPending = model.Pending.GetValueOrDefault(); }
public static CachedMember GetOrAddMember(this IGatewayDispatcher dispatcher, ISynchronizedDictionary <Snowflake, CachedSharedUser> userCache, ISynchronizedDictionary <Snowflake, CachedMember> memberCache, Snowflake guildId, MemberJsonModel memberModel) { if (!memberModel.User.HasValue) { return(null); } var sharedUser = dispatcher.GetOrAddSharedUser(userCache, memberModel.User.Value); if (sharedUser == null) { return(null); } if (memberCache.TryGetValue(memberModel.User.Value.Id, out var member)) { member.Update(memberModel); return(member); } member = new CachedMember(sharedUser, guildId, memberModel); memberCache.Add(memberModel.User.Value.Id, member); return(member); }
public static IMember GetOrAddMemberTransient(this IGatewayDispatcher dispatcher, ISynchronizedDictionary <Snowflake, CachedSharedUser> userCache, ISynchronizedDictionary <Snowflake, CachedMember> memberCache, Snowflake guildId, MemberJsonModel memberModel) { if (!memberModel.User.HasValue) { return(null); } var member = dispatcher.GetOrAddMember(userCache, memberCache, guildId, memberModel); return(member ?? new TransientMember(dispatcher.Client, guildId, memberModel) as IMember); }
public void Update(MemberJsonModel model) { if (model.User.HasValue) { Update(model.User.Value); } Nick = model.Nick; _roleIds = model.Roles; if (model.JoinedAt.HasValue) { JoinedAt = model.JoinedAt.Value; } if (model.Mute.HasValue) { IsMuted = model.Mute.Value; } if (model.Deaf.HasValue) { IsDeafened = model.Deaf.Value; } if (model.PremiumSince.HasValue) { BoostedAt = model.PremiumSince.Value; } IsPending = model.Pending.GetValueOrDefault(); if (model.Avatar.HasValue) { GuildAvatarHash = model.Avatar.Value; } if (model.CommunicationDisabledUntil.HasValue) { TimedOutUntil = model.CommunicationDisabledUntil.Value; } }
public static CachedMember GetOrAddMember(this IGatewayDispatcher dispatcher, Snowflake guildId, MemberJsonModel model) { var sharedUser = dispatcher.GetOrAddSharedUser(model.User.Value); if (sharedUser == null) { return(null); } if (dispatcher.Client.CacheProvider.TryGetMembers(guildId, out var cache)) { if (cache.TryGetValue(model.User.Value.Id, out var member)) { member.Update(model); return(member); } member = new CachedMember(sharedUser, guildId, model); cache.Add(model.User.Value.Id, member); return(member); } return(null); }
public static IMember GetOrAddMemberTransient(this IGatewayDispatcher dispatcher, Snowflake guildId, MemberJsonModel memberModel) { if (!memberModel.User.HasValue) { return(null); } var member = dispatcher.GetOrAddMember(guildId, memberModel); return(member ?? new TransientMember(dispatcher.Client, guildId, memberModel) as IMember); }