internal bool InvokeSyncListDelegate(int cmdHash, NetworkReader reader)
        {
            bool result;

            if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
            {
                result = false;
            }
            else
            {
                NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
                if (invoker.invokeType != NetworkBehaviour.UNetInvokeType.SyncList)
                {
                    result = false;
                }
                else if (base.GetType() != invoker.invokeClass)
                {
                    result = false;
                }
                else
                {
                    invoker.invokeFunction(this, reader);
                    result = true;
                }
            }
            return(result);
        }
        internal bool InvokeRpcDelegate(int cmdHash, NetworkReader reader)
        {
            bool result;

            if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
            {
                result = false;
            }
            else
            {
                NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
                if (invoker.invokeType != NetworkBehaviour.UNetInvokeType.ClientRpc)
                {
                    result = false;
                }
                else
                {
                    if (base.GetType() != invoker.invokeClass)
                    {
                        if (!base.GetType().IsSubclassOf(invoker.invokeClass))
                        {
                            return(false);
                        }
                    }
                    invoker.invokeFunction(this, reader);
                    result = true;
                }
            }
            return(result);
        }
 internal static string GetCmdHashHandlerName(int cmdHash)
 {
     if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
     {
         return(cmdHash.ToString());
     }
     NetworkBehaviour.Invoker cmdHandlerDelegate = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
     return(((int)cmdHandlerDelegate.invokeType).ToString() + ":" + cmdHandlerDelegate.invokeFunction.Method.Name);
 }
 internal static string GetInvoker(int cmdHash)
 {
     if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
     {
         return(null);
     }
     NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
     return(invoker.DebugString());
 }
 internal bool InvokeSyncListDelegate(int cmdHash, NetworkReader reader)
 {
     if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
     {
         return(false);
     }
     NetworkBehaviour.Invoker cmdHandlerDelegate = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
     if (cmdHandlerDelegate.invokeType != NetworkBehaviour.UNetInvokeType.SyncList || this.GetType() != cmdHandlerDelegate.invokeClass)
     {
         return(false);
     }
     cmdHandlerDelegate.invokeFunction(this, reader);
     return(true);
 }
 internal bool InvokeSyncEventDelegate(int cmdHash, NetworkReader reader)
 {
     if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
     {
         return(false);
     }
     NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
     if (invoker.invokeType != NetworkBehaviour.UNetInvokeType.SyncEvent)
     {
         return(false);
     }
     invoker.invokeFunction(this, reader);
     return(true);
 }
        internal static string GetCmdHashHandlerName(int cmdHash)
        {
            string result;

            if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
            {
                result = cmdHash.ToString();
            }
            else
            {
                NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
                result = invoker.invokeType + ":" + invoker.invokeFunction.GetMethodName();
            }
            return(result);
        }
        internal static string GetInvoker(int cmdHash)
        {
            string result;

            if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
            {
                result = null;
            }
            else
            {
                NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
                result = invoker.DebugString();
            }
            return(result);
        }
        private static string GetCmdHashPrefixName(int cmdHash, string prefix)
        {
            if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
            {
                return(cmdHash.ToString());
            }
            NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
            string text = invoker.invokeFunction.Method.Name;
            int    num  = text.IndexOf(prefix);

            if (num > -1)
            {
                text = text.Substring(prefix.Length);
            }
            return(text);
        }
        private static bool GetInvokerForHash(int cmdHash, NetworkBehaviour.UNetInvokeType invokeType, out Type invokeClass, out NetworkBehaviour.CmdDelegate invokeFunction)
        {
            NetworkBehaviour.Invoker invoker = null;
            bool result;

            if (!NetworkBehaviour.s_CmdHandlerDelegates.TryGetValue(cmdHash, out invoker))
            {
                if (LogFilter.logDev)
                {
                    Debug.Log("GetInvokerForHash hash:" + cmdHash + " not found");
                }
                invokeClass    = null;
                invokeFunction = null;
                result         = false;
            }
            else if (invoker == null)
            {
                if (LogFilter.logDev)
                {
                    Debug.Log("GetInvokerForHash hash:" + cmdHash + " invoker null");
                }
                invokeClass    = null;
                invokeFunction = null;
                result         = false;
            }
            else if (invoker.invokeType != invokeType)
            {
                if (LogFilter.logError)
                {
                    Debug.LogError("GetInvokerForHash hash:" + cmdHash + " mismatched invokeType");
                }
                invokeClass    = null;
                invokeFunction = null;
                result         = false;
            }
            else
            {
                invokeClass    = invoker.invokeClass;
                invokeFunction = invoker.invokeFunction;
                result         = true;
            }
            return(result);
        }
 protected static void RegisterSyncListDelegate(Type invokeClass, int cmdHash, NetworkBehaviour.CmdDelegate func)
 {
     if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
     {
         NetworkBehaviour.Invoker invoker = new NetworkBehaviour.Invoker();
         invoker.invokeType     = NetworkBehaviour.UNetInvokeType.SyncList;
         invoker.invokeClass    = invokeClass;
         invoker.invokeFunction = func;
         NetworkBehaviour.s_CmdHandlerDelegates[cmdHash] = invoker;
         if (LogFilter.logDev)
         {
             Debug.Log(string.Concat(new object[]
             {
                 "RegisterSyncListDelegate hash:",
                 cmdHash,
                 " ",
                 func.GetMethodName()
             }));
         }
     }
 }
 internal bool InvokeCommandDelegate(int cmdHash, NetworkReader reader)
 {
     if (!NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
     {
         return(false);
     }
     NetworkBehaviour.Invoker invoker = NetworkBehaviour.s_CmdHandlerDelegates[cmdHash];
     if (invoker.invokeType != NetworkBehaviour.UNetInvokeType.Command)
     {
         return(false);
     }
     if (base.GetType() != invoker.invokeClass)
     {
         if (!base.GetType().IsSubclassOf(invoker.invokeClass))
         {
             return(false);
         }
     }
     invoker.invokeFunction(this, reader);
     return(true);
 }
 protected static void RegisterRpcDelegate(Type invokeClass, int cmdHash, NetworkBehaviour.CmdDelegate func)
 {
     if (NetworkBehaviour.s_CmdHandlerDelegates.ContainsKey(cmdHash))
     {
         return;
     }
     NetworkBehaviour.Invoker invoker = new NetworkBehaviour.Invoker();
     invoker.invokeType     = NetworkBehaviour.UNetInvokeType.ClientRpc;
     invoker.invokeClass    = invokeClass;
     invoker.invokeFunction = func;
     NetworkBehaviour.s_CmdHandlerDelegates[cmdHash] = invoker;
     if (LogFilter.logDev)
     {
         Debug.Log(string.Concat(new object[]
         {
             "RegisterRpcDelegate hash:",
             cmdHash,
             " ",
             func.Method.Name
         }));
     }
 }
 private static bool GetInvokerForHash(int cmdHash, NetworkBehaviour.UNetInvokeType invokeType, out System.Type invokeClass, out NetworkBehaviour.CmdDelegate invokeFunction)
 {
     NetworkBehaviour.Invoker invoker = (NetworkBehaviour.Invoker)null;
     if (!NetworkBehaviour.s_CmdHandlerDelegates.TryGetValue(cmdHash, out invoker))
     {
         if (LogFilter.logDev)
         {
             Debug.Log((object)("GetInvokerForHash hash:" + (object)cmdHash + " not found"));
         }
         invokeClass    = (System.Type)null;
         invokeFunction = (NetworkBehaviour.CmdDelegate)null;
         return(false);
     }
     if (invoker == null)
     {
         if (LogFilter.logDev)
         {
             Debug.Log((object)("GetInvokerForHash hash:" + (object)cmdHash + " invoker null"));
         }
         invokeClass    = (System.Type)null;
         invokeFunction = (NetworkBehaviour.CmdDelegate)null;
         return(false);
     }
     if (invoker.invokeType != invokeType)
     {
         if (LogFilter.logError)
         {
             Debug.LogError((object)("GetInvokerForHash hash:" + (object)cmdHash + " mismatched invokeType"));
         }
         invokeClass    = (System.Type)null;
         invokeFunction = (NetworkBehaviour.CmdDelegate)null;
         return(false);
     }
     invokeClass    = invoker.invokeClass;
     invokeFunction = invoker.invokeFunction;
     return(true);
 }