@Override
    public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] params)
    {
        if (cmd.getLabel().equalsIgnoreCase("rewards"))
        {
            ArrayList<String> completitions = new ArrayList<String>();
            if (params.length < 2)
            {
                completitions.add("reload");
                completitions.add("reset");
            }
            else if (params.length < 3)
            {
                if (params[0].equalsIgnoreCase("reload"))
                {
                    for (World w : getServer().getWorlds())
                    {
                        completitions.add(w.getName());
                    }
                }
                else if (params[0].equalsIgnoreCase("reset"))
                {
                    for (Player p : getServer().getOnlinePlayers())
                    {
                        completitions.add(p.getName());
                    }
                }
            }
            
            Iterator<String> itr = completitions.iterator();
            while (itr.hasNext())
            {
                if (!itr.next().toLowerCase().startsWith(params[params.length - 1].toLowerCase()))
                {
                    itr.remove();
                }
            }
            
            return completitions;
        }
        else
        {
            return super.onTabComplete(sender, cmd, label, params);
        }
    }