public void Unsubscribe(NuiWindowToken token, Action <ModuleEvents.OnNuiEvent> handler)
 {
     if (eventHandlers.TryGetValue(token.Player, out Dictionary <int, Action <ModuleEvents.OnNuiEvent> >?playerHandlers))
     {
         if (playerHandlers.TryGetValue(token.Token, out Action <ModuleEvents.OnNuiEvent>?existingHandler))
         {
             existingHandler -= handler;
             if (existingHandler == null)
             {
                 playerHandlers.Remove(token.Token);
             }
         }
     }
 }
        public void Subscribe(NuiWindowToken token, Action <ModuleEvents.OnNuiEvent> handler)
        {
            if (!eventHandlers.TryGetValue(token.Player, out Dictionary <int, Action <ModuleEvents.OnNuiEvent> >?playerHandlers))
            {
                playerHandlers = new Dictionary <int, Action <ModuleEvents.OnNuiEvent> >();
                eventHandlers[token.Player] = playerHandlers;
            }

            if (playerHandlers.ContainsKey(token.Token))
            {
                playerHandlers[token.Token] += handler;
            }
            else
            {
                playerHandlers[token.Token] = handler;
            }
        }