fix: catch exceptions in ACS hook
This commit is contained in:
parent
da2f249e0f
commit
484603e17b
|
@ -6,23 +6,23 @@
|
|||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
<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>
|
||||
<Private>False</Private>
|
||||
</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>
|
||||
<Private>False</Private>
|
||||
</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>
|
||||
<Private>False</Private>
|
||||
</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>
|
||||
<Private>False</Private>
|
||||
</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>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
|
|
|
@ -78,19 +78,26 @@ namespace Globetrotter {
|
|||
}
|
||||
|
||||
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);
|
||||
if (packet == null) {
|
||||
return this._acsHook.Original(a1, a2, dataPtr);
|
||||
return;
|
||||
}
|
||||
|
||||
this._lastMap = packet;
|
||||
|
||||
if (this.Config.ShowOnOpen && packet.JustOpened) {
|
||||
// this does not work because the offset in memory is not yet updated with the thing
|
||||
this.OpenMapLocation();
|
||||
}
|
||||
|
||||
return this._acsHook.Original(a1, a2, dataPtr);
|
||||
}
|
||||
|
||||
public void OpenMapLocation() {
|
||||
|
|
Loading…
Reference in New Issue
Block a user