fix: catch exceptions in ACS hook
This commit is contained in:
parent
da2f249e0f
commit
484603e17b
|
@ -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>
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user