@@ -180,13 +180,22 @@ protected override Task ExecuteAsync(CancellationToken stoppingToken) {
180
180
// Join all the channels we're a mod in. Why do we limit it to channels we are a mod in? Twitch changed
181
181
// its chat limits so that "verified bots" like us don't get special treatment anymore. The only thing
182
182
// that skips the chat limits is if it's a channel you're a mod in.
183
- foreach ( User channel in usersWithBotEnabled ) {
184
- if ( string . IsNullOrWhiteSpace ( channel . TwitchUsername ) ) {
183
+ var bannedUsers = ( await GetBannedUsers ( db , stoppingToken ) )
184
+ . Where ( u => ! string . IsNullOrWhiteSpace ( u . TwitchId ) )
185
+ . Select ( u => u . TwitchId ! . Trim ( ) )
186
+ . ToHashSet ( ) ;
187
+ var allModdedAndNotBannedUsers = moddedChannels
188
+ . Where ( m => ! bannedUsers . Contains ( m . broadcaster_id ) ) ;
189
+ var joinChannels = usersWithBotEnabled
190
+ . Select ( u => u . TwitchUsername )
191
+ . Concat ( allModdedAndNotBannedUsers . Select ( j => j . broadcaster_login ) ) ;
192
+ foreach ( var channel in joinChannels ) {
193
+ if ( string . IsNullOrWhiteSpace ( channel ) ) {
185
194
continue ;
186
195
}
187
196
188
- await _client . AddMessageCallback ( channel . TwitchUsername , OnTwitchMessageReceived ) ;
189
- await _client . AddBannedCallback ( channel . TwitchUsername , OnTwitchBanReceived ) ;
197
+ await _client . AddMessageCallback ( channel , OnTwitchMessageReceived ) ;
198
+ await _client . AddBannedCallback ( channel , OnTwitchBanReceived ) ;
190
199
}
191
200
}
192
201
@@ -290,7 +299,7 @@ orderby user.TwitchLastScanned
290
299
/// <param name="db">The database.</param>
291
300
/// <param name="stoppingToken">The stopping token.</param>
292
301
/// <returns>The list of users with the bot enabled.</returns>
293
- private async Task < List < User > ? > GetBannedUsers ( INullinsideContext db , CancellationToken stoppingToken ) {
302
+ private async Task < List < User > > GetBannedUsers ( INullinsideContext db , CancellationToken stoppingToken ) {
294
303
return await
295
304
( from user in db . Users
296
305
orderby user . TwitchLastScanned
0 commit comments