static void Main(string[] args) { using (var scene = SimpleImGuiScene.CreateOverlay(RendererFactory.RendererBackend.DirectX11)) { scene.OnBuildUI += ImGui.ShowDemoWindow; scene.Run(); } }
static void Main(string[] args) { appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); dataManager = new DataManager(ClientLanguage.English); var t = Task.Run(() => { // The executing directory of this program needs a directory junction to the FFXIV sqpack folder so that Lumina can find the files // (You can also copy the files over, but it is around 45GB of data) dataManager.Initialize(appDataPath + @"\XIVLauncher\addon\Hooks"); }); t.Wait(); plugin = new ChatExtenderPlugin(); config = new ChatExtenderPluginConfiguration(); renderUI = plugin.GetType().GetMethod("RenderUI", BindingFlags.NonPublic | BindingFlags.Instance); onChat = plugin.GetType().GetMethod("Chat_OnChatMessage", BindingFlags.NonPublic | BindingFlags.Instance); var tab = new TabBase(); tab.Title = "New Tab"; tabs.Add(tab); activeTab = tab; tab.EnabledChannels = new Dictionary <string, BoolRef>(); tab.ShowChannelTag = new Dictionary <string, BoolRef>(); foreach (var key in ChannelSettingsTable.Keys) { var channelName = ChannelSettingsTable[key].Name; tab.EnabledChannels.Add(channelName, true); tab.ShowChannelTag.Add(channelName, true); } var configWindow = plugin.GetType().GetField("configWindow", BindingFlags.NonPublic | BindingFlags.Instance); var messagePaths = Directory.GetFiles(appDataPath + @"\XIVLauncher\installedPlugins\ChatExtender\2.0.2.4\Payloads\All\2020\09\11"); messages = messagePaths.Select(x => { var a = JsonConvert.DeserializeObject <OnChatMessageArgs>(File.ReadAllText(x), new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects, TypeNameHandling = TypeNameHandling.Auto, ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor }); foreach (var payload in a.Sender.Payloads) { payload.DataResolver = dataManager; } foreach (var payload in a.Message.Payloads) { payload.DataResolver = dataManager; } return(a); }); //.Where(x => x.Sender.Payloads.Count() > 0); //.Where(x => x.Type == XivChatType.Party); messageEnumerator = messages.GetEnumerator(); using (var scene = SimpleImGuiScene.CreateOverlay(RendererFactory.RendererBackend.DirectX11)) { scene.Window.OnSDLEvent += (ref SDL_Event sdlEvent) => { if (sdlEvent.type == SDL_EventType.SDL_KEYDOWN && sdlEvent.key.keysym.scancode == SDL_Scancode.SDL_SCANCODE_ESCAPE) { scene.ShouldQuit = true; } if (sdlEvent.type == SDL_EventType.SDL_KEYDOWN && sdlEvent.key.keysym.scancode == SDL_Scancode.SDL_SCANCODE_SPACE) { SendMessage(); } }; var addFonts = plugin.GetType().GetMethod("AddFonts", BindingFlags.NonPublic | BindingFlags.Instance); addFonts.Invoke(plugin, new object[] { }); configWindow.SetValue(plugin, true); plugin.Alpha = 1; scene.Renderer.ClearColor = new Vector4(0, 0, 0, 1); scene.OnBuildUI += Display; scene.Run(); } var messageList = messages.ToList(); }