Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com;
- import com.google.gson.GsonBuilder;
- import com.google.gson.reflect.TypeToken;
- import java.io.*;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @author Daniel
- */
- public final class ReflectionMapper {
- private final File txt = new File("./Mapping.txt");
- //TODO: GZIP
- private final File json = new File("./Mapping.json");
- //TODO: Sort entries by name
- private final Map<String, ObfuscatedClass> map = new HashMap<String, ObfuscatedClass>();
- private ReflectionMapper() {
- map.clear();
- mapChildren();
- write();
- }
- public static void initialize() {
- new ReflectionMapper();
- }
- private void mapChildren() {
- try {
- BufferedReader reader = new BufferedReader(new FileReader(txt));
- String line;
- String regular = "";
- String obfuscated;
- while ((line = reader.readLine()) != null) {
- String[] split = line.split(" -> ");
- if (line.startsWith(" ")) {
- String original = split[0].trim().split(" ")[1];
- if (original.contains("(")) {
- original = original.substring(0, original.indexOf("("));
- }
- map.get(regular).put(original, split[1]);
- } else {
- regular = split[0];
- obfuscated = split[1].substring(0, split[1].length() - 1);
- if (!map.containsKey(regular)) {
- map.put(regular, new ObfuscatedClass(obfuscated));
- }
- }
- }
- reader.close();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- private void write() {
- try {
- BufferedWriter writer = new BufferedWriter(new FileWriter(json));
- writer.write(new GsonBuilder().setPrettyPrinting().create().toJson(map, new TypeToken<Map<String, ObfuscatedClass>>() {}.getType()));
- writer.newLine();
- writer.flush();
- writer.close();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- package com;
- import java.io.Serializable;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @author Daniel
- */
- public class ObfuscatedClass implements Serializable {
- private final String name;
- //TODO: Sort entries by name
- private final Map<String, String> map;
- public ObfuscatedClass(String name) {
- this.name = name;
- this.map = new HashMap<>();
- }
- public String getName() {
- return name;
- }
- public String get(String value) {
- return map.get(value);
- }
- public void put(String original, String modified) {
- map.put(original, modified);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement