BLINK RGB COLOURS & WHITE LEDs

I'm not sure how I'd go about doing it if I only wanted the lights to each blink once..

Put the code in setup() and it will only run once or put it in a function and call that function only when a trigger event occurs.

Shorten the code drastically by putting the pin numbers in an array and iterating through it with a for loop.

Having said that, your major mistake is that the rgbLight() function calls itself recursively. Do not do this unless you know exactly what you are doing.

When posting code please use code tags, see read this before posting a programming question, and post complete programs.