Table of Contents

Class CharacterStateValidation

Namespace
FishMMO.Server.Core.World.SceneServer
Assembly
FishMMO.Server.dll

Shared character state validation for broadcast handlers. Ensures characters cannot perform actions while dead, teleporting, frozen, unloaded, or in combat (for movement-restricted operations). Called at the start of every server-side broadcast handler that mutates game state.

public static class CharacterStateValidation
Inheritance
CharacterStateValidation
Inherited Members

Methods

CanAct(IPlayerCharacter)

Returns true if the character is in a valid state to perform actions. Logs and rejects dead, teleporting, frozen, and unloaded characters.

public static bool CanAct(IPlayerCharacter character)

Parameters

character IPlayerCharacter

Returns

bool

CanActOrMove(IPlayerCharacter)

Returns true if the character is in a valid state to perform movement. Same as CanAct(IPlayerCharacter) but also rejects characters in combat (prevents combat-escape via teleport or scene change).

public static bool CanActOrMove(IPlayerCharacter character)

Parameters

character IPlayerCharacter

Returns

bool

TryGetPlayerAndValidate(NetworkConnection, out IPlayerCharacter)

Resolves the IPlayerCharacter from conn and validates it via CanAct(IPlayerCharacter). This is the canonical pattern for server-side broadcast handlers: every state-mutating handler must call this (or CanActOrMove(IPlayerCharacter) for movement-gated operations) before processing.

Usage:

if (!CharacterStateValidation.TryGetPlayerAndValidate(conn, out IPlayerCharacter player))
    return;
public static bool TryGetPlayerAndValidate(NetworkConnection conn, out IPlayerCharacter player)

Parameters

conn NetworkConnection

The network connection to resolve the player from.

player IPlayerCharacter

The resolved and validated player character, or null.

Returns

bool

True if the player was resolved and is in a valid state to act.