Beispiel #1
0
        public DiscordClientState(DiscordClientBase client, MessageCache messageCache)
        {
            _client       = client;
            _messageCache = messageCache ?? DummyMessageCache.Instance;

            _guilds          = new LockedDictionary <Snowflake, CachedGuild>();
            _users           = new LockedDictionary <Snowflake, CachedSharedUser>();
            _privateChannels = new LockedDictionary <Snowflake, CachedPrivateChannel>();

            Guilds          = new ReadOnlyDictionary <Snowflake, CachedGuild>(_guilds);
            Users           = new ReadOnlyUpcastingDictionary <Snowflake, CachedSharedUser, CachedUser>(_users);
            PrivateChannels = new ReadOnlyDictionary <Snowflake, CachedPrivateChannel>(_privateChannels);
            DmChannels      = new ReadOnlyOfTypeDictionary <Snowflake, CachedPrivateChannel, CachedDmChannel>(_privateChannels);
            GroupChannels   = new ReadOnlyOfTypeDictionary <Snowflake, CachedPrivateChannel, CachedGroupChannel>(_privateChannels);
        }
Beispiel #2
0
 private DiscordClient(DiscordClientConfiguration configuration)
 {
     SetStatus(configuration.Status);
     SetActivity(configuration.Activity);
     MessageCacheSize    = configuration.MessageCacheSize;
     _guildSubscriptions = configuration.GuildSubscriptions;
     Users                = new ReadOnlyUpcastingDictionary <Snowflake, CachedSharedUser, CachedUser>(_users);
     PrivateChannels      = new ReadOnlyDictionary <Snowflake, CachedPrivateChannel>(_privateChannels);
     DmChannels           = new ReadOnlyOfTypeDictionary <Snowflake, CachedPrivateChannel, CachedDmChannel>(_privateChannels);
     GroupChannels        = new ReadOnlyOfTypeDictionary <Snowflake, CachedPrivateChannel, CachedGroupChannel>(_privateChannels);
     Guilds               = new ReadOnlyDictionary <Snowflake, CachedGuild>(_guilds);
     _ws                  = new WebSocketClient();
     _ws.MessageReceived += WebSocketMessageReceivedAsync;
     _ws.Closed          += WebSocketClosedAsync;
 }