mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
More nullref fixes in streamrole, ref #392
This commit is contained in:
@@ -1,12 +1,9 @@
|
|||||||
#nullable disable
|
using NadekoBot.Common.ModuleBehaviors;
|
||||||
using NadekoBot.Common.ModuleBehaviors;
|
|
||||||
using NadekoBot.Db;
|
using NadekoBot.Db;
|
||||||
using NadekoBot.Modules.Utility.Common;
|
using NadekoBot.Modules.Utility.Common;
|
||||||
using NadekoBot.Modules.Utility.Common.Exceptions;
|
using NadekoBot.Modules.Utility.Common.Exceptions;
|
||||||
using NadekoBot.Services.Database.Models;
|
using NadekoBot.Services.Database.Models;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using Nadeko.Common;
|
|
||||||
|
|
||||||
namespace NadekoBot.Modules.Utility.Services;
|
namespace NadekoBot.Modules.Utility.Services;
|
||||||
|
|
||||||
@@ -31,12 +28,12 @@ public class StreamRoleService : IReadyExecutor, INService
|
|||||||
_queueRunner = new QueueRunner();
|
_queueRunner = new QueueRunner();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Task OnPresenceUpdate(SocketUser user, SocketPresence oldPresence, SocketPresence newPresence)
|
private Task OnPresenceUpdate(SocketUser user, SocketPresence? oldPresence, SocketPresence? newPresence)
|
||||||
{
|
{
|
||||||
|
|
||||||
_ = Task.Run(async () =>
|
_ = Task.Run(async () =>
|
||||||
{
|
{
|
||||||
if (oldPresence.Activities.Count != newPresence.Activities.Count)
|
if (oldPresence?.Activities?.Count != newPresence?.Activities?.Count)
|
||||||
{
|
{
|
||||||
var guildUsers = _client.Guilds
|
var guildUsers = _client.Guilds
|
||||||
.Select(x => x.GetUser(user.Id))
|
.Select(x => x.GetUser(user.Id))
|
||||||
@@ -132,7 +129,7 @@ public class StreamRoleService : IReadyExecutor, INService
|
|||||||
/// <param name="guild">Guild Id</param>
|
/// <param name="guild">Guild Id</param>
|
||||||
/// <param name="keyword">Keyword to set</param>
|
/// <param name="keyword">Keyword to set</param>
|
||||||
/// <returns>The keyword set</returns>
|
/// <returns>The keyword set</returns>
|
||||||
public async Task<string> SetKeyword(IGuild guild, string keyword)
|
public async Task<string?> SetKeyword(IGuild guild, string? keyword)
|
||||||
{
|
{
|
||||||
keyword = keyword?.Trim().ToLowerInvariant();
|
keyword = keyword?.Trim().ToLowerInvariant();
|
||||||
|
|
||||||
@@ -222,15 +219,15 @@ public class StreamRoleService : IReadyExecutor, INService
|
|||||||
await RescanUsers(guild);
|
await RescanUsers(guild);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async ValueTask RescanUser(IGuildUser user, StreamRoleSettings setting, IRole addRole = null)
|
private async ValueTask RescanUser(IGuildUser user, StreamRoleSettings setting, IRole? addRole = null)
|
||||||
=> await _queueRunner.EnqueueAsync(() => RescanUserInternal(user, setting, addRole));
|
=> await _queueRunner.EnqueueAsync(() => RescanUserInternal(user, setting, addRole));
|
||||||
|
|
||||||
private async Task RescanUserInternal(IGuildUser user, StreamRoleSettings setting, IRole addRole = null)
|
private async Task RescanUserInternal(IGuildUser user, StreamRoleSettings setting, IRole? addRole = null)
|
||||||
{
|
{
|
||||||
if (user.IsBot)
|
if (user.IsBot)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var g = (StreamingGame)user.Activities.FirstOrDefault(a
|
var g = (StreamingGame?)user.Activities.FirstOrDefault(a
|
||||||
=> a is StreamingGame
|
=> a is StreamingGame
|
||||||
&& (string.IsNullOrWhiteSpace(setting.Keyword)
|
&& (string.IsNullOrWhiteSpace(setting.Keyword)
|
||||||
|| a.Name.ToUpperInvariant().Contains(setting.Keyword.ToUpperInvariant())
|
|| a.Name.ToUpperInvariant().Contains(setting.Keyword.ToUpperInvariant())
|
||||||
|
Reference in New Issue
Block a user