Table of Contents

Class LoadoutService

Namespace
Uncreated.Warfare.Kits.Loadouts
Assembly
Uncreated.Warfare.dll
[GenerateRpcSource]
[RpcGeneratedProxyType(TypeSetupMethodName = "__ModularRpcsGeneratedSetupStaticGeneratedProxy")]
public class LoadoutService
Inheritance
LoadoutService
Inherited Members

Constructors

LoadoutService(IServiceProvider, ILogger<LoadoutService>)

public LoadoutService(IServiceProvider serivceProvider, ILogger<LoadoutService> logger)

Parameters

serivceProvider IServiceProvider
logger ILogger<LoadoutService>

Properties

LoadoutCost

Cost of a loadout in USD.

public decimal LoadoutCost { get; }

Property Value

decimal

Methods

CreateLoadoutAsync(CSteamID, CSteamID, Class, string?, Func<KitModel, Task>?, CancellationToken)

Create a new loadout for this season which will start locked.

public Task<Kit> CreateLoadoutAsync(CSteamID forPlayer, CSteamID creator, Class @class, string? displayName, Func<KitModel, Task>? updateTask, CancellationToken token = default)

Parameters

forPlayer CSteamID

The player who will own the loadout.

creator CSteamID

The admin who is handling the ticket, or default.

class Class
displayName string

Optional sign text to use for the default language.

updateTask Func<KitModel, Task>
token CancellationToken

Returns

Task<Kit>

The created kit.

CreateLoadoutRpc(CSteamID, CSteamID, Class, string?, CancellationToken)

[RpcReceive]
protected Task<uint> CreateLoadoutRpc(CSteamID forPlayer, CSteamID creator, Class @class, string? displayName, CancellationToken token = default)

Parameters

forPlayer CSteamID
creator CSteamID
class Class
displayName string
token CancellationToken

Returns

Task<uint>

GetFreeLoadoutIdAsync(CSteamID, CancellationToken)

Gets the next free loadout ID for a player. Use with LoadoutIdHelper methods.

public Task<int> GetFreeLoadoutIdAsync(CSteamID forPlayer, CancellationToken token = default)

Parameters

forPlayer CSteamID
token CancellationToken

Returns

Task<int>

GetLoadoutFromNumber(CSteamID, int, KitInclude, CancellationToken)

Get the loadout represented by a specific number (usually this is a sign index, starting from 1).

public Task<Kit?> GetLoadoutFromNumber(CSteamID player, int number, KitInclude include, CancellationToken token = default)

Parameters

player CSteamID
number int
include KitInclude
token CancellationToken

Returns

Task<Kit>

GetLoadouts(CSteamID, KitInclude, CancellationToken)

Get all loadouts a player owns in the order they would be displayed on signs.

public Task<IReadOnlyList<Kit>> GetLoadouts(CSteamID player, KitInclude include, CancellationToken token = default)

Parameters

player CSteamID
include KitInclude
token CancellationToken

Returns

Task<IReadOnlyList<Kit>>

GetLoadouts(IList<Kit>, CSteamID, KitInclude, CancellationToken)

Get all loadouts a player owns in the order they would be displayed on signs.

public Task GetLoadouts(IList<Kit> output, CSteamID player, KitInclude include, CancellationToken token = default)

Parameters

output IList<Kit>
player CSteamID
include KitInclude
token CancellationToken

Returns

Task

LockLoadoutAsync(CSteamID, uint, KitInclude, CancellationToken)

Disables a loadout, usually to allow an admin to make changes to it.

public Task<Kit?> LockLoadoutAsync(CSteamID instigator, uint primaryKey, KitInclude include = KitInclude.Default, CancellationToken token = default)

Parameters

instigator CSteamID

The admin handling the ticket.

primaryKey uint

The primary key of the existing loadout.

include KitInclude
token CancellationToken

Returns

Task<Kit>

The kit, or null if its not found.

LockLoadoutRpc(CSteamID, uint, CancellationToken)

[RpcReceive]
protected Task<bool> LockLoadoutRpc(CSteamID instigator, uint primaryKey, CancellationToken token = default)

Parameters

instigator CSteamID
primaryKey uint
token CancellationToken

Returns

Task<bool>

ReceiveInvokeLoadoutCreated(CSteamID, int, uint)

[RpcReceive]
protected Task ReceiveInvokeLoadoutCreated(CSteamID forPlayer, int loadoutId, uint kitPrimaryKey)

Parameters

forPlayer CSteamID
loadoutId int
kitPrimaryKey uint

Returns

Task

ReceiveInvokeLoadoutUpgradeStarted(CSteamID, Class, string?, bool, uint)

[RpcReceive]
protected Task ReceiveInvokeLoadoutUpgradeStarted(CSteamID forPlayer, Class oldClass, string? oldFaction, bool accessAdded, uint kitPrimaryKey)

Parameters

forPlayer CSteamID
oldClass Class
oldFaction string
accessAdded bool
kitPrimaryKey uint

Returns

Task

ReceiveInvokeLockStateUpdated(uint, CSteamID, bool)

[RpcReceive]
protected Task ReceiveInvokeLockStateUpdated(uint kitPrimaryKey, CSteamID forPlayer, bool expectedLockState)

Parameters

kitPrimaryKey uint
forPlayer CSteamID
expectedLockState bool

Returns

Task

SendCreateLoadout(IModularRpcRemoteConnection, CSteamID, CSteamID, Class, string?, CancellationToken)

[RpcSend("CreateLoadoutRpc")]
[RpcTimeout(5000)]
protected RpcTask<uint> SendCreateLoadout(IModularRpcRemoteConnection connection, CSteamID forPlayer, CSteamID creator, Class @class, string? displayName, CancellationToken token = default)

Parameters

connection IModularRpcRemoteConnection
forPlayer CSteamID
creator CSteamID
class Class
displayName string
token CancellationToken

Returns

RpcTask<uint>

SendInvokeLoadoutCreated(CSteamID, int, uint)

[RpcSend("ReceiveInvokeLoadoutCreated")]
[RpcFireAndForget]
protected void SendInvokeLoadoutCreated(CSteamID forPlayer, int loadoutId, uint kitPrimaryKey)

Parameters

forPlayer CSteamID
loadoutId int
kitPrimaryKey uint

SendInvokeLoadoutLockStateUpdated(uint, bool)

[RpcSend("ReceiveInvokeLockStateUpdated")]
[RpcFireAndForget]
protected void SendInvokeLoadoutLockStateUpdated(uint kitPrimaryKey, bool expectedLockState)

Parameters

kitPrimaryKey uint
expectedLockState bool

SendInvokeLoadoutUpgradeStarted(CSteamID, Class, string?, bool, uint)

[RpcSend("ReceiveInvokeLoadoutUpgradeStarted")]
[RpcFireAndForget]
protected void SendInvokeLoadoutUpgradeStarted(CSteamID forPlayer, Class oldClass, string? oldFaction, bool accessAdded, uint kitPrimaryKey)

Parameters

forPlayer CSteamID
oldClass Class
oldFaction string
accessAdded bool
kitPrimaryKey uint

SendLockLoadout(IModularRpcRemoteConnection, CSteamID, uint, CancellationToken)

[RpcSend("LockLoadoutRpc")]
[RpcTimeout(5000)]
protected RpcTask<bool> SendLockLoadout(IModularRpcRemoteConnection connection, CSteamID instigator, uint primaryKey, CancellationToken token = default)

Parameters

connection IModularRpcRemoteConnection
instigator CSteamID
primaryKey uint
token CancellationToken

Returns

RpcTask<bool>

SendUnlockLoadout(IModularRpcRemoteConnection, CSteamID, uint, CancellationToken)

[RpcSend("UnlockLoadoutRpc")]
[RpcTimeout(5000)]
protected RpcTask<bool> SendUnlockLoadout(IModularRpcRemoteConnection connection, CSteamID instigator, uint primaryKey, CancellationToken token = default)

Parameters

connection IModularRpcRemoteConnection
instigator CSteamID
primaryKey uint
token CancellationToken

Returns

RpcTask<bool>

SendUpgradeLoadout(IModularRpcRemoteConnection, CSteamID, CSteamID, Class, uint, CancellationToken)

[RpcSend("UpgradeLoadoutRpc")]
[RpcTimeout(5000)]
protected RpcTask<bool> SendUpgradeLoadout(IModularRpcRemoteConnection connection, CSteamID forPlayer, CSteamID admin, Class @class, uint kitPk, CancellationToken token = default)

Parameters

connection IModularRpcRemoteConnection
forPlayer CSteamID
admin CSteamID
class Class
kitPk uint
token CancellationToken

Returns

RpcTask<bool>

UnlockLoadoutAsync(CSteamID, uint, KitInclude, CancellationToken)

Enables a loadout, usually after creating or upgrading a kit.

public Task<Kit?> UnlockLoadoutAsync(CSteamID instigator, uint primaryKey, KitInclude include = KitInclude.Default, CancellationToken token = default)

Parameters

instigator CSteamID

The admin handling the ticket.

primaryKey uint

The primary key of the existing loadout.

include KitInclude
token CancellationToken

Returns

Task<Kit>

The kit, or null if its not found.

UnlockLoadoutRpc(CSteamID, uint, CancellationToken)

[RpcReceive]
protected Task<bool> UnlockLoadoutRpc(CSteamID instigator, uint primaryKey, CancellationToken token = default)

Parameters

instigator CSteamID
primaryKey uint
token CancellationToken

Returns

Task<bool>

UpgradeLoadoutAsync(CSteamID, CSteamID, Class, uint, KitInclude, CancellationToken)

Start upgrading a loadout to the current season.

public Task<Kit?> UpgradeLoadoutAsync(CSteamID forPlayer, CSteamID admin, Class @class, uint kitPk, KitInclude include = KitInclude.Default, CancellationToken token = default)

Parameters

forPlayer CSteamID

The owner of the loadout.

admin CSteamID

The admin that handled the ticket.

class Class

The new class to set for the loadout.

kitPk uint
include KitInclude
token CancellationToken

Returns

Task<Kit>

The upgraded kit.

Exceptions

InvalidOperationException

Kit is already up to date.

UpgradeLoadoutRpc(CSteamID, CSteamID, Class, uint, CancellationToken)

[RpcReceive]
protected Task<bool> UpgradeLoadoutRpc(CSteamID forPlayer, CSteamID admin, Class @class, uint kitPk, CancellationToken token = default)

Parameters

forPlayer CSteamID
admin CSteamID
class Class
kitPk uint
token CancellationToken

Returns

Task<bool>

Events

LoadoutCreated

public event EventHandler<LoadoutCreated>? LoadoutCreated

Event Type

EventHandler<LoadoutCreated>

LoadoutLockChanged

public event EventHandler<LoadoutLockChanged>? LoadoutLockChanged

Event Type

EventHandler<LoadoutLockChanged>

LoadoutUpgradeStarted

public event EventHandler<LoadoutUpgradeStarted>? LoadoutUpgradeStarted

Event Type

EventHandler<LoadoutUpgradeStarted>