コード例 #1
0
ファイル: CacheClient.cs プロジェクト: wingertge/Miki
        private async Task OnGuildRoleCreate(ulong guildId, DiscordRolePacket arg2)
        {
            try
            {
                DiscordGuildPacket guild = await _discordClient.GetGuildAsync(guildId);

                if (guild.Roles == null)
                {
                    guild.Roles = new List <DiscordRolePacket>();
                }

                int index = guild.Roles.FindIndex(x => x.Id == guildId);

                if (index == -1)
                {
                    guild.Roles.Add(arg2);
                }
                else
                {
                    guild.Roles[index] = arg2;
                }

                var cache = _cacheClient.Get;

                await cache.UpsertAsync($"discord:guild:{guildId}:role:{arg2.Id}", arg2);

                await cache.UpsertAsync($"discord:guild:{guildId}", guild);
            }
            catch (Exception e)
            {
                Log.Trace(e.ToString());
            }
        }
コード例 #2
0
 public async Task <DiscordRolePacket> EditRoleAsync(ulong guildId, DiscordRolePacket role)
 {
     return((await RatelimitHelper.ProcessRateLimitedAsync(
                 $"guilds:{guildId}", cache,
                 async() => await RestClient.PutAsync <DiscordRolePacket>(
                     $"/guilds/{guildId}/roles/{role.Id}",
                     JsonConvert.SerializeObject(role)
                     )
                 )).Data);
 }
コード例 #3
0
        /// <inheritdoc/>
        public async Task <DiscordRolePacket> EditRoleAsync(
            ulong guildId,
            DiscordRolePacket role)
        {
            var response = await httpClient.PutAsync(
                DiscordApiRoutes.GuildRole(guildId, role.Id),
                JsonSerializer.Serialize(role, options))
                           .ConfigureAwait(false);

            HandleErrors(response, options);
            return(JsonSerializer.Deserialize <DiscordRolePacket>(response.Body, options));
        }
コード例 #4
0
        public async ValueTask <DiscordRolePacket> EditRoleAsync(
            ulong guildId,
            DiscordRolePacket role)
        {
            var response = await RestClient.PutJsonAsync(
                DiscordApiRoutes.GuildRole(guildId, role.Id),
                role)
                           .ConfigureAwait(false);

            HandleErrors(response);
            return(JsonHelper.Deserialize <DiscordRolePacket>(response.Body));
        }
コード例 #5
0
        private async Task OnGuildRoleCreate(ulong guildId, DiscordRolePacket arg2)
        {
            DiscordGuildPacket guild = await _discordClient.GetGuildAsync(guildId);

            if (guild.Roles == null)
            {
                guild.Roles = new List <DiscordRolePacket>();
            }

            int index = guild.Roles.FindIndex(x => x.Id == guildId);

            if (index == -1)
            {
                guild.Roles.Add(arg2);
            }
            else
            {
                guild.Roles[index] = arg2;
            }

            await _cacheClient.AddAsync($"discord:guild:{guildId}:role:{arg2.Id}", arg2);

            await _cacheClient.AddAsync($"discord:guild:{guildId}", guild);
        }
コード例 #6
0
 public async Task <IDiscordRole> EditRoleAsync(ulong guildId, DiscordRolePacket role)
 => new DiscordRole(await _apiClient.EditRoleAsync(guildId, role), this);
コード例 #7
0
ファイル: DiscordClient.cs プロジェクト: Mikibot/Miki.Discord
 public virtual async Task <IDiscordRole> EditRoleAsync(ulong guildId, DiscordRolePacket role)
 {
     return(new DiscordRole(await ApiClient.EditRoleAsync(guildId, role), this));
 }
コード例 #8
0
ファイル: DiscordRole.cs プロジェクト: wingertge/Miki
 public DiscordRole(DiscordRolePacket packet, DiscordClient client)
 {
     _packet = packet;
     _client = client;
 }
コード例 #9
0
 public DiscordRole(DiscordRolePacket packet, IDiscordClient client)
 {
     this.packet = packet;
     this.client = client;
 }
コード例 #10
0
 private static bool ValidateCache(DiscordRolePacket p) => !string.IsNullOrEmpty(p.Name);