コード例 #1
0
        public override ValueTask <GuildEventDeletedEventArgs> HandleDispatchAsync(IGatewayApiClient shard, GuildScheduledEventJsonModel model)
        {
            IGuildEvent @event;

            if (CacheProvider.TryGetGuildEvents(model.GuildId, out var cache) && cache.TryRemove(model.Id, out var cachedEvent))
            {
                @event = cachedEvent;
            }
            else
            {
                @event = new TransientGuildEvent(Client, model);
            }

            var e = new GuildEventDeletedEventArgs(@event);

            return(new(e));
        }
コード例 #2
0
        public override ValueTask <GuildEventUpdatedEventArgs> HandleDispatchAsync(IGatewayApiClient shard, GuildScheduledEventJsonModel model)
        {
            CachedGuildEvent oldEvent;
            IGuildEvent      newEvent;

            if (CacheProvider.TryGetGuildEvents(model.GuildId, out var cache) && cache.TryGetValue(model.Id, out var @event))
            {
                newEvent = @event;
                oldEvent = @event.Clone() as CachedGuildEvent;
                newEvent.Update(model);
            }
            else
            {
                oldEvent = null;
                newEvent = new TransientGuildEvent(Client, model);
            }

            var e = new GuildEventUpdatedEventArgs(oldEvent, newEvent);

            return(new(e));
        }