diff --git a/MiraAPI.Example/ExampleEventHandlers.cs b/MiraAPI.Example/ExampleEventHandlers.cs index 079fb9f..94f90ed 100644 --- a/MiraAPI.Example/ExampleEventHandlers.cs +++ b/MiraAPI.Example/ExampleEventHandlers.cs @@ -9,10 +9,7 @@ using MiraAPI.Events.Vanilla.Player; using MiraAPI.Example.Buttons.Freezer; using MiraAPI.Example.Roles; using MiraAPI.Utilities; -using MiraAPI.Utilities.Assets; using Reactor.Utilities; -using TMPro; -using UnityEngine; namespace MiraAPI.Example; @@ -21,7 +18,7 @@ public static class ExampleEventHandlers public static void Initialize() { // You can register event handlers with the MiraEventManager class. - MiraEventManager.RegisterEventHandler(@event => + var handle = MiraEventManager.RegisterEventHandler(@event => { Logger.Info($"{@event.Source.Data.PlayerName} is about to kill {@event.Target.Data.PlayerName}"); }); @@ -35,6 +32,9 @@ public static class ExampleEventHandlers { Logger.Info($"{@event.Player.Data.PlayerName} completed {@event.Task.TaskType.ToString()}"); }); + + // You can also unregister event handlers using the handle returned from RegisterEventHandler. + MiraEventManager.UnregisterEventHandler(handle); } // If you want to add extra votes to a player, do something like this. diff --git a/MiraAPI.Example/Modifiers/CaptainModifier.cs b/MiraAPI.Example/Modifiers/CaptainModifier.cs index 0a889d1..9e20b56 100644 --- a/MiraAPI.Example/Modifiers/CaptainModifier.cs +++ b/MiraAPI.Example/Modifiers/CaptainModifier.cs @@ -1,12 +1,9 @@ -using Il2CppSystem.Collections.Generic; -using MiraAPI.Example.Options.Modifiers; +using MiraAPI.Example.Options.Modifiers; using MiraAPI.GameOptions; using MiraAPI.Modifiers; using MiraAPI.Modifiers.Types; using MiraAPI.Utilities.Assets; -using Reactor.Utilities.Extensions; using UnityEngine; -using Random = System.Random; namespace MiraAPI.Example.Modifiers; diff --git a/MiraAPI.Example/Modifiers/HighPriorityModifier.cs b/MiraAPI.Example/Modifiers/HighPriorityModifier.cs index e1ad218..f2a1e03 100644 --- a/MiraAPI.Example/Modifiers/HighPriorityModifier.cs +++ b/MiraAPI.Example/Modifiers/HighPriorityModifier.cs @@ -1,6 +1,4 @@ using MiraAPI.Modifiers.Types; -using MiraAPI.Utilities.Assets; -using UnityEngine; namespace MiraAPI.Example.Modifiers; diff --git a/MiraAPI/Events/MiraEventManager.cs b/MiraAPI/Events/MiraEventManager.cs index 661a7fe..0878bd5 100644 --- a/MiraAPI/Events/MiraEventManager.cs +++ b/MiraAPI/Events/MiraEventManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Reflection; +using Reactor.Utilities; namespace MiraAPI.Events; @@ -27,7 +28,14 @@ public static class MiraEventManager foreach (var handler in handlers) { - ((Action)handler.EventHandler).Invoke(eventInstance); + try + { + ((Action)handler.EventHandler).Invoke(eventInstance); + } + catch (Exception ex) + { + Logger.Error($"Error invoking event handler for {typeof(T).Name}: {ex.ToString()}"); + } } return true; @@ -49,7 +57,14 @@ public static class MiraEventManager foreach (var handler in handlers) { - handler.EventHandler.DynamicInvoke(eventInstance); + try + { + handler.EventHandler.DynamicInvoke(eventInstance); + } + catch (Exception ex) + { + Logger.Error($"Error invoking event handler for {type.Name}: {ex.ToString()}"); + } } return true; diff --git a/MiraAPI/Modifiers/ModifierComponent.cs b/MiraAPI/Modifiers/ModifierComponent.cs index 0fe388c..5c29dc2 100644 --- a/MiraAPI/Modifiers/ModifierComponent.cs +++ b/MiraAPI/Modifiers/ModifierComponent.cs @@ -3,14 +3,11 @@ using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Linq; -using System.Text; using Il2CppInterop.Runtime.Attributes; using MiraAPI.Modifiers.ModifierDisplay; using MiraAPI.Modifiers.Types; -using MiraAPI.Utilities; using Reactor.Utilities; using Reactor.Utilities.Attributes; -using TMPro; using UnityEngine; namespace MiraAPI.Modifiers; diff --git a/MiraAPI/Modifiers/ModifierManager.cs b/MiraAPI/Modifiers/ModifierManager.cs index 9f61239..7e7a075 100644 --- a/MiraAPI/Modifiers/ModifierManager.cs +++ b/MiraAPI/Modifiers/ModifierManager.cs @@ -5,7 +5,6 @@ using System.Runtime.Serialization; using MiraAPI.Modifiers.Types; using MiraAPI.PluginLoading; using MiraAPI.Roles; -using MiraAPI.Utilities; using Reactor.Utilities; using Reactor.Utilities.Extensions; using Random = System.Random; diff --git a/MiraAPI/Patches/Roles/EjectionPatches.cs b/MiraAPI/Patches/Roles/EjectionPatches.cs index 73bf0a7..85641eb 100644 --- a/MiraAPI/Patches/Roles/EjectionPatches.cs +++ b/MiraAPI/Patches/Roles/EjectionPatches.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; -using System.Reflection; -using HarmonyLib; +using HarmonyLib; using MiraAPI.Events; using MiraAPI.Events.Vanilla.Gameplay; using MiraAPI.Events.Vanilla.Meeting; diff --git a/MiraAPI/Patches/Voting/MeetingHudPatches.cs b/MiraAPI/Patches/Voting/MeetingHudPatches.cs index 809485e..2dceb0b 100644 --- a/MiraAPI/Patches/Voting/MeetingHudPatches.cs +++ b/MiraAPI/Patches/Voting/MeetingHudPatches.cs @@ -8,7 +8,6 @@ using MiraAPI.Events.Vanilla.Meeting.Voting; using MiraAPI.Modifiers; using MiraAPI.Utilities; using MiraAPI.Voting; -using Reactor.Utilities; namespace MiraAPI.Patches.Voting;