diff --git a/.gitmodules b/.gitmodules
index 0bc08a361..832da345f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,3 +4,6 @@
[submodule "vendor/ECommons"]
path = vendor/ECommons
url = https://github.com/NightmareXIV/ECommons.git
+[submodule "vendor/NotificationMasterAPI"]
+ path = vendor/NotificationMasterAPI
+ url = https://github.com/NightmareXIV/NotificationMasterAPI.git
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 6aced3c9e..c0b49f3b3 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,5 +1,5 @@
-
- 3.7
+
+ 4.14
diff --git a/GatheringPathRenderer/.gitignore b/GatheringPathRenderer/.gitignore
new file mode 100644
index 000000000..a60a458a9
--- /dev/null
+++ b/GatheringPathRenderer/.gitignore
@@ -0,0 +1 @@
+/dist
diff --git a/GatheringPathRenderer/DalamudPackager.targets b/GatheringPathRenderer/DalamudPackager.targets
new file mode 100644
index 000000000..7f129a87a
--- /dev/null
+++ b/GatheringPathRenderer/DalamudPackager.targets
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/GatheringPathRenderer/EditorCommands.cs b/GatheringPathRenderer/EditorCommands.cs
index 2e9edad5d..ae0247ae0 100644
--- a/GatheringPathRenderer/EditorCommands.cs
+++ b/GatheringPathRenderer/EditorCommands.cs
@@ -3,16 +3,12 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
-using System.Text.Json;
-using System.Text.Json.Nodes;
-using System.Text.Json.Serialization;
-using System.Text.Json.Serialization.Metadata;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.Command;
using Dalamud.Plugin.Services;
-using Lumina.Excel.GeneratedSheets;
+using Lumina.Excel.Sheets;
using Questionable.Model;
using Questionable.Model.Gathering;
using Questionable.Model.Questing;
@@ -70,14 +66,14 @@ internal sealed class EditorCommands : IDisposable
if (target == null || target.ObjectKind != ObjectKind.GatheringPoint)
throw new Exception("No valid target");
- var gatheringPoint = _dataManager.GetExcelSheet()!.GetRow(target.DataId);
+ var gatheringPoint = _dataManager.GetExcelSheet().GetRowOrDefault(target.DataId);
if (gatheringPoint == null)
throw new Exception("Invalid gathering point");
FileInfo targetFile;
GatheringRoot root;
var locationsInTerritory = _plugin.GetLocationsInTerritory(_clientState.TerritoryType).ToList();
- var location = locationsInTerritory.SingleOrDefault(x => x.Id == gatheringPoint.GatheringPointBase.Row);
+ var location = locationsInTerritory.SingleOrDefault(x => x.Id == gatheringPoint.Value.GatheringPointBase.RowId);
if (location != null)
{
targetFile = location.File;
@@ -96,7 +92,7 @@ internal sealed class EditorCommands : IDisposable
}
else
{
- (targetFile, root) = CreateNewFile(gatheringPoint, target);
+ (targetFile, root) = CreateNewFile(gatheringPoint.Value, target);
_chatGui.Print($"Creating new file under {targetFile.FullName}", "qG");
}
@@ -174,16 +170,16 @@ internal sealed class EditorCommands : IDisposable
?.File.Directory;
if (targetFolder == null)
{
- var territoryInfo = _dataManager.GetExcelSheet()!.GetRow(_clientState.TerritoryType)!;
+ var territoryInfo = _dataManager.GetExcelSheet().GetRow(_clientState.TerritoryType);
targetFolder = _plugin.PathsDirectory
- .CreateSubdirectory(ExpansionData.ExpansionFolders[(EExpansionVersion)territoryInfo.ExVersion.Row])
- .CreateSubdirectory(territoryInfo.PlaceName.Value!.Name.ToString());
+ .CreateSubdirectory(ExpansionData.ExpansionFolders[(EExpansionVersion)territoryInfo.ExVersion.RowId])
+ .CreateSubdirectory(territoryInfo.PlaceName.Value.Name.ToString());
}
FileInfo targetFile =
new FileInfo(
Path.Combine(targetFolder.FullName,
- $"{gatheringPoint.GatheringPointBase.Row}_{gatheringPoint.PlaceName.Value!.Name}_{(_clientState.LocalPlayer!.ClassJob.Id == 16 ? "MIN" : "BTN")}.json"));
+ $"{gatheringPoint.GatheringPointBase.RowId}_{gatheringPoint.PlaceName.Value.Name}_{(_clientState.LocalPlayer!.ClassJob.RowId == 16 ? "MIN" : "BTN")}.json"));
var root = new GatheringRoot
{
Author = [_configuration.AuthorName],
diff --git a/GatheringPathRenderer/GatheringPathRenderer.csproj b/GatheringPathRenderer/GatheringPathRenderer.csproj
index fc157f207..73d05cbeb 100644
--- a/GatheringPathRenderer/GatheringPathRenderer.csproj
+++ b/GatheringPathRenderer/GatheringPathRenderer.csproj
@@ -1,4 +1,11 @@
-
+
+
+ 0.1
+ dist
+ $(SolutionDir)=X:\
+ x64
+
+
@@ -6,4 +13,5 @@
+
diff --git a/GatheringPathRenderer/GatheringPathRenderer.json b/GatheringPathRenderer/GatheringPathRenderer.json
index 8d68d1d89..56f917099 100644
--- a/GatheringPathRenderer/GatheringPathRenderer.json
+++ b/GatheringPathRenderer/GatheringPathRenderer.json
@@ -1,6 +1,7 @@
{
"Name": "GatheringPathRenderer",
"Author": "Liza Carvelli",
- "Punchline": "dev only plugin: Renders gathering location.",
- "Description": "dev only plugin: Renders gathering location (without ECommons polluting the entire normal project)."
+ "Punchline": "[Questionable dev plugin]: Renders gathering location.",
+ "Description": "[Questionable dev plugin]: Renders gathering location using Splatoon.",
+ "RepoUrl": "https://git.carvel.li/liza/Questionable/src/branch/master/GatheringPathRenderer"
}
diff --git a/GatheringPathRenderer/RendererPlugin.cs b/GatheringPathRenderer/RendererPlugin.cs
index dbad17157..93c666a8c 100644
--- a/GatheringPathRenderer/RendererPlugin.cs
+++ b/GatheringPathRenderer/RendererPlugin.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using System.Text.Encodings.Web;
@@ -17,11 +18,11 @@ using ECommons.Schedulers;
using ECommons.SplatoonAPI;
using GatheringPathRenderer.Windows;
using LLib.GameData;
-using Questionable.Model;
using Questionable.Model.Gathering;
namespace GatheringPathRenderer;
+[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")]
public sealed class RendererPlugin : IDalamudPlugin
{
private const long OnTerritoryChange = -2;
@@ -56,10 +57,12 @@ public sealed class RendererPlugin : IDalamudPlugin
_editorCommands = new EditorCommands(this, dataManager, commandManager, targetManager, clientState, chatGui,
configuration);
- _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable)
+ var configWindow = new ConfigWindow(pluginInterface, configuration);
+ _editorWindow = new EditorWindow(this, _editorCommands, dataManager, targetManager, clientState, objectTable, configWindow)
{ IsOpen = true };
+ _windowSystem.AddWindow(configWindow);
_windowSystem.AddWindow(_editorWindow);
- _currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.Id ?? EClassJob.Adventurer;
+ _currentClassJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer;
_pluginInterface.GetIpcSubscriber