static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                var Rw = new TelnetReaderWriter();

                string command = args[0];
                var    client  = new TcpClient();
                try
                {
                    int retryCount = 120; // 2 minutes (accounts for computer booting up)
                    int i          = 0;
                    while (true)
                    {
                        try
                        {
                            client.Connect("localhost", 3636);
                            break;
                        }
                        catch (Exception)
                        {
                            if (i < retryCount)
                            {
                                Thread.Sleep(1000);
                            }
                            else
                            {
                                throw;
                            }

                            i++;
                        }
                    }

                    NetworkStream ns = client.GetStream();

                    Rw.Write(ns, "lock");
                    string reply = Rw.Read(ns);
                    if (!reply.ToLower().Contains("lock:success"))
                    {
                        ConsoleWrite(ConsoleColor.Red, "Warning: " + reply);
                        return;
                    }

                    if (command.ToLower().StartsWith("script:"))
                    {
                        try
                        {
                            typeof(Scripts).GetMethod(Regex.Replace(command, "script:", "", RegexOptions.IgnoreCase))
                            .Invoke(new Scripts(), new object[] { ns, Rw });
                        }
                        catch (Exception e)
                        {
                            ConsoleWrite(ConsoleColor.Red, "Error: " + e.Message);
                        }
                    }
                    else
                    {
                        Rw.Write(ns, command);
                    }

                    reply = Rw.Read(ns);
                    Console.WriteLine(reply);

                    Rw.Write(ns, "unlock");
                    Rw.Write(ns, "exit");

                    ns.Close();
                    client.Close();
                }
                catch (Exception e)
                {
                    ConsoleWrite(ConsoleColor.Red, "Error: " + e.Message);
                }
            }
            else
            {
                ConsoleWrite(ConsoleColor.Red, "No arguments supplied. I.e. 'setcolor:Colour - Red'");
            }
        }
        public void StaticMultiColoured(NetworkStream ns, TelnetReaderWriter rw)
        {
            var ledCol = new LedCollection();

            ledCol.AddZone(1, "0,0,255");
            ledCol.AddZone(2, "0,0,255");
            ledCol.AddZone(3, "0,0,255");
            ledCol.AddZone(4, "0,0,255");
            ledCol.AddZone(5, "0,0,255");
            ledCol.AddZone(6, "0,0,255");
            ledCol.AddZone(7, "0,0,255");
            ledCol.AddZone(8, "0,0,255");
            ledCol.AddZone(9, "0,0,255");
            ledCol.AddZone(10, "0,0,255");
            ledCol.AddZone(11, "0,0,255");
            ledCol.AddZone(12, "0,0,255");
            ledCol.AddZone(13, "0,0,255");
            ledCol.AddZone(14, "0,0,255");
            ledCol.AddZone(15, "0,0,255");
            ledCol.AddZone(16, "0,0,255");
            ledCol.AddZone(17, "0,0,255");
            ledCol.AddZone(18, "0,0,255");
            ledCol.AddZone(19, "0,0,255");
            ledCol.AddZone(20, "0,0,255");
            ledCol.AddZone(21, "0,0,255");
            ledCol.AddZone(22, "0,0,255");
            ledCol.AddZone(23, "0,0,255");
            ledCol.AddZone(24, "0,0,255");
            ledCol.AddZone(25, "0,0,255");
            ledCol.AddZone(26, "0,0,255");
            ledCol.AddZone(27, "0,0,255");
            ledCol.AddZone(28, "0,0,255");
            ledCol.AddZone(29, "0,0,255");
            ledCol.AddZone(30, "0,0,255");
            ledCol.AddZone(31, "0,0,255");
            ledCol.AddZone(32, "0,0,255");
            ledCol.AddZone(33, "0,0,255");
            ledCol.AddZone(34, "0,0,255");
            ledCol.AddZone(35, "0,0,255");
            ledCol.AddZone(36, "0,0,255");
            ledCol.AddZone(37, "0,0,255");
            ledCol.AddZone(38, "0,0,255");
            ledCol.AddZone(39, "0,0,255");
            ledCol.AddZone(40, "0,0,255");
            ledCol.AddZone(41, "0,0,255");
            ledCol.AddZone(42, "0,0,255");
            ledCol.AddZone(43, "0,0,255");
            ledCol.AddZone(44, "0,0,255");
            ledCol.AddZone(45, "0,0,255");
            ledCol.AddZone(46, "0,0,255");
            ledCol.AddZone(47, "0,0,255");
            ledCol.AddZone(48, "0,0,255");
            ledCol.AddZone(49, "0,0,255");
            ledCol.AddZone(50, "0,0,255");
            ledCol.AddZone(51, "0,0,255");
            ledCol.AddZone(52, "0,0,255");
            ledCol.AddZone(53, "0,0,255");
            ledCol.AddZone(54, "0,0,255");
            ledCol.AddZone(55, "0,0,255");
            ledCol.AddZone(56, "0,0,255");
            ledCol.AddZone(57, "0,0,255");
            ledCol.AddZone(58, "0,0,255");
            ledCol.AddZone(59, "0,0,255");
            ledCol.AddZone(60, "0,0,255");
            ledCol.AddZone(61, "0,0,255");
            ledCol.AddZone(62, "0,0,255");
            ledCol.AddZone(63, "0,0,255");
            ledCol.AddZone(64, "0,0,255");
            ledCol.AddZone(65, "0,0,255");
            ledCol.AddZone(66, "0,0,255");
            ledCol.AddZone(67, "0,0,255");
            ledCol.AddZone(68, "0,0,255");
            ledCol.AddZone(69, "0,0,255");
            ledCol.AddZone(70, "0,0,255");
            ledCol.AddZone(71, "0,0,255");
            ledCol.AddZone(72, "0,0,255");
            ledCol.AddZone(73, "0,0,255");
            ledCol.AddZone(74, "0,0,255");
            ledCol.AddZone(75, "0,0,255");
            ledCol.AddZone(76, "0,0,255");
            ledCol.AddZone(77, "0,0,255");
            ledCol.AddZone(78, "0,0,255");
            ledCol.AddZone(79, "0,0,255");
            ledCol.AddZone(80, "0,0,255");
            ledCol.AddZone(81, "0,0,255");
            ledCol.AddZone(82, "0,0,255");
            ledCol.AddZone(83, "0,0,255");
            ledCol.AddZone(84, "0,0,255");
            ledCol.AddZone(85, "0,0,255");
            ledCol.AddZone(86, "0,0,255");
            ledCol.AddZone(87, "0,0,255");
            ledCol.AddZone(88, "0,0,255");
            ledCol.AddZone(89, "0,0,255");
            ledCol.AddZone(90, "0,0,255");
            ledCol.AddZone(91, "0,0,255");
            ledCol.AddZone(92, "0,0,255");
            ledCol.AddZone(93, "0,0,255");
            ledCol.AddZone(94, "0,0,255");
            ledCol.AddZone(95, "0,0,255");
            ledCol.AddZone(96, "0,0,255");
            ledCol.AddZone(97, "0,0,255");
            ledCol.AddZone(98, "0,0,255");
            ledCol.AddZone(99, "0,0,255");
            ledCol.AddZone(100, "0,0,255");
            ledCol.AddZone(101, "0,0,255");
            ledCol.AddZone(102, "0,0,255");
            ledCol.AddZone(103, "0,0,255");
            ledCol.AddZone(104, "0,0,255");
            ledCol.AddZone(105, "0,0,255");
            ledCol.AddZone(106, "0,0,255");
            ledCol.AddZone(107, "0,0,255");
            ledCol.AddZone(108, "0,0,255");
            ledCol.AddZone(109, "0,0,255");
            ledCol.AddZone(110, "0,0,255");
            ledCol.AddZone(111, "0,0,255");
            ledCol.AddZone(112, "0,0,255");
            ledCol.AddZone(113, "0,0,255");
            ledCol.AddZone(114, "0,0,255");
            ledCol.AddZone(115, "0,0,255");
            ledCol.AddZone(116, "0,0,255");
            ledCol.AddZone(117, "0,0,255");
            ledCol.AddZone(118, "0,0,255");
            ledCol.AddZone(119, "0,0,255");
            ledCol.AddZone(120, "0,0,255");
            ledCol.AddZone(121, "0,0,255");
            ledCol.AddZone(122, "0,0,255");
            ledCol.AddZone(123, "0,0,255");
            ledCol.AddZone(124, "0,0,255");
            ledCol.AddZone(125, "0,0,255");
            ledCol.AddZone(126, "0,0,255");
            ledCol.AddZone(127, "0,0,255");
            ledCol.AddZone(128, "0,0,255");
            ledCol.AddZone(129, "0,0,255");
            ledCol.AddZone(130, "0,0,255");
            ledCol.AddZone(131, "0,0,255");
            ledCol.AddZone(132, "0,0,255");
            ledCol.AddZone(133, "0,0,255");
            ledCol.AddZone(134, "0,0,255");
            ledCol.AddZone(135, "0,0,255");
            ledCol.AddZone(136, "0,0,255");
            ledCol.AddZone(137, "0,0,255");
            ledCol.AddZone(138, "0,0,255");
            ledCol.AddZone(139, "0,0,255");
            ledCol.AddZone(140, "0,0,255");
            ledCol.AddZone(141, "0,0,255");

            rw.Write(ns, ledCol.GenerateCommand());
        }