Try-catch statements for Harmony patches

This commit is contained in:
SDraw 2022-09-13 08:09:33 +03:00
parent bee29e7771
commit 4e3d5dd6d4
No known key found for this signature in database
GPG key ID: BB95B4DAB2BB8BB5
6 changed files with 93 additions and 37 deletions

View file

@ -3,9 +3,9 @@ Merged set of MelonLoader mods for ChilloutVR.
**State table for game build 2022r168:**
| Full name | Short name | Latest version | Available in [CVRMA](https://github.com/knah/CVRMelonAssistant) | Current Status | Notes |
|-----------|------------|----------------|-----------------------------------------------------------------|----------------|-------|
| Avatar Change Info | ml_aci | 1.0.2 | Pending | Working |
| Avatar Motion Tweaker | ml_amt | 1.0.6 | Pending | Working |
| Avatar Change Info | ml_aci | 1.0.2 | Yes | Working |
| Avatar Motion Tweaker | ml_amt | 1.0.6 | Yes | Working |
| Desktop Reticle Switch | ml_drs | 1.0.0 | Yes | Working |
| Four Point Tracking | ml_fpt | 1.0.4 | Pending | Working |
| Leap Motion Extension | ml_lme | 1.1.8 | Pending | Working |
| Four Point Tracking | ml_fpt | 1.0.4 | Yes | Working |
| Leap Motion Extension | ml_lme | 1.1.8 | Yes | Working |
| Server Connection Info | ml_sci | 1.0.1 | Yes | Working |

View file

@ -25,18 +25,32 @@ namespace ml_aci
static void OnLocalAvatarLoad()
{
if(ViewManager.Instance != null)
ViewManager.Instance.TriggerPushNotification("Avatar changed", 1f);
try
{
if(ViewManager.Instance != null)
ViewManager.Instance.TriggerPushNotification("Avatar changed", 1f);
}
catch(System.Exception e)
{
MelonLoader.MelonLogger.Error(e);
}
}
static void OnPropSpawned()
{
if(ViewManager.Instance != null)
try
{
if((NetworkManager.Instance != null) && (NetworkManager.Instance.GameNetwork.ConnectionState == ConnectionState.Connected))
ViewManager.Instance.TriggerPushNotification("Prop spawned", 1f);
else
ViewManager.Instance.TriggerAlert("Prop Error", "Not connected to live instance", -1, true);
if(ViewManager.Instance != null)
{
if((NetworkManager.Instance != null) && (NetworkManager.Instance.GameNetwork.ConnectionState == ConnectionState.Connected))
ViewManager.Instance.TriggerPushNotification("Prop spawned", 1f);
else
ViewManager.Instance.TriggerAlert("Prop Error", "Not connected to live instance", -1, true);
}
}
catch(System.Exception e)
{
MelonLoader.MelonLogger.Error(e);
}
}
}

View file

@ -46,15 +46,29 @@ namespace ml_amt
static void OnAvatarClear_Postfix() => ms_instance?.OnAvatarClear();
void OnAvatarClear()
{
if(m_localTweaker != null)
m_localTweaker.OnAvatarClear();
try
{
if(m_localTweaker != null)
m_localTweaker.OnAvatarClear();
}
catch(System.Exception l_exception)
{
MelonLoader.MelonLogger.Error(l_exception);
}
}
static void OnSetupAvatarGeneral_Postfix() => ms_instance?.OnSetupAvatarGeneral();
void OnSetupAvatarGeneral()
{
if(m_localTweaker != null)
m_localTweaker.OnSetupAvatarGeneral();
try
{
if(m_localTweaker != null)
m_localTweaker.OnSetupAvatarGeneral();
}
catch(System.Exception l_exception)
{
MelonLoader.MelonLogger.Error(l_exception);
}
}
}
}

View file

@ -170,24 +170,31 @@ namespace ml_fpt
static void OnAvatarClear_Postfix() => ms_instance?.OnAvatarClear();
void OnAvatarClear()
{
if(m_inCalibration)
try
{
m_indexIk.enabled = true;
m_ikCalibrator.enabled = true;
m_ikCalibrator.leftHandModel.SetActive(false);
m_ikCalibrator.rightHandModel.SetActive(false);
if(m_hipsTrackerIndex != -1)
if(m_inCalibration)
{
PlayerSetup.Instance._trackerManager.trackers[m_hipsTrackerIndex].ShowTracker(false);
PlayerSetup.Instance._trackerManager.trackers[m_hipsTrackerIndex].ShowLine(false);
m_indexIk.enabled = true;
m_ikCalibrator.enabled = true;
m_ikCalibrator.leftHandModel.SetActive(false);
m_ikCalibrator.rightHandModel.SetActive(false);
if(m_hipsTrackerIndex != -1)
{
PlayerSetup.Instance._trackerManager.trackers[m_hipsTrackerIndex].ShowTracker(false);
PlayerSetup.Instance._trackerManager.trackers[m_hipsTrackerIndex].ShowLine(false);
}
CVR_InteractableManager.enableInteractions = true;
Reset();
ShowHudNotification("Calibration canceled");
}
CVR_InteractableManager.enableInteractions = true;
Reset();
ShowHudNotification("Calibration canceled");
}
catch(System.Exception e)
{
MelonLoader.MelonLogger.Error(e);
}
}

View file

@ -317,18 +317,32 @@ namespace ml_lme
static void OnAvatarClear_Postfix() => ms_instance?.OnAvatarClear();
void OnAvatarClear()
{
if(m_leapTracked != null)
m_leapTracked.OnAvatarClear();
try
{
if(m_leapTracked != null)
m_leapTracked.OnAvatarClear();
}
catch(System.Exception e)
{
MelonLoader.MelonLogger.Error(e);
}
}
// Sneaky forced IndexIK calibration
static void OnSetupAvatarGeneral_Postfix() => ms_instance?.OnSetupAvatarGeneral();
void OnSetupAvatarGeneral()
{
if(m_leapTracked != null)
m_leapTracked.OnSetupAvatarGeneral();
try
{
if(m_leapTracked != null)
m_leapTracked.OnSetupAvatarGeneral();
OnSettingsHeadAttachChange(Settings.HeadAttach);
OnSettingsHeadAttachChange(Settings.HeadAttach);
}
catch(System.Exception e)
{
MelonLoader.MelonLogger.Error(e);
}
}
// Utilities

View file

@ -16,8 +16,15 @@ namespace ml_sci
static void OnGameNetworkConnectionClosed(object __0, DisconnectedEventArgs __1)
{
if((CohtmlHud.Instance != null) && (__1 != null) && (!__1.LocalDisconnect))
CohtmlHud.Instance.ViewDropTextImmediate("(Local) Client", "Connection lost", (__1.Error != System.Net.Sockets.SocketError.Success) ? ("Reason: " + __1.Error.ToString()) : "");
try
{
if((CohtmlHud.Instance != null) && (__1 != null) && (!__1.LocalDisconnect))
CohtmlHud.Instance.ViewDropTextImmediate("(Local) Client", "Connection lost", (__1.Error != System.Net.Sockets.SocketError.Success) ? ("Reason: " + __1.Error.ToString()) : "");
}
catch(System.Exception e)
{
MelonLoader.MelonLogger.Error(e);
}
}
}
}