diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index f36c27185..3a24e747e 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,5 +1,5 @@
name: Build Dalamud
-on: [push]
+on: [push, pull_request]
jobs:
build:
diff --git a/Dalamud.Injector/Dalamud.Injector.csproj b/Dalamud.Injector/Dalamud.Injector.csproj
index 514b9681d..40a9f6d19 100644
--- a/Dalamud.Injector/Dalamud.Injector.csproj
+++ b/Dalamud.Injector/Dalamud.Injector.csproj
@@ -14,10 +14,10 @@
true
- 4.7.22.0
- 4.7.22.0
+ 4.8.0.0
+ 4.8.0.0
XIVLauncher addon injection
- 4.7.22.0
+ 4.8.0.0
diff --git a/Dalamud/Dalamud.csproj b/Dalamud/Dalamud.csproj
index e4466d4d5..376b8a8d3 100644
--- a/Dalamud/Dalamud.csproj
+++ b/Dalamud/Dalamud.csproj
@@ -14,9 +14,9 @@
true
- 4.7.22.0
- 4.7.22.0
- 4.7.22.0
+ 4.8.0.0
+ 4.8.0
+ 4.8.0.0
diff --git a/Dalamud/Game/ClientState/Actors/ActorTable.cs b/Dalamud/Game/ClientState/Actors/ActorTable.cs
index 061f1b63b..65b874a00 100644
--- a/Dalamud/Game/ClientState/Actors/ActorTable.cs
+++ b/Dalamud/Game/ClientState/Actors/ActorTable.cs
@@ -1,9 +1,7 @@
using System;
using System.Collections;
using System.Diagnostics;
-using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
-using System.Windows.Forms;
using Dalamud.Game.ClientState.Actors.Types;
using Dalamud.Game.ClientState.Actors.Types.NonPlayer;
using Dalamud.Hooking;
@@ -76,20 +74,20 @@ namespace Dalamud.Game.ClientState.Actors {
if (!this.isReady)
return null;
- if (this.someActorTableAccessHook != null) {
+ if (this.someActorTableAccessHook != null)
+ {
this.someActorTableAccessHook.Dispose();
this.someActorTableAccessHook = null;
}
if (index >= Length)
return null;
-
- //Log.Information("Trying to get actor at {0}", index);
+
var tblIndex = this.realActorTablePtr + 8 + index * 8;
var offset = Marshal.ReadIntPtr(tblIndex);
- //Log.Information("Actor at {0}", offset.ToString());
+ Log.Verbose("Actor at {0} for {1}", offset.ToInt64().ToString("X"), index);
if (offset == IntPtr.Zero)
return null;
diff --git a/Dalamud/Plugin/PluginInstallerWindow.cs b/Dalamud/Plugin/PluginInstallerWindow.cs
index 7931345ee..0c4d7474e 100644
--- a/Dalamud/Plugin/PluginInstallerWindow.cs
+++ b/Dalamud/Plugin/PluginInstallerWindow.cs
@@ -77,7 +77,10 @@ namespace Dalamud.Plugin
ImGui.PushID(pluginDefinition.InternalName + pluginDefinition.AssemblyVersion);
- if (ImGui.CollapsingHeader(pluginDefinition.Name)) {
+ var isInstalled = this.manager.Plugins.Where(x => x.Definition != null).Any(
+ x => x.Definition.InternalName == pluginDefinition.InternalName);
+
+ if (ImGui.CollapsingHeader(pluginDefinition.Name + (isInstalled ? " (installed)" : string.Empty))) {
ImGui.Indent();
ImGui.Text(pluginDefinition.Name);
@@ -86,9 +89,6 @@ namespace Dalamud.Plugin
ImGui.Text(pluginDefinition.Description);
- var isInstalled = this.manager.Plugins.Where(x => x.Definition != null).Any(
- x => x.Definition.InternalName == pluginDefinition.InternalName);
-
if (!isInstalled) {
if (this.installStatus == PluginInstallStatus.InProgress) {
ImGui.Button("Install in progress...");
diff --git a/Dalamud/Plugin/PluginRepository.cs b/Dalamud/Plugin/PluginRepository.cs
index 0f386b1d1..af8ff3326 100644
--- a/Dalamud/Plugin/PluginRepository.cs
+++ b/Dalamud/Plugin/PluginRepository.cs
@@ -142,11 +142,6 @@ namespace Dalamud.Plugin
// DisablePlugin() below immediately creates a .disabled file anyway, but will fail
// with an exception if we try to do it twice in row like this
- // TODO: not sure if doing this for all versions is really necessary, since the
- // others really needed to be disabled before anyway
- //foreach (var sortedVersion in sortedVersions) {
- // File.Create(Path.Combine(sortedVersion.FullName, ".disabled"));
- //}
if (!dryRun)
{
@@ -161,6 +156,18 @@ namespace Dalamud.Plugin
hasError = true;
}
+ try {
+ // Just to be safe
+ foreach (var sortedVersion in sortedVersions)
+ {
+ var disabledFile = new FileInfo(Path.Combine(sortedVersion.FullName, ".disabled"));
+ if (!disabledFile.Exists)
+ disabledFile.Create();
+ }
+ } catch (Exception ex) {
+ Log.Error(ex, "Plugin disable failed");
+ }
+
var installSuccess = InstallPlugin(remoteInfo);
if (installSuccess)