public override void Draw()
    {
        var retainerManager = RetainerManager.Instance();

        ImGui.Text("Retainer Manager: ");
        ImGui.SameLine();
        DebugManager.ClickToCopyText($"{(ulong)retainerManager:X}");

        if (retainerManager == null)
        {
            return;
        }

        ImGui.Separator();

        for (var i = 0; i < 10; i++)
        {
            ImGui.Text($"{retainerManager->DisplayOrder[i]}");
        }

        ImGui.Separator();
        DebugManager.PrintOutObject(retainerManager);
    }
        private bool UpdateRetainerList()
        {
            try {
                var addon = Common.GetUnitBase("RetainerList");
                if (addon == null)
                {
                    return(false);
                }
                var listNode = (AtkComponentNode *)addon->GetNodeById(24);
                if (listNode == null || (ushort)listNode->AtkResNode.Type < 1000)
                {
                    return(false);
                }
                var retainerManager = RetainerManager.Instance();
                for (uint i = 0; i < 10; i++)
                {
                    var retainer = retainerManager->GetRetainerBySortedIndex(i);

                    if (retainer->VentureComplete != 0)
                    {
                        var renderer = Common.GetNodeByID <AtkComponentNode>(listNode->Component->UldManager, i == 0 ? 4U : 41000U + i, (NodeType)1011);
                        if (renderer == null || !renderer->AtkResNode.IsVisible)
                        {
                            continue;
                        }
                        var ventureText = (AtkTextNode *)renderer->Component->UldManager.SearchNodeById(12);
                        var cTime       = FFXIVClientStructs.FFXIV.Client.System.Framework.Framework.GetServerTime();
                        var rTime       = retainer->VentureComplete - cTime;

                        if (rTime <= 0)
                        {
                            ventureText->SetText(Service.Data.Excel.GetSheet <Addon>()?.GetRow(12592)?.Text?.RawString ?? "Complete");
                        }
                        else
                        {
                            var tSpan = TimeSpan.FromSeconds(rTime);

                            if (Config.SimpleDisplay)
                            {
                                if (tSpan.Hours > 0)
                                {
                                    ventureText->SetText($"{tSpan.Hours:00}:{tSpan.Minutes:00}:{tSpan.Seconds:00}");
                                }
                                else
                                {
                                    ventureText->SetText($"{tSpan.Minutes:00}:{tSpan.Seconds:00}");
                                }
                            }
                            else
                            {
                                var timeString = new List <string>();
                                switch (Service.ClientState.ClientLanguage)
                                {
                                case ClientLanguage.Japanese:
                                    if (tSpan.Hours > 0)
                                    {
                                        timeString.Add($"{tSpan.Hours}時間");
                                    }
                                    if (tSpan.Minutes > 0)
                                    {
                                        timeString.Add($"{tSpan.Minutes}分");
                                    }
                                    timeString.Add($"{tSpan.Seconds}秒");
                                    ventureText->SetText($"残り時間{string.Join("", timeString)}");
                                    break;

                                case ClientLanguage.German:
                                    if (tSpan.Hours > 0)
                                    {
                                        timeString.Add($"{tSpan.Hours} Std");
                                    }
                                    if (tSpan.Minutes > 0)
                                    {
                                        timeString.Add($"{tSpan.Minutes} Min");
                                    }
                                    timeString.Add($"{tSpan.Seconds} Sek");

                                    ventureText->SetText($"Complete in {string.Join(' ', timeString)}");
                                    break;

                                case ClientLanguage.French:
                                    if (tSpan.Hours > 0)
                                    {
                                        timeString.Add($"{tSpan.Hours}h");
                                    }
                                    if (tSpan.Minutes > 0)
                                    {
                                        timeString.Add($"{tSpan.Minutes}m");
                                    }
                                    timeString.Add($"{tSpan.Seconds}s");
                                    ventureText->SetText($"Fin de la tâche dans {string.Join(' ', timeString)}");
                                    break;

                                case ClientLanguage.English:
                                default:
                                    if (tSpan.Hours > 0)
                                    {
                                        timeString.Add($"{tSpan.Hours}h");
                                    }
                                    if (tSpan.Minutes > 0)
                                    {
                                        timeString.Add($"{tSpan.Minutes}m");
                                    }
                                    timeString.Add($"{tSpan.Seconds}s");
                                    ventureText->SetText($"Complete in {string.Join(' ', timeString)}");
                                    break;
                                }
                            }
                        }
                    }
                }

                return(true);
            } catch (Exception ex) {
                SimpleLog.Error(ex);
                return(false);
            }
        }