mirror of
https://github.com/TeamOctolings/Octobot.git
synced 2025-05-13 17:26:08 +03:00
fix(sch. event update): use MemberData to determine a subscriber's role list
This commit is contained in:
parent
67d44ff835
commit
bab46e8eeb
2 changed files with 7 additions and 7 deletions
|
@ -286,7 +286,7 @@ public sealed class ScheduledEventUpdateService : BackgroundService
|
|||
};
|
||||
|
||||
var contentResult = await _utility.GetEventNotificationMentions(
|
||||
scheduledEvent, data.Settings, ct);
|
||||
scheduledEvent, data, ct);
|
||||
if (!contentResult.IsDefined(out var content))
|
||||
{
|
||||
return Result.FromError(contentResult);
|
||||
|
@ -412,7 +412,7 @@ public sealed class ScheduledEventUpdateService : BackgroundService
|
|||
IGuildScheduledEvent scheduledEvent, GuildData data, CancellationToken ct)
|
||||
{
|
||||
var contentResult = await _utility.GetEventNotificationMentions(
|
||||
scheduledEvent, data.Settings, ct);
|
||||
scheduledEvent, data, ct);
|
||||
if (!contentResult.IsDefined(out var content))
|
||||
{
|
||||
return Result.FromError(contentResult);
|
||||
|
|
|
@ -160,16 +160,16 @@ public sealed class UtilityService : IHostedService
|
|||
/// <param name="scheduledEvent">
|
||||
/// The scheduled event whose subscribers will be mentioned.
|
||||
/// </param>
|
||||
/// <param name="settings">The settings of the guild containing the scheduled event</param>
|
||||
/// <param name="data">The data of the guild containing the scheduled event.</param>
|
||||
/// <param name="ct">The cancellation token for this operation.</param>
|
||||
/// <returns>A result containing the string which may or may not have succeeded.</returns>
|
||||
public async Task<Result<string>> GetEventNotificationMentions(
|
||||
IGuildScheduledEvent scheduledEvent, JsonNode settings, CancellationToken ct = default)
|
||||
IGuildScheduledEvent scheduledEvent, GuildData data, CancellationToken ct = default)
|
||||
{
|
||||
var builder = new StringBuilder();
|
||||
var role = GuildSettings.EventNotificationRole.Get(settings);
|
||||
var role = GuildSettings.EventNotificationRole.Get(data.Settings);
|
||||
var subscribersResult = await _eventApi.GetGuildScheduledEventUsersAsync(
|
||||
scheduledEvent.GuildID, scheduledEvent.ID, withMember: true, ct: ct);
|
||||
scheduledEvent.GuildID, scheduledEvent.ID, ct: ct);
|
||||
if (!subscribersResult.IsDefined(out var subscribers))
|
||||
{
|
||||
return Result<string>.FromError(subscribersResult);
|
||||
|
@ -181,7 +181,7 @@ public sealed class UtilityService : IHostedService
|
|||
}
|
||||
|
||||
builder = subscribers.Where(
|
||||
subscriber => subscriber.GuildMember.IsDefined(out var member) && !member.Roles.Contains(role))
|
||||
subscriber => !data.GetOrCreateMemberData(subscriber.User.ID).Roles.Contains(role.Value))
|
||||
.Aggregate(builder, (current, subscriber) => current.Append($"{Mention.User(subscriber.User)} "));
|
||||
return builder.ToString();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue