public new static void PrintLoginOkMessage(LoginOkMessage msg, object tag) { MessagePrinter.PrintLoginOkMessage(msg, tag); FrontendConnect fc = (FrontendConnect)tag; if (fc.State == LoginState.WaitLoginOk) { fc.State = LoginState.EnterRegion; } else { throw new Exception("Received login ok at wrong time"); } }