Java 类net.minecraft.client.gui.GuiListWorldSelectionEntry 实例源码

项目:TaleCraft    文件:ReflectionUtil.java   
public static File getWorldFolderFromSelection(GuiListWorldSelectionEntry entry){
    if(worldfolder.containsKey(entry)){
        return worldfolder.get(entry);
    }
    try{
        File image = null;
        for(Field field : GuiListWorldSelectionEntry.class.getDeclaredFields()){
            if(field.getType() == File.class){
                field.setAccessible(true);
                image = (File) field.get(entry);
                break;
            }
        }
        if(image == null) return null;
        File folder = image.getParentFile();
        worldfolder.put(entry, folder);
        return folder;
    }catch(Exception e){
        e.printStackTrace();
    }
    return null;
}
项目:TaleCraft    文件:NewWorldSelector.java   
@Override
    public void selectWorld(GuiListWorldSelectionEntry entry){
    super.selectWorld(entry);
    currently_selected_world = entry;
    // boolean flag = entry != null;
    File folder = ReflectionUtil.getWorldFolderFromSelection(entry); //Pretty hacky way of getting the world file. I get the image for the world and then get the parent.
    if(folder == null){
        readDescription.enabled = false;
        return;
    }
    if(folder.getParentFile().getName().equals("saves")){ //Make sure I am in the saves folder
        for(File f : folder.listFiles()){
            if(f.getName().equals("desc.txt")){
                try{
                    FileReader fr = new FileReader(f);
                    BufferedReader reader = new BufferedReader(fr);
                    List<String> lines = Lists.newArrayList();
                    String line;
                    while((line = reader.readLine()) != null){
                        lines.add(line);
                    }
                    desc_lines = lines;
                    readDescription.enabled = true;
                    fr.close();
                    reader.close();
                }catch(Exception e){
                    e.printStackTrace();
                }
                return;
            }
        }
    }
    readDescription.enabled = false;
}