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;
}