Class KickRequestSystem
- Namespace
- FishMMO.Server.Implementation
- Assembly
- FishMMO.Server.dll
System for processing kick requests from the database and disconnecting accounts as needed. Periodically polls the database for new kick requests and processes them asynchronously. Kick/Disconnect calls are marshalled back to the main thread via a RuntimeDataContainer queue.
[CreateAssetMenu(fileName = "KickRequestSystem", menuName = "FishMMO/Server/WorldServer/Kick Request System", order = 1)]
[RequiresDataContainer(typeof(KickRequestSystemQueueData))]
[RequiresDataContainer(typeof(KickRequestSystemMainThreadQueueData))]
[RequiresDataContainer(typeof(AsyncWorkerData))]
public class KickRequestSystem : ServerBehaviour, IServerBehaviour<INetworkManagerWrapper, ServerManager, NetworkConnection, IServerBehaviour>, IServerComponent<INetworkManagerWrapper, ServerManager, NetworkConnection, IServerBehaviour>, IKickRequestSystem, IServerBehaviour, IServerComponent
- Inheritance
-
ObjectScriptableObjectKickRequestSystem
- Implements
- Inherited Members
-
ScriptableObject.SetDirty()ScriptableObject.CreateInstance<T>()Object.GetEntityId()Object.GetInstanceID()Object.GetHashCode()Object.InstantiateAsync<T>(T)Object.InstantiateAsync<T>(T, Transform)Object.InstantiateAsync<T>(T, Vector3, Quaternion)Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion, Transform)Object.Instantiate(Object)Object.Instantiate(Object, Scene)Object.Instantiate<T>(T, InstantiateParameters)Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)Object.Instantiate(Object, Transform)Object.Instantiate<T>(T)Object.Instantiate<T>(T, Vector3, Quaternion)Object.Instantiate<T>(T, Vector3, Quaternion, Transform)Object.Instantiate<T>(T, Transform)Object.Destroy(Object)Object.DestroyImmediate(Object)Object.DontDestroyOnLoad(Object)Object.DestroyObject(Object)Object.FindObjectsOfType<T>()Object.FindObjectsByType<T>(FindObjectsSortMode)Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)Object.FindObjectOfType<T>()Object.FindFirstObjectByType<T>()Object.FindAnyObjectByType<T>()Object.FindFirstObjectByType<T>(FindObjectsInactive)Object.FindAnyObjectByType<T>(FindObjectsInactive)Object.FindObjectsByType<T>()Object.FindObjectsByType<T>(FindObjectsInactive)Object.ToString()Object.nameObject.hideFlags
Properties
UpdateFetchCount
Gets or sets the maximum number of kick requests to fetch per poll.
public int UpdateFetchCount { get; set; }
Property Value
UpdatePumpRate
Gets or sets the server kick request update pump rate limit in seconds.
public float UpdatePumpRate { get; set; }
Property Value
Methods
InitializeOnce()
Called once to initialize the system. Subscribes to server connection state events.
public override ServerComponentInitializationStatus InitializeOnce()
Returns
OnDeinitialize()
Called when the system is being destroyed. Unsubscribes from server connection state events. Drains remaining main-thread responses so clients get their final messages.
public override void OnDeinitialize()
OnRemoteConnectionStopped(NetworkConnection)
Handles remote connection disconnects. Deletes kick requests for accounts that disconnect. Database operation is performed asynchronously to avoid blocking the callback thread.
protected override void OnRemoteConnectionStopped(NetworkConnection conn)
Parameters
connNetworkConnectionThe network connection.
OnUpdate(float)
Drains the main-thread response queue each frame. All network operations from async workers are marshalled through this queue to ensure they execute on the main Unity thread.
protected override void OnUpdate(float deltaTime)
Parameters
deltaTimefloatTime elapsed since last frame.