Add server settings to config UI
This commit is contained in:
parent
d15b852cb3
commit
5670ef060d
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<Version>0.2</Version>
|
||||
<Version>0.3</Version>
|
||||
<LangVersion>11.0</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
|
@ -84,13 +84,13 @@ public class InfluxPlugin : IDalamudPlugin
|
||||
|
||||
private void ProcessCommand(string command, string arguments)
|
||||
{
|
||||
if (arguments == "c" || arguments == "config")
|
||||
_configurationWindow.Toggle();
|
||||
else
|
||||
if (arguments == "gil")
|
||||
{
|
||||
UpdateStatistics();
|
||||
_statisticsWindow.IsOpen = true;
|
||||
}
|
||||
else
|
||||
_configurationWindow.Toggle();
|
||||
}
|
||||
|
||||
private void UpdateStatistics()
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System.Linq;
|
||||
using Dalamud.Interface.Colors;
|
||||
using Dalamud.Interface.Utility.Raii;
|
||||
using Dalamud.Interface.Windowing;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Services;
|
||||
@ -24,23 +25,68 @@ internal sealed class ConfigurationWindow : Window
|
||||
|
||||
public override void Draw()
|
||||
{
|
||||
if (ImGui.BeginTabBar("InfluxConfigTabs"))
|
||||
using var tabBar = ImRaii.TabBar("InfluxConfigTabs");
|
||||
if (tabBar)
|
||||
{
|
||||
DrawConnectionSettings();
|
||||
DrawIncludedCharacters();
|
||||
}
|
||||
}
|
||||
|
||||
ImGui.EndTabBar();
|
||||
private void DrawConnectionSettings()
|
||||
{
|
||||
using var tabItem = ImRaii.TabItem("Connection Settings");
|
||||
if (!tabItem)
|
||||
return;
|
||||
|
||||
bool enabled = _configuration.Server.Enabled;
|
||||
if (ImGui.Checkbox("Enable Server Connection", ref enabled))
|
||||
{
|
||||
_configuration.Server.Enabled = enabled;
|
||||
Save();
|
||||
}
|
||||
|
||||
string server = _configuration.Server.Server;
|
||||
if (ImGui.InputText("InfluxDB URL", ref server, 128))
|
||||
{
|
||||
_configuration.Server.Server = server;
|
||||
Save();
|
||||
}
|
||||
|
||||
string token = _configuration.Server.Token;
|
||||
if (ImGui.InputText("Token", ref token, 128, ImGuiInputTextFlags.Password))
|
||||
{
|
||||
_configuration.Server.Token = token;
|
||||
Save();
|
||||
}
|
||||
|
||||
string organization = _configuration.Server.Organization;
|
||||
if (ImGui.InputText("Organization", ref organization, 128))
|
||||
{
|
||||
_configuration.Server.Organization = organization;
|
||||
Save();
|
||||
}
|
||||
|
||||
string bucket = _configuration.Server.Bucket;
|
||||
if (ImGui.InputText("Bucket", ref bucket, 128))
|
||||
{
|
||||
_configuration.Server.Bucket = bucket;
|
||||
Save();
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawIncludedCharacters()
|
||||
{
|
||||
if (ImGui.BeginTabItem("Included Characters"))
|
||||
{
|
||||
using var tabItem = ImRaii.TabItem("Included Characters");
|
||||
if (!tabItem)
|
||||
return;
|
||||
|
||||
if (_clientState is { IsLoggedIn: true, LocalContentId: > 0 })
|
||||
{
|
||||
string worldName = _clientState.LocalPlayer?.HomeWorld.GameData?.Name ?? "??";
|
||||
ImGui.TextWrapped(
|
||||
$"Current Character: {_clientState.LocalPlayer?.Name} @ {worldName} ({_clientState.LocalContentId:X})");
|
||||
|
||||
ImGui.Indent(30);
|
||||
if (_configuration.IncludedCharacters.Any(x => x.LocalContentId == _clientState.LocalContentId))
|
||||
{
|
||||
@ -56,7 +102,6 @@ internal sealed class ConfigurationWindow : Window
|
||||
{
|
||||
ImGui.TextColored(ImGuiColors.DalamudRed,
|
||||
"This character is currently excluded.");
|
||||
|
||||
if (ImGui.Button("Include current character"))
|
||||
{
|
||||
_configuration.IncludedCharacters.Add(new Configuration.CharacterInfo
|
||||
@ -86,9 +131,11 @@ internal sealed class ConfigurationWindow : Window
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var world in _configuration.IncludedCharacters.OrderBy(x => x.CachedWorldName).ThenBy(x => x.LocalContentId).GroupBy(x => x.CachedWorldName))
|
||||
foreach (var world in _configuration.IncludedCharacters.OrderBy(x => x.CachedWorldName)
|
||||
.ThenBy(x => x.LocalContentId).GroupBy(x => x.CachedWorldName))
|
||||
{
|
||||
ImGui.CollapsingHeader($"{world.Key} ({world.Count()})", ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.OpenOnArrow | ImGuiTreeNodeFlags.Bullet);
|
||||
ImGui.CollapsingHeader($"{world.Key} ({world.Count()})",
|
||||
ImGuiTreeNodeFlags.DefaultOpen | ImGuiTreeNodeFlags.OpenOnArrow | ImGuiTreeNodeFlags.Bullet);
|
||||
ImGui.Indent(30);
|
||||
foreach (var characterInfo in world)
|
||||
{
|
||||
@ -99,9 +146,6 @@ internal sealed class ConfigurationWindow : Window
|
||||
ImGui.Unindent(30);
|
||||
}
|
||||
}
|
||||
|
||||
ImGui.EndTabItem();
|
||||
}
|
||||
}
|
||||
|
||||
private void Save()
|
||||
|
Loading…
Reference in New Issue
Block a user