0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 05:50:44 -05:00

Added patch failure handling, thanks to Drakia

This commit is contained in:
Dev 2024-03-14 17:08:20 +00:00
parent fa423cb9be
commit 27c0d3f0ae
3 changed files with 59 additions and 0 deletions

View File

@ -32,6 +32,7 @@ namespace Aki.Core
{ {
Logger.LogError($"A PATCH IN {GetType().Name} FAILED. SUBSEQUENT PATCHES HAVE NOT LOADED"); Logger.LogError($"A PATCH IN {GetType().Name} FAILED. SUBSEQUENT PATCHES HAVE NOT LOADED");
Logger.LogError($"{GetType().Name}: {ex}"); Logger.LogError($"{GetType().Name}: {ex}");
throw; throw;
} }

View File

@ -80,6 +80,8 @@ namespace Aki.Custom
{ {
Logger.LogError($"A PATCH IN {GetType().Name} FAILED. SUBSEQUENT PATCHES HAVE NOT LOADED"); Logger.LogError($"A PATCH IN {GetType().Name} FAILED. SUBSEQUENT PATCHES HAVE NOT LOADED");
Logger.LogError($"{GetType().Name}: {ex}"); Logger.LogError($"{GetType().Name}: {ex}");
MessageBoxHelper.Show($"A PATCH IN {GetType().Name} FAILED. SUBSEQUENT PATCHES HAVE NOT LOADED, CHECK LOG FOR MORE DETAILS", "ERROR", MessageBoxHelper.MessageBoxType.OK);
throw; throw;
} }

View File

@ -0,0 +1,56 @@
using System;
using System.Runtime.InteropServices;
namespace Aki.Custom.Utils
{
public class MessageBoxHelper
{
public enum MessageBoxType : uint
{
ABORTRETRYIGNORE = (uint)(0x00000002L | 0x00000010L),
CANCELTRYCONTINUE = (uint)(0x00000006L | 0x00000030L),
HELP = (uint)(0x00004000L | 0x00000040L),
OK = (uint)(0x00000000L | 0x00000040L),
OKCANCEL = (uint)(0x00000001L | 0x00000040L),
RETRYCANCEL = (uint)0x00000005L,
YESNO = (uint)(0x00000004L | 0x00000040L),
YESNOCANCEL = (uint)(0x00000003L | 0x00000040L),
DEFAULT = (uint)(0x00000000L | 0x00000010L)
}
public enum MessageBoxResult
{
ERROR = -1,
OK = 1,
CANCEL = 2,
ABORT = 3,
RETRY = 4,
IGNORE = 5,
YES = 6,
NO = 7,
TRY_AGAIN = 10
}
[DllImport("user32.dll")]
private static extern IntPtr GetActiveWindow();
[DllImport("user32.dll", SetLastError = true)]
static extern int MessageBox(IntPtr hwnd, String lpText, String lpCaption, uint uType);
public static IntPtr GetWindowHandle()
{
return GetActiveWindow();
}
public static MessageBoxResult Show(string text, string caption, MessageBoxType type = MessageBoxType.DEFAULT)
{
try
{
return (MessageBoxResult)MessageBox(GetWindowHandle(), text, caption, (uint)type); ;
}
catch (Exception)
{
return MessageBoxResult.ERROR;
}
}
}
}