fix: catch exceptions in ACS hook

This commit is contained in:
Anna 2021-04-13 09:13:35 -04:00
parent da2f249e0f
commit 484603e17b
Signed by: anna
GPG Key ID: 0B391D8F06FCD9E0
2 changed files with 16 additions and 9 deletions

View File

@ -6,23 +6,23 @@
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Dalamud, Version=5.2.4.2, Culture=neutral, PublicKeyToken=null"> <Reference Include="Dalamud">
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Dalamud.dll</HintPath> <HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Dalamud.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="ImGui.NET, Version=1.72.0.0, Culture=neutral, PublicKeyToken=null"> <Reference Include="ImGui.NET">
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGui.NET.dll</HintPath> <HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGui.NET.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="ImGuiScene, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> <Reference Include="ImGuiScene">
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGuiScene.dll</HintPath> <HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\ImGuiScene.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Lumina, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"> <Reference Include="Lumina">
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.dll</HintPath> <HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Lumina.Excel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> <Reference Include="Lumina.Excel">
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.Excel.dll</HintPath> <HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Lumina.Excel.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>

View File

@ -78,19 +78,26 @@ namespace Globetrotter {
} }
private char OnACS(long a1, long a2, IntPtr dataPtr) { private char OnACS(long a1, long a2, IntPtr dataPtr) {
try {
this.OnACSInner(dataPtr);
} catch (Exception ex) {
PluginLog.LogError(ex, "Exception on ACS");
}
return this._acsHook.Original(a1, a2, dataPtr);
}
private void OnACSInner(IntPtr dataPtr) {
var packet = ParsePacket(dataPtr); var packet = ParsePacket(dataPtr);
if (packet == null) { if (packet == null) {
return this._acsHook.Original(a1, a2, dataPtr); return;
} }
this._lastMap = packet; this._lastMap = packet;
if (this.Config.ShowOnOpen && packet.JustOpened) { if (this.Config.ShowOnOpen && packet.JustOpened) {
// this does not work because the offset in memory is not yet updated with the thing
this.OpenMapLocation(); this.OpenMapLocation();
} }
return this._acsHook.Original(a1, a2, dataPtr);
} }
public void OpenMapLocation() { public void OpenMapLocation() {