32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.server.packs.resources;
 | |
| 
 | |
| import java.io.BufferedReader;
 | |
| import java.io.FileNotFoundException;
 | |
| import java.io.IOException;
 | |
| import java.io.InputStream;
 | |
| import java.util.Map;
 | |
| import java.util.Optional;
 | |
| import net.minecraft.resources.ResourceLocation;
 | |
| 
 | |
| @FunctionalInterface
 | |
| public interface ResourceProvider {
 | |
| 	ResourceProvider EMPTY = resourceLocation -> Optional.empty();
 | |
| 
 | |
| 	Optional<Resource> getResource(ResourceLocation location);
 | |
| 
 | |
| 	default Resource getResourceOrThrow(ResourceLocation resourceLocation) throws FileNotFoundException {
 | |
| 		return (Resource)this.getResource(resourceLocation).orElseThrow(() -> new FileNotFoundException(resourceLocation.toString()));
 | |
| 	}
 | |
| 
 | |
| 	default InputStream open(ResourceLocation resourceLocation) throws IOException {
 | |
| 		return this.getResourceOrThrow(resourceLocation).open();
 | |
| 	}
 | |
| 
 | |
| 	default BufferedReader openAsReader(ResourceLocation resourceLocation) throws IOException {
 | |
| 		return this.getResourceOrThrow(resourceLocation).openAsReader();
 | |
| 	}
 | |
| 
 | |
| 	static ResourceProvider fromMap(Map<ResourceLocation, Resource> map) {
 | |
| 		return resourceLocation -> Optional.ofNullable((Resource)map.get(resourceLocation));
 | |
| 	}
 | |
| }
 |