From 874948f674e776c0600dc656186880482847055f Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sat, 27 Apr 2024 14:16:49 +0200 Subject: [PATCH] Include 'world' in tags --- Influx/AllaganTools/Character.cs | 2 ++ Influx/Influx.csproj | 2 +- Influx/Influx/InfluxStatisticsClient.cs | 9 +++++++++ Influx/SubmarineTracker/SubmarineStats.cs | 1 + Influx/SubmarineTracker/SubmarineTrackerIpc.cs | 1 + 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Influx/AllaganTools/Character.cs b/Influx/AllaganTools/Character.cs index 8d85d74..8534a4a 100644 --- a/Influx/AllaganTools/Character.cs +++ b/Influx/AllaganTools/Character.cs @@ -21,6 +21,7 @@ internal sealed class Character ClassJob = (byte)_delegate.GetType().GetField("ClassJob")!.GetValue(_delegate)!; OwnerId = (ulong)_delegate.GetType().GetField("OwnerId")!.GetValue(_delegate)!; FreeCompanyId = (ulong)_delegate.GetType().GetField("FreeCompanyId")!.GetValue(_delegate)!; + WorldId = (uint)_delegate.GetType().GetField("WorldId")!.GetValue(_delegate)!; } public ulong CharacterId { get; } @@ -28,6 +29,7 @@ internal sealed class Character public byte ClassJob { get; } public ulong OwnerId { get; } public ulong FreeCompanyId { get; } + public uint WorldId { get; } public string Name => (string)_name.GetValue(_delegate)!; public uint Level => (uint)_level.GetValue(_delegate)!; } diff --git a/Influx/Influx.csproj b/Influx/Influx.csproj index b4ca043..a41b562 100644 --- a/Influx/Influx.csproj +++ b/Influx/Influx.csproj @@ -1,7 +1,7 @@ net8.0-windows - 0.14 + 0.15 12 enable true diff --git a/Influx/Influx/InfluxStatisticsClient.cs b/Influx/Influx/InfluxStatisticsClient.cs index e0d841c..eea54cf 100644 --- a/Influx/Influx/InfluxStatisticsClient.cs +++ b/Influx/Influx/InfluxStatisticsClient.cs @@ -26,6 +26,7 @@ internal sealed class InfluxStatisticsClient : IDisposable private readonly IReadOnlyDictionary _classJobNames; private readonly IReadOnlyDictionary _expToJobs; private readonly ReadOnlyDictionary _prices; + private readonly ReadOnlyDictionary _worldNames; public InfluxStatisticsClient(IChatGui chatGui, Configuration configuration, IDataManager dataManager, IClientState clientState, IPluginLog pluginLog) @@ -53,6 +54,10 @@ internal sealed class InfluxStatisticsClient : IDisposable UiCategory = x.ItemUICategory.Row, }) .AsReadOnly(); + _worldNames = dataManager.GetExcelSheet()! + .Where(x => x.RowId > 0 && x.IsPublic) + .ToDictionary(x => x.RowId, x => x.Name.ToString()) + .AsReadOnly(); } public bool Enabled => _configuration.Server.Enabled && @@ -118,6 +123,7 @@ internal sealed class InfluxStatisticsClient : IDisposable { values.Add(PointData.Measurement("submersibles") .Tag("id", fc.CharacterId.ToString(CultureInfo.InvariantCulture)) + .Tag("world", _worldNames[fc.WorldId]) .Tag("fc_name", fc.Name) .Tag("sub_id", $"{fc.CharacterId}_{sub.Id}") .Tag("sub_name", sub.Name) @@ -164,6 +170,7 @@ internal sealed class InfluxStatisticsClient : IDisposable Func pointData = s => PointData.Measurement(s) .Tag("id", character.CharacterId.ToString(CultureInfo.InvariantCulture)) .Tag("player_name", character.Name) + .Tag("world", _worldNames[character.WorldId]) .Tag("type", character.CharacterType.ToString()) .Tag("fc_id", includeFc ? character.FreeCompanyId.ToString(CultureInfo.InvariantCulture) : null) .Timestamp(date, WritePrecision.S); @@ -242,6 +249,7 @@ internal sealed class InfluxStatisticsClient : IDisposable .Tag("id", character.CharacterId.ToString(CultureInfo.InvariantCulture)) .Tag("player_name", owner.Name) .Tag("player_id", character.OwnerId.ToString(CultureInfo.InvariantCulture)) + .Tag("world", _worldNames[character.WorldId]) .Tag("type", character.CharacterType.ToString()) .Tag("retainer_name", character.Name) .Timestamp(date, WritePrecision.S); @@ -306,6 +314,7 @@ internal sealed class InfluxStatisticsClient : IDisposable Func pointData = s => PointData.Measurement(s) .Tag("id", character.CharacterId.ToString(CultureInfo.InvariantCulture)) .Tag("fc_name", character.Name) + .Tag("world", _worldNames[character.WorldId]) .Tag("type", character.CharacterType.ToString()) .Timestamp(date, WritePrecision.S); diff --git a/Influx/SubmarineTracker/SubmarineStats.cs b/Influx/SubmarineTracker/SubmarineStats.cs index dfb1392..3ef543a 100644 --- a/Influx/SubmarineTracker/SubmarineStats.cs +++ b/Influx/SubmarineTracker/SubmarineStats.cs @@ -6,6 +6,7 @@ internal sealed class SubmarineStats { public required string Name { get; init; } public required int Id { get; init; } + public required uint WorldId { get; init; } public bool Enabled { get; set; } = true; public required ushort Level { get; init; } public required ushort PredictedLevel { get; init; } diff --git a/Influx/SubmarineTracker/SubmarineTrackerIpc.cs b/Influx/SubmarineTracker/SubmarineTrackerIpc.cs index d424eca..a1d8a2c 100644 --- a/Influx/SubmarineTracker/SubmarineTrackerIpc.cs +++ b/Influx/SubmarineTracker/SubmarineTrackerIpc.cs @@ -48,6 +48,7 @@ internal sealed class SubmarineTrackerIpc { Id = x.Subs.IndexOf(y), Name = y.Name, + WorldId = x.Fc!.WorldId, Level = y.Level, PredictedLevel = y.PredictedLevel, Hull = y.Build.HullIdentifier,