diff --git a/Dalamud/Game/Network/Internal/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs b/Dalamud/Game/Network/Internal/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs index 78634e608..2e974d4ac 100644 --- a/Dalamud/Game/Network/Internal/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs +++ b/Dalamud/Game/Network/Internal/MarketBoardUploaders/Universalis/UniversalisMarketBoardUploader.cs @@ -53,6 +53,7 @@ internal class UniversalisMarketBoardUploader : IMarketBoardUploader { var universalisListing = new UniversalisItemListingsEntry { + ListingId = marketBoardItemListing.ListingId.ToString(), Hq = marketBoardItemListing.IsHq, SellerId = marketBoardItemListing.RetainerOwnerId.ToString(), RetainerName = marketBoardItemListing.RetainerName, diff --git a/Dalamud/Interface/Internal/Windows/DataWindow.cs b/Dalamud/Interface/Internal/Windows/DataWindow.cs index 2cfcdefc4..be17baac4 100644 --- a/Dalamud/Interface/Internal/Windows/DataWindow.cs +++ b/Dalamud/Interface/Internal/Windows/DataWindow.cs @@ -451,6 +451,10 @@ internal class DataWindow : Window { ImGui.TextUnformatted("LocalPlayer null."); } + else if (clientState.IsPvPExcludingDen) + { + ImGui.TextUnformatted("Cannot access object table while in PvP."); + } else { stateString += $"ObjectTableLen: {objectTable.Length}\n"; diff --git a/Dalamud/Localization.cs b/Dalamud/Localization.cs index 51918a004..b180f113a 100644 --- a/Dalamud/Localization.cs +++ b/Dalamud/Localization.cs @@ -140,9 +140,10 @@ public class Localization : IServiceType /// /// Saves localizable JSON data in the current working directory for the provided assembly. /// - public void ExportLocalizable() + /// If set to true, this ignores malformed Localize functions instead of failing. + public void ExportLocalizable(bool ignoreInvalidFunctions = false) { - Loc.ExportLocalizableForAssembly(this.assembly); + Loc.ExportLocalizableForAssembly(this.assembly, ignoreInvalidFunctions); } private string ReadLocData(string langCode) diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs index aac4376ea..6524c90a8 100644 --- a/Dalamud/Plugin/DalamudPluginInterface.cs +++ b/Dalamud/Plugin/DalamudPluginInterface.cs @@ -42,8 +42,8 @@ public sealed class DalamudPluginInterface : IDisposable /// Location of the assembly. /// The reason the plugin was loaded. /// A value indicating whether this is a dev plugin. - /// The repository from which the plugin is installed. - internal DalamudPluginInterface(string pluginName, FileInfo assemblyLocation, PluginLoadReason reason, bool isDev, string sourceRepository) + /// The local manifest for this plugin. + internal DalamudPluginInterface(string pluginName, FileInfo assemblyLocation, PluginLoadReason reason, bool isDev, LocalPluginManifest manifest) { var configuration = Service.Get(); var dataManager = Service.Get(); @@ -56,7 +56,8 @@ public sealed class DalamudPluginInterface : IDisposable this.configs = Service.Get().PluginConfigs; this.Reason = reason; this.IsDev = isDev; - this.SourceRepository = isDev ? LocalPluginManifest.FlagDevPlugin : sourceRepository; + this.SourceRepository = isDev ? LocalPluginManifest.FlagDevPlugin : manifest.InstalledFromUrl; + this.IsTesting = manifest.Testing; this.LoadTime = DateTime.Now; this.LoadTimeUTC = DateTime.UtcNow; @@ -97,7 +98,11 @@ public sealed class DalamudPluginInterface : IDisposable public PluginLoadReason Reason { get; } /// - /// Gets the custom repository from which this plugin is installed, , or . + /// Gets the repository from which this plugin was installed. + /// + /// If a plugin was installed from the official/main repository, this will return the value of + /// . Developer plugins will return the value of + /// . /// public string SourceRepository { get; } @@ -106,6 +111,14 @@ public sealed class DalamudPluginInterface : IDisposable /// public bool IsDev { get; } + /// + /// Gets a value indicating whether this is a testing release of a plugin. + /// + /// + /// Dev plugins have undefined behavior for this value, but can be expected to return false. + /// + public bool IsTesting { get; } + /// /// Gets the time that this plugin was loaded. /// diff --git a/Dalamud/Plugin/Internal/Types/LocalPlugin.cs b/Dalamud/Plugin/Internal/Types/LocalPlugin.cs index 3c5405830..d01cc17e7 100644 --- a/Dalamud/Plugin/Internal/Types/LocalPlugin.cs +++ b/Dalamud/Plugin/Internal/Types/LocalPlugin.cs @@ -406,11 +406,10 @@ internal class LocalPlugin : IDisposable } // Update the location for the Location and CodeBase patches - PluginManager.PluginLocations[this.pluginType.Assembly.FullName] = - new PluginPatchData(this.DllFile); + PluginManager.PluginLocations[this.pluginType.Assembly.FullName] = new PluginPatchData(this.DllFile); this.DalamudInterface = - new DalamudPluginInterface(this.pluginAssembly.GetName().Name!, this.DllFile, reason, this.IsDev, this.Manifest.InstalledFromUrl); + new DalamudPluginInterface(this.pluginAssembly.GetName().Name!, this.DllFile, reason, this.IsDev, this.Manifest); if (this.Manifest.LoadSync && this.Manifest.LoadRequiredState is 0 or 1) {