using MiraAPI.Events; using MiraAPI.Events.Mira; using MiraAPI.Events.Vanilla.Gameplay; using MiraAPI.Events.Vanilla.Map; using MiraAPI.Events.Vanilla.Player; using MiraAPI.Example.Buttons.Freezer; using Reactor.Utilities; namespace MiraAPI.Example; public static class ExampleEventHandlers { public static void Initialize() { // Register event handlers here MiraEventManager.RegisterEventHandler>(FreezeButtonClickHandler, 1); MiraEventManager.RegisterEventHandler>(FreezeButtonCancelledHandler); MiraEventManager.RegisterEventHandler(UpdateSystemEventHandler); MiraEventManager.RegisterEventHandler(@event => { Logger.Info($"{@event.Source.Data.PlayerName} is about to kill {@event.Target.Data.PlayerName}"); }); MiraEventManager.RegisterEventHandler(@event => { Logger.Info($"{@event.Source.Data.PlayerName} has killed {@event.Target.Data.PlayerName}"); }); MiraEventManager.RegisterEventHandler(@event => { Logger.Info($"{@event.Player.Data.PlayerName} completed {@event.Task.TaskType.ToString()}"); }); } public static void UpdateSystemEventHandler(UpdateSystemEvent @event) { Logger.Error(@event.SystemType.ToString()); } // Example event handler public static void FreezeButtonClickHandler(MiraButtonClickEvent @event) { Logger.Warning("Freeze button clicked!"); if (PlayerControl.LocalPlayer.Data.PlayerName == "stupid") { @event.Cancel(); @event.Button.SetTimer(15f); } } // Example event handler public static void FreezeButtonCancelledHandler(MiraButtonCancelledEvent @event) { Logger.Warning("Freeze button cancelled!"); @event.Button.OverrideName("Freeze Canceled"); } }