public async Task <ContextObject> CreateFromUserChannelAsync(IDiscordUser user, IDiscordChannel channel) { // TODO : Resolve this in a better way. DiscordMessage message = new DiscordMessage( new DiscordMessagePacket { Author = new DiscordUserPacket { Avatar = user.AvatarId, Discriminator = user.Discriminator, Id = user.Id, Username = user.Username, IsBot = user.IsBot }, ChannelId = channel.Id, GuildId = (channel as IDiscordGuildChannel)?.GuildId, Content = "no content", Member = user is IDiscordGuildUser a ? new DiscordGuildMemberPacket { JoinedAt = a.JoinedAt.UtcDateTime, GuildId = a.GuildId, Nickname = a.Nickname, Roles = a.RoleIds.ToList(), } : null, },
public async Task <DiscordUserPacket> GetUserAsync(ulong userId) { string key = $"discord:user:{userId}"; DiscordUserPacket packet = null; var cacheClient = cache.Get; { if (await cacheClient.ExistsAsync(key)) { packet = await cacheClient.GetAsync <DiscordUserPacket>(key); if (packet == null) { Log.Debug($"cache hit on '{key}', but object was invalid"); await cacheClient.RemoveAsync(key); packet = await GetUserAsync(userId); } } else { RestResponse <DiscordUserPacket> rc = await RestClient .GetAsync <DiscordUserPacket>($"/users/{userId}"); await cacheClient.UpsertAsync(key, rc.Data); packet = rc.Data; } } return(packet); }
private async Task OnGuildMemberRemove(ulong guildId, DiscordUserPacket arg2) { DiscordGuildPacket guild = await _discordClient.GetGuildAsync(guildId); if (guild == null) { Log.Error($"Guild '{guildId}' not found"); return; } if (guild.Members == null) { guild.Members = new List <DiscordGuildMemberPacket>(); } else { int index = guild.Members.FindIndex(x => x.UserId == arg2.Id); if (index != -1) { guild.Members.RemoveAt(index); } } await _cacheClient.RemoveAsync($"discord:guild:{guildId}:user:{arg2.Id}"); await _cacheClient.AddAsync($"discord:guild:{guildId}", guild); }
public User() { user = new DiscordUserPacket() { Id = 111, Discriminator = 1234 }; }
public static string GetAvatarUrl(DiscordUserPacket packet, ImageType type = ImageType.AUTO, ImageSize size = ImageSize.x256) { if (packet.Avatar != null) { return(GetAvatarUrl(packet.Id, packet.Avatar, type, size)); } return(GetAvatarUrl(ushort.Parse(packet.Discriminator))); }
private async Task OnGuildMemberRemove(ulong guildId, DiscordUserPacket arg2) { try { DiscordGuildPacket guild = await _discordClient.GetGuildAsync(guildId); if (guild == null) { Log.Error($"Guild '{guildId}' not found"); return; } if (guild.Members == null) { guild.Members = new List <DiscordGuildMemberPacket>(); } else { int index = guild.Members.FindIndex(x => x.UserId == arg2.Id); if (index != -1) { guild.Members.RemoveAt(index); } } var cache = _cacheClient.Get; await cache.RemoveAsync($"discord:guild:{guildId}:user:{arg2.Id}"); await cache.UpsertAsync($"discord:guild:{guildId}", guild); } catch (Exception e) { Log.Trace(e.ToString()); } }
/// <inheritdoc /> public DiscordSelfUser(DiscordUserPacket user, IDiscordClient client) : base(user, client) { }
private async Task OnGuildBanAdd(ulong arg1, DiscordUserPacket arg2) { }
private async Task OnUserUpdate(DiscordUserPacket arg) { await _cacheClient.AddAsync($"discord:user:{arg.Id}", arg); }
public DiscordUser(DiscordUserPacket packet, IDiscordClient client) { Client = client; _user = packet; }
private async Task OnUserUpdate(DiscordUserPacket arg) { var cache = _cacheClient.Get; await cache.UpsertAsync($"discord:user:{arg.Id}", arg); }
public DiscordUser(DiscordUserPacket packet, IDiscordClient client) { this.client = client; user = packet; }
private async Task OnUserUpdate(DiscordUserPacket user) { await cacheHandler.Users.EditAsync(user); }
/// <inheritdoc /> public async ValueTask SetCurrentUserAsync(DiscordUserPacket packet) { await cache.HashUpsertAsync(CacheHelpers.UsersCacheKey, "me", packet); }
private static bool ValidateCache(DiscordUserPacket p) => !string.IsNullOrEmpty(p.Username);