Added in a Guide-API download command
This commit is contained in:
parent
4a32683322
commit
cf5a445fbb
10 changed files with 263 additions and 620 deletions
|
@ -0,0 +1,113 @@
|
|||
package WayofTime.alchemicalWizardry.common.thread;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.common.gameevent.TickEvent;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
public class GAPIChecker
|
||||
{
|
||||
public static boolean doneChecking = false;
|
||||
public static String onlineVersion = "";
|
||||
public static boolean triedToWarnPlayer = false;
|
||||
|
||||
public static boolean startedDownload = false;
|
||||
public static boolean downloadedFile = false;
|
||||
|
||||
private File modsDir;
|
||||
|
||||
public void init()
|
||||
{
|
||||
FMLCommonHandler.instance().bus().register(this);
|
||||
File mcDir = (File)cpw.mods.fml.relauncher.FMLInjectionData.data()[6];
|
||||
|
||||
this.modsDir = new File(mcDir, "mods");
|
||||
|
||||
scanDepInfos();
|
||||
}
|
||||
|
||||
private void scanDepInfos()
|
||||
{
|
||||
for (File file : modFiles())
|
||||
{
|
||||
if ((file.getName().endsWith(".jar")) && file.getName().contains("BloodMagic"))
|
||||
{
|
||||
scanDepInfo(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void scanDepInfo(File file)
|
||||
{
|
||||
try
|
||||
{
|
||||
ZipFile zip = new ZipFile(file);
|
||||
ZipEntry e = zip.getEntry("Guide-API-Version.info");
|
||||
if (e == null)
|
||||
{
|
||||
e = zip.getEntry("Guide-API-Version.info");
|
||||
}
|
||||
if (e != null)
|
||||
{
|
||||
readConfigFile(zip.getInputStream(e));
|
||||
}
|
||||
zip.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.err.println("Failed to load dependencies.info from " + file.getName() + " as JSON");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private List<File> modFiles()
|
||||
{
|
||||
List<File> list = new LinkedList();
|
||||
list.addAll(Arrays.asList(this.modsDir.listFiles()));
|
||||
return list;
|
||||
}
|
||||
|
||||
private void readConfigFile(InputStream inputStream) throws IOException
|
||||
{
|
||||
if (inputStream != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
|
||||
onlineVersion = r.readLine();
|
||||
doneChecking = true;
|
||||
r.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onTick(TickEvent.ClientTickEvent event)
|
||||
{
|
||||
if (!Loader.isModLoaded("guideapi"))
|
||||
{
|
||||
if (event.phase == TickEvent.Phase.END && Minecraft.getMinecraft().thePlayer != null && !triedToWarnPlayer)
|
||||
{
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
IChatComponent component = IChatComponent.Serializer.func_150699_a(StatCollector.translateToLocal("bm.versioning.getGAPI"));
|
||||
player.addChatComponentMessage(component);
|
||||
}
|
||||
|
||||
triedToWarnPlayer = true;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue