Class LoginNotice
A retrying queue for login-flow messages that must always reach the player.
public static class LoginNotice
- Inheritance
-
LoginNotice
- Inherited Members
Remarks
UITKDialogBox now refuses rather than hijacks: an Open that arrives
while another question is on screen returns false and leaves the live dialog alone. That is
right for a question — answering the wrong one is worse than waiting — but it silently
drops a one-way notice, and the login flow is full of notices that are the only explanation
the player will ever get for being thrown back to the sign-in screen. "Account is banned",
"your session has expired" and "the server closed the connection" are all raised on paths
that also disconnect, so there is no second chance to say them.
Rather than teach every call site a retry, they go in here and the login panels pump the queue from their per-frame tick. A notice waits for the dialog to become free and is then shown exactly once. Consecutive duplicates collapse, so a disconnect that trips two handlers does not queue the same sentence twice.
Bounded at FishMMO.Client.LoginNotice.MaxQueued. A notice storm is itself a fault, and a queue that grew without limit would make the player dismiss dialogs for as long as it lasted.
Methods
Clear()
Drops every queued message.
public static void Clear()
Remarks
Used by the quit-to-login teardown. A notice describes one session; carrying it across a teardown surfaces a stale explanation for whatever the player does next.
Pump()
Hands the next queued message to the dialog box if it will take one.
public static void Pump()
Remarks
Called from the login panels' OnTick. Cheap when the queue is empty, which is
the overwhelmingly common case, because that is the first thing it checks.
Show(string)
Queues a message for display, or shows it immediately when the dialog is free.
public static void Show(string message)
Parameters
messagestringThe message. Null or blank is ignored.