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)
{