public void demote(CommandSender sender, String[] args){
		String ladder, player, playerGroup, playerWorld;
		
		try{
			player = args[1];
		} catch(ArrayIndexOutOfBoundsException e){
			sender.sendMessage(Red + "Please specify a player!");
			return;
		}
		if(!xm.playerExists(player)){
			sender.sendMessage(Red + player + DarkGrey + " could not be found");
			return;
		}
		
		try{
			ladder = args[2];
		} catch(ArrayIndexOutOfBoundsException e){
			sender.sendMessage(Red + "Please specify a ladder to use!");
			return;
		}
		try{
			playerWorld = xm.getServer().getPlayer(player).getWorld().getName();
			playerGroup = xm.getXplayer().getCurrentGroup(xm.getServer().getPlayer(player));
		} catch(NullPointerException e){
			sender.sendMessage("Sorry, offline players cannot be demoted at this time");
			return;
		}
		
		String[] groups = xm.getXpermissions().getLadder(ladder);
		if(groups == null){
			sender.sendMessage("The ladder " + ladder + " could not be found");
		}
		
		for(int i = 0; i < groups.length; i++){
			if(groups[i].equalsIgnoreCase(playerGroup)){
				String nextGroup;
				if(i == 0){
					sender.sendMessage(player + " has already reached the bottom of this ladder");
					return;
				}
				else{
					nextGroup = groups[i - 1];
				}
				String[] supportedWorlds = xm.getXgroup().getWorlds(nextGroup);
				for(int o = 0; o < supportedWorlds.length; o++){
					xm.getUsers().get().set("users." + player + "." + supportedWorlds[i], nextGroup);
				}
				xm.getUsers().save();
				if(xm.getXgroup().isSupportedByWorld(nextGroup, playerWorld)){
					xm.getXpermissions().setPermissions(xm.getServer().getPlayer(player), nextGroup);
				}
				sender.sendMessage(player + " has been demoted to " + nextGroup + " for supported worlds");
				return;
			}
		}
	}