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
characterIPlayerCharacter
Returns
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
characterIPlayerCharacter
Returns
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
connNetworkConnectionThe network connection to resolve the player from.
playerIPlayerCharacterThe resolved and validated player character, or null.
Returns
- bool
True if the player was resolved and is in a valid state to act.