private bool tunnel_OnMessageReceivedEvent(string msg)
        {
            if (msg.StartsWith("sit:"))
            {
                int seatnum = int.MaxValue;
                if (int.TryParse(msg.Substring("sit:".Length), out seatnum))
                {
                    if (gameRoom.OnAttemptSitEvent(this, seatnum))
                    {
                        Logger.Log(LogType.Event, name + " sat down");
                        this.status = PlayerStatus.Sitting;
                    }
                    else
                    {
                        tunnel.SendMessage("fail");
                        Logger.Log(LogType.Error, name + " failed to sit");
                    }
                }
                else
                {
                    Logger.Log(LogType.Error, name + " sent a malformed message '" + msg + "'");
                }

                return(true);
            }
            else if (msg.StartsWith("chat:"))
            {
                gameRoom.OnChatEvent(name, msg.Substring("chat:".Length));
                return(true);
            }
            else if (msg == "stand")
            {
                gameRoom.OnStandEvent(this);
                return(true);
            }
            else if (msg == "reqbank")
            {
                this.SetBank(this.bank);
                return(true);
            }
            else if (msg == "quit")
            {
                QuitRoom();

                return(true);
            }
            else if (msg.StartsWith("withdraw:"))
            {
                int amount = int.MaxValue;
                if (int.TryParse(msg.Substring("withdraw:".Length), out amount))
                {
                    WithdrawBank(amount);
                    gameRoom.BroadcastSeatInfo(this);
                }

                return(true);
            }

            return(false);
        }