Merge branch 'master' of github.com:goatcorp/Dalamud

This commit is contained in:
goat 2023-01-10 18:57:18 +01:00
commit f42832c98e
No known key found for this signature in database
GPG key ID: 49E2AA8C6A76498B
5 changed files with 27 additions and 9 deletions

View file

@ -53,6 +53,7 @@ internal class UniversalisMarketBoardUploader : IMarketBoardUploader
{ {
var universalisListing = new UniversalisItemListingsEntry var universalisListing = new UniversalisItemListingsEntry
{ {
ListingId = marketBoardItemListing.ListingId.ToString(),
Hq = marketBoardItemListing.IsHq, Hq = marketBoardItemListing.IsHq,
SellerId = marketBoardItemListing.RetainerOwnerId.ToString(), SellerId = marketBoardItemListing.RetainerOwnerId.ToString(),
RetainerName = marketBoardItemListing.RetainerName, RetainerName = marketBoardItemListing.RetainerName,

View file

@ -451,6 +451,10 @@ internal class DataWindow : Window
{ {
ImGui.TextUnformatted("LocalPlayer null."); ImGui.TextUnformatted("LocalPlayer null.");
} }
else if (clientState.IsPvPExcludingDen)
{
ImGui.TextUnformatted("Cannot access object table while in PvP.");
}
else else
{ {
stateString += $"ObjectTableLen: {objectTable.Length}\n"; stateString += $"ObjectTableLen: {objectTable.Length}\n";

View file

@ -140,9 +140,10 @@ public class Localization : IServiceType
/// <summary> /// <summary>
/// Saves localizable JSON data in the current working directory for the provided assembly. /// Saves localizable JSON data in the current working directory for the provided assembly.
/// </summary> /// </summary>
public void ExportLocalizable() /// <param name="ignoreInvalidFunctions">If set to true, this ignores malformed Localize functions instead of failing.</param>
public void ExportLocalizable(bool ignoreInvalidFunctions = false)
{ {
Loc.ExportLocalizableForAssembly(this.assembly); Loc.ExportLocalizableForAssembly(this.assembly, ignoreInvalidFunctions);
} }
private string ReadLocData(string langCode) private string ReadLocData(string langCode)

View file

@ -42,8 +42,8 @@ public sealed class DalamudPluginInterface : IDisposable
/// <param name="assemblyLocation">Location of the assembly.</param> /// <param name="assemblyLocation">Location of the assembly.</param>
/// <param name="reason">The reason the plugin was loaded.</param> /// <param name="reason">The reason the plugin was loaded.</param>
/// <param name="isDev">A value indicating whether this is a dev plugin.</param> /// <param name="isDev">A value indicating whether this is a dev plugin.</param>
/// <param name="sourceRepository">The repository from which the plugin is installed.</param> /// <param name="manifest">The local manifest for this plugin.</param>
internal DalamudPluginInterface(string pluginName, FileInfo assemblyLocation, PluginLoadReason reason, bool isDev, string sourceRepository) internal DalamudPluginInterface(string pluginName, FileInfo assemblyLocation, PluginLoadReason reason, bool isDev, LocalPluginManifest manifest)
{ {
var configuration = Service<DalamudConfiguration>.Get(); var configuration = Service<DalamudConfiguration>.Get();
var dataManager = Service<DataManager>.Get(); var dataManager = Service<DataManager>.Get();
@ -56,7 +56,8 @@ public sealed class DalamudPluginInterface : IDisposable
this.configs = Service<PluginManager>.Get().PluginConfigs; this.configs = Service<PluginManager>.Get().PluginConfigs;
this.Reason = reason; this.Reason = reason;
this.IsDev = isDev; 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.LoadTime = DateTime.Now;
this.LoadTimeUTC = DateTime.UtcNow; this.LoadTimeUTC = DateTime.UtcNow;
@ -97,7 +98,11 @@ public sealed class DalamudPluginInterface : IDisposable
public PluginLoadReason Reason { get; } public PluginLoadReason Reason { get; }
/// <summary> /// <summary>
/// Gets the custom repository from which this plugin is installed, <inheritdoc cref="LocalPluginManifest.FlagMainRepo"/>, or <inheritdoc cref="LocalPluginManifest.FlagDevPlugin"/>. /// 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
/// <see cref="LocalPluginManifest.FlagMainRepo"/>. Developer plugins will return the value of
/// <see cref="LocalPluginManifest.FlagDevPlugin"/>.
/// </summary> /// </summary>
public string SourceRepository { get; } public string SourceRepository { get; }
@ -106,6 +111,14 @@ public sealed class DalamudPluginInterface : IDisposable
/// </summary> /// </summary>
public bool IsDev { get; } public bool IsDev { get; }
/// <summary>
/// Gets a value indicating whether this is a testing release of a plugin.
/// </summary>
/// <remarks>
/// Dev plugins have undefined behavior for this value, but can be expected to return <c>false</c>.
/// </remarks>
public bool IsTesting { get; }
/// <summary> /// <summary>
/// Gets the time that this plugin was loaded. /// Gets the time that this plugin was loaded.
/// </summary> /// </summary>

View file

@ -406,11 +406,10 @@ internal class LocalPlugin : IDisposable
} }
// Update the location for the Location and CodeBase patches // Update the location for the Location and CodeBase patches
PluginManager.PluginLocations[this.pluginType.Assembly.FullName] = PluginManager.PluginLocations[this.pluginType.Assembly.FullName] = new PluginPatchData(this.DllFile);
new PluginPatchData(this.DllFile);
this.DalamudInterface = 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) if (this.Manifest.LoadSync && this.Manifest.LoadRequiredState is 0 or 1)
{ {