Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import com.google.gson.JsonObject;
- import com.google.gson.JsonParser;
- import com.google.gson.stream.JsonReader;
- //To get the default english language file you have to decompile the minecraft.jar then go to assets>Minecraft>lang>en_us.json
- public class Downloader {
- String ver;
- String output;
- Path assets;
- JsonObject obj;
- public void download(String version, String outputLocation, String minecraftFolder) {
- assets = Paths.get(minecraftFolder).resolve("assets");
- Path indexes = assets.resolve("indexes");
- ver = version;
- output = outputLocation;
- obj = retrieveJson(indexes.resolve(version + ".json").toAbsolutePath().toString());
- obj = obj.get("objects").getAsJsonObject();
- obj.keySet().stream().filter(key -> {
- return key.startsWith("minecraft/lang/");
- }).forEach(lang -> {
- retreivePack(obj.get(lang).getAsJsonObject().get("hash").getAsString());
- });
- }
- private void retreivePack(String key) {
- String folder = key.substring(0, 2);
- JsonObject jo = retrieveJson(
- assets.resolve("objects").resolve(folder).resolve(key).toAbsolutePath().toString());
- String code = jo.get("language.code").getAsString();
- // jo = filterJson(jo);
- downloadPack(jo, code);
- }
- private void downloadPack(JsonObject jo, String key) {
- try {
- File file = new File(File.separator + output + File.separator + key + ".json");
- File filePath = new File(File.separator + output);
- filePath.mkdirs();
- if (!file.exists()) {
- file.createNewFile();
- }
- FileWriter fileWriter = new FileWriter(file);
- fileWriter.write(jo.toString());
- fileWriter.flush();
- fileWriter.close();
- System.out.println("wrote to " + file.getAbsolutePath());
- } catch (Exception e) {
- }
- }
- private JsonObject filterJson(JsonObject jo) {
- JsonObject items = new JsonObject();
- jo.keySet().stream().sorted().forEach(key -> {
- if ((key.toString().startsWith("block.minecraft.") || key.toString().startsWith("item.minecraft."))) {
- items.add(key, jo.get(key));
- }
- });
- return items;
- }
- private JsonObject retrieveJson(String loc) {
- try {
- File file = new File(loc);
- Object obj = JsonParser.parseReader(new JsonReader(new FileReader(file)));
- return (JsonObject) obj;
- } catch (Exception e) {
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment