public static void Subscribe <CustomMessageBase>(TTMsgType MessageID, Action <CustomMessageBase, NetworkMessage> AsClientReceiveMessage, Action <CustomMessageBase, NetworkMessage> AsHostReceiveMessage = null)
     where CustomMessageBase : MessageBase, new()
 {
     Subscriptions.Add(MessageID, new ActionWrapper <CustomMessageBase>()
     {
         CanReceiveAsClient = AsClientReceiveMessage != null,
         ClientReceive      = AsClientReceiveMessage,
         CanReceiveAsHost   = AsHostReceiveMessage != null,
         HostReceive        = AsHostReceiveMessage,
     });
 }
        public static void BroadcastMessageToClient <NetMessage>(TTMsgType MessageID, NetMessage Message, int ClientConnection) where NetMessage : MessageBase
        {
            try
            {
                Singleton.Manager <ManNetwork> .inst.SendToClient(ClientConnection, MessageID, Message /*, ThisNetID*/);

                //Console.WriteLine($"Sent {MessageID} to client");
            }
            catch (Exception E)
            {
                Console.WriteLine($"Could not send message {typeof(NetMessage).ToString()} to client on connection {ClientConnection} : {E.Message}, \n{E.StackTrace}");
            }
        }
        public static void BroadcastMessageToAllExcept <NetMessage>(TTMsgType MessageID, NetMessage Message, bool SkipBroadcaster, int ClientConnectionToIgnore = -1) where NetMessage : MessageBase
        {
            try
            {
                Singleton.Manager <ManNetwork> .inst.SendToAllExceptClient(ClientConnectionToIgnore, MessageID, Message /*, ThisNetID*/, SkipBroadcaster);

                //Console.WriteLine($"Sent {MessageID} to all-except");
            }
            catch (Exception E)
            {
                Console.WriteLine($"Could not send message {typeof(NetMessage).ToString()} to specific clients : {E.Message}, \n{E.StackTrace}");
            }
        }
        public static void BroadcastMessageToServer <NetMessage>(TTMsgType MessageID, NetMessage Message) where NetMessage : MessageBase
        {
            try
            {
                Singleton.Manager <ManNetwork> .inst.SendToServer(MessageID, Message);

                //Console.WriteLine($"Sent {MessageID} to server");
            }
            catch (Exception E)
            {
                Console.WriteLine($"Could not send message {typeof(NetMessage).ToString()} to server : {E.Message}, \n{E.StackTrace}");
            }
        }