internal void HandleSyncEvent(int cmdHash, NetworkReader reader)
{
if (base.gameObject == null)
{
string cmdHashHandlerName = NetworkBehaviour.GetCmdHashHandlerName(cmdHash);
if (LogFilter.logWarn)
{
Debug.LogWarning(string.Concat(new object[] { "SyncEvent [", cmdHashHandlerName, "] received for deleted object [netId=", this.netId, "]" }));
}
}
else
{
NetworkBehaviour.CmdDelegate delegate2;
System.Type type;
if (!NetworkBehaviour.GetInvokerForHashSyncEvent(cmdHash, out type, out delegate2))
{
string str2 = NetworkBehaviour.GetCmdHashHandlerName(cmdHash);
if (LogFilter.logError)
{
Debug.LogError(string.Concat(new object[] { "Found no receiver for incoming [", str2, "] on ", base.gameObject, ", the server and client should have the same NetworkBehaviour instances [netId=", this.netId, "]." }));
}
}
else
{
NetworkBehaviour behaviour;
if (!this.GetInvokeComponent(cmdHash, type, out behaviour))
{
string str3 = NetworkBehaviour.GetCmdHashHandlerName(cmdHash);
if (LogFilter.logWarn)
{
Debug.LogWarning(string.Concat(new object[] { "SyncEvent [", str3, "] handler not found [netId=", this.netId, "]" }));
}
}
else
{
delegate2(behaviour, reader);
NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, 7, NetworkBehaviour.GetCmdHashEventName(cmdHash), 1);
}
}
}
}