public async Task AddEmotesFromGuild(SocketGuild guild) { foreach (var emote in guild.Emotes) { if (!emotes.TryAdd($"$emote{emote.Name}", new Emote(emote.Id, emote.Name, emote.Url))) { if (emotes.ContainsKey(emote.Name)) { var msg = $"Duplicate emote \"{emote.Name}\" from {guild.Name}, skipping."; await RiftBot.SendMessageToAdmins(msg); RiftBot.Log.Error($"[{nameof(EmoteService)}] {msg}."); } else { var msg = $"Failed to add emote \"{emote.Name}\" from {guild.Name}."; await RiftBot.SendMessageToAdmins(msg); RiftBot.Log.Error($"[{nameof(EmoteService)}] {msg}"); } } } }
public async Task UpdateInventoryRoleAsync(ulong userId, int id, bool add) { if (!await DB.RoleInventory.HasAnyAsync(userId, id)) { await messageService.SendMessageAsync("roleinventory-wrongnumber", Settings.ChannelId.Commands, new FormatData(userId)); return; } var dbUser = await DB.Users.GetAsync(userId); if (dbUser is null || !IonicHelper.GetGuildUserById(Settings.App.MainGuildId, userId, out var sgUser)) { await messageService.SendMessageAsync(MessageService.UserNotFound, Settings.ChannelId.Commands); return; } var role = await DB.Roles.GetAsync(id); if (role is null) { await messageService.SendMessageAsync(MessageService.RoleNotFound, Settings.ChannelId.Commands); await RiftBot.SendMessageToAdmins($"User <@{userId.ToString()}> failed to set role ID {id.ToString()}."); return; } if (!IonicHelper.GetRole(Settings.App.MainGuildId, role.RoleId, out var guildRole)) { await messageService.SendMessageAsync(MessageService.RoleNotFound, Settings.ChannelId.Commands); return; } var hasRole = IonicHelper.HasRolesAny(Settings.App.MainGuildId, userId, role.RoleId); if (add) { if (hasRole) { await messageService.SendMessageAsync("roleinventory-hasrole", Settings.ChannelId.Commands, new FormatData(userId)); return; } await sgUser.AddRoleAsync(guildRole); } else { if (!hasRole) { await messageService.SendMessageAsync("roleinventory-norole", Settings.ChannelId.Commands, new FormatData(userId)); return; } await sgUser.RemoveRoleAsync(guildRole); } }