Table of Contents

Class ArenaPenaltyService

Namespace
FishMMO.Database.Npgsql.Services
Assembly
FishMMO-DB.dll

Service for arena queue locks. See IArenaPenaltyService.

public sealed class ArenaPenaltyService : BaseService<ArenaPenaltyEntity>, IArenaPenaltyService
Inheritance
ArenaPenaltyService
Implements
Inherited Members

Constructors

ArenaPenaltyService(INpgsqlDbContextFactory)

Initializes a new instance of ArenaPenaltyService.

public ArenaPenaltyService(INpgsqlDbContextFactory dbContextFactory)

Parameters

dbContextFactory INpgsqlDbContextFactory

Methods

ClearAsync(long, CancellationToken)

Removes a character's lock, if any. For a disconnected player who came back in time.

public Task<DatabaseResult<bool>> ClearAsync(long characterId, CancellationToken cancellationToken = default)

Parameters

characterId long
cancellationToken CancellationToken

Returns

Task<DatabaseResult<bool>>

FetchActiveAsync(IReadOnlyList<long>, CancellationToken)

Reads the locks that are still in force for the given characters.

public Task<DatabaseResult<IReadOnlyList<ArenaPenaltyData>>> FetchActiveAsync(IReadOnlyList<long> characterIds, CancellationToken cancellationToken = default)

Parameters

characterIds IReadOnlyList<long>
cancellationToken CancellationToken

Returns

Task<DatabaseResult<IReadOnlyList<ArenaPenaltyData>>>

SetAsync(long, DateTime, string, CancellationToken)

Locks a character out of the arena queue until an instant. Replaces an earlier lock.

public Task<DatabaseResult<bool>> SetAsync(long characterId, DateTime lockedUntilUtc, string reason, CancellationToken cancellationToken = default)

Parameters

characterId long
lockedUntilUtc DateTime
reason string
cancellationToken CancellationToken

Returns

Task<DatabaseResult<bool>>