ArgumentOutOfRangeException with custom commandSolved

I am having a silly moment.

What have I done wrong to make this not work?

It does not do as expected which is /craft items and show a list essentially. I've stripped it down to the above code and it is throwing the same error. So if you know what i've done then ill fix it all. It does this in the console:

at Oxide.Plugins.CraftItem.CraftCommand (BasePlayer player, System.String command, System.String[] args) [0x0001c] in <ba2d1ed1e5264bcc8f3906093491a8d0>:0
  at Oxide.Plugins.CraftItem.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00032] in <ba2d1ed1e5264bcc8f3906093491a8d0>:0
  at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <1e2d7ad0801a4037ab6a24578c814b54>:0
  at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000d8] in <1fe782f4b27a43ae85d29ebb2d56c007>:0
  at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <1fe782f4b27a43ae85d29ebb2d56c007>:0
[ChatCommand("craft")]
private void CraftCommand(BasePlayer player, string command, string[] args)
{

    if (args.Length < 1)
    {
        SendReply(player, "/craft items");
        return;
    }

    switch (args[1].ToLower())
    {
        case "items":
            {

                SendReply(player, "Items: targeting.computer (1 tech trash and 25 metal fragments)");
                break;
            }
    }
}

Thanks, 

Darren

arguments start from 0, try switch (args[0].ToLower())
Locked automatically