diff --git a/Dalamud/Game/ClientState/Conditions/Condition.cs b/Dalamud/Game/ClientState/Conditions/Condition.cs
index 0f8523e9b..2db47ea4d 100644
--- a/Dalamud/Game/ClientState/Conditions/Condition.cs
+++ b/Dalamud/Game/ClientState/Conditions/Condition.cs
@@ -189,6 +189,8 @@ internal class ConditionPluginScoped : IDisposable, IServiceType, ICondition
public void Dispose()
{
this.conditionService.ConditionChange -= this.ConditionChangedForward;
+
+ this.ConditionChange = null;
}
///
diff --git a/Dalamud/Game/DutyState/DutyState.cs b/Dalamud/Game/DutyState/DutyState.cs
index 34940dee0..c52ceff0f 100644
--- a/Dalamud/Game/DutyState/DutyState.cs
+++ b/Dalamud/Game/DutyState/DutyState.cs
@@ -210,6 +210,11 @@ internal class DutyStatePluginScoped : IDisposable, IServiceType, IDutyState
this.dutyStateService.DutyWiped -= this.DutyWipedForward;
this.dutyStateService.DutyRecommenced -= this.DutyRecommencedForward;
this.dutyStateService.DutyCompleted -= this.DutyCompletedForward;
+
+ this.DutyStarted = null;
+ this.DutyWiped = null;
+ this.DutyRecommenced = null;
+ this.DutyCompleted = null;
}
private void DutyStartedForward(object sender, ushort territoryId) => this.DutyStarted?.Invoke(sender, territoryId);
diff --git a/Dalamud/Game/Gui/ChatGui.cs b/Dalamud/Game/Gui/ChatGui.cs
index 2fbeb404e..55c919ab5 100644
--- a/Dalamud/Game/Gui/ChatGui.cs
+++ b/Dalamud/Game/Gui/ChatGui.cs
@@ -460,6 +460,11 @@ internal class ChatGuiPluginScoped : IDisposable, IServiceType, IChatGui
this.chatGuiService.CheckMessageHandled -= this.OnCheckMessageForward;
this.chatGuiService.ChatMessageHandled -= this.OnMessageHandledForward;
this.chatGuiService.ChatMessageUnhandled -= this.OnMessageUnhandledForward;
+
+ this.ChatMessage = null;
+ this.CheckMessageHandled = null;
+ this.ChatMessageHandled = null;
+ this.ChatMessageUnhandled = null;
}
///
diff --git a/Dalamud/Game/Gui/FlyText/FlyTextGui.cs b/Dalamud/Game/Gui/FlyText/FlyTextGui.cs
index 3c04c744a..64de4b2dd 100644
--- a/Dalamud/Game/Gui/FlyText/FlyTextGui.cs
+++ b/Dalamud/Game/Gui/FlyText/FlyTextGui.cs
@@ -307,6 +307,8 @@ internal class FlyTextGuiPluginScoped : IDisposable, IServiceType, IFlyTextGui
public void Dispose()
{
this.flyTextGuiService.FlyTextCreated -= this.FlyTextCreatedForward;
+
+ this.FlyTextCreated = null;
}
///
diff --git a/Dalamud/Game/Gui/GameGui.cs b/Dalamud/Game/Gui/GameGui.cs
index 078c624e8..349d2a424 100644
--- a/Dalamud/Game/Gui/GameGui.cs
+++ b/Dalamud/Game/Gui/GameGui.cs
@@ -566,6 +566,10 @@ internal class GameGuiPluginScoped : IDisposable, IServiceType, IGameGui
this.gameGuiService.UiHideToggled -= this.UiHideToggledForward;
this.gameGuiService.HoveredItemChanged -= this.HoveredItemForward;
this.gameGuiService.HoveredActionChanged -= this.HoveredActionForward;
+
+ this.UiHideToggled = null;
+ this.HoveredItemChanged = null;
+ this.HoveredActionChanged = null;
}
///
diff --git a/Dalamud/Game/Gui/PartyFinder/PartyFinderGui.cs b/Dalamud/Game/Gui/PartyFinder/PartyFinderGui.cs
index 41a8ba56a..4bd93cdf0 100644
--- a/Dalamud/Game/Gui/PartyFinder/PartyFinderGui.cs
+++ b/Dalamud/Game/Gui/PartyFinder/PartyFinderGui.cs
@@ -156,6 +156,8 @@ internal class PartyFinderGuiPluginScoped : IDisposable, IServiceType, IPartyFin
public void Dispose()
{
this.partyFinderGuiService.ReceiveListing -= this.ReceiveListingForward;
+
+ this.ReceiveListing = null;
}
private void ReceiveListingForward(PartyFinderListing listing, PartyFinderListingEventArgs args) => this.ReceiveListing?.Invoke(listing, args);
diff --git a/Dalamud/Game/Gui/Toast/ToastGui.cs b/Dalamud/Game/Gui/Toast/ToastGui.cs
index 93126710b..9624e3e72 100644
--- a/Dalamud/Game/Gui/Toast/ToastGui.cs
+++ b/Dalamud/Game/Gui/Toast/ToastGui.cs
@@ -417,6 +417,10 @@ internal class ToastGuiPluginScoped : IDisposable, IServiceType, IToastGui
this.toastGuiService.Toast -= this.ToastForward;
this.toastGuiService.QuestToast -= this.QuestToastForward;
this.toastGuiService.ErrorToast -= this.ErrorToastForward;
+
+ this.Toast = null;
+ this.QuestToast = null;
+ this.ErrorToast = null;
}
///
diff --git a/Dalamud/Game/Network/GameNetwork.cs b/Dalamud/Game/Network/GameNetwork.cs
index f56fd3996..7c900ece4 100644
--- a/Dalamud/Game/Network/GameNetwork.cs
+++ b/Dalamud/Game/Network/GameNetwork.cs
@@ -169,6 +169,8 @@ internal class GameNetworkPluginScoped : IDisposable, IServiceType, IGameNetwork
public void Dispose()
{
this.gameNetworkService.NetworkMessage -= this.NetworkMessageForward;
+
+ this.NetworkMessage = null;
}
private void NetworkMessageForward(nint dataPtr, ushort opCode, uint sourceActorId, uint targetActorId, NetworkMessageDirection direction)
diff --git a/Dalamud/Utility/Util.cs b/Dalamud/Utility/Util.cs
index 78edda3dd..8ca87b691 100644
--- a/Dalamud/Utility/Util.cs
+++ b/Dalamud/Utility/Util.cs
@@ -609,7 +609,23 @@ public static class Util
}
}
}
+
+ ///
+ /// Overwrite text in a file by first writing it to a temporary file, and then
+ /// moving that file to the path specified.
+ ///
+ /// The path of the file to write to.
+ /// The text to write.
+ public static void WriteAllTextSafe(string path, string text)
+ {
+ var tmpPath = path + ".tmp";
+ if (File.Exists(tmpPath))
+ File.Delete(tmpPath);
+ File.WriteAllText(tmpPath, text);
+ File.Move(tmpPath, path, true);
+ }
+
///
/// Dispose this object.
///
@@ -645,22 +661,6 @@ public static class Util
}
}
- ///
- /// Overwrite text in a file by first writing it to a temporary file, and then
- /// moving that file to the path specified.
- ///
- /// The path of the file to write to.
- /// The text to write.
- internal static void WriteAllTextSafe(string path, string text)
- {
- var tmpPath = path + ".tmp";
- if (File.Exists(tmpPath))
- File.Delete(tmpPath);
-
- File.WriteAllText(tmpPath, text);
- File.Move(tmpPath, path, true);
- }
-
///
/// Gets a random, inoffensive, human-friendly string.
///