patch update error

This commit is contained in:
marc barbier
2021-01-17 21:08:30 +01:00
parent 57003bee2f
commit e63ab37b13
2 changed files with 36 additions and 4 deletions
+2
View File
@@ -173,9 +173,11 @@ public class Database {
// trouver // trouver
boolean upToDate; boolean upToDate;
if (integrityChecker.isModIdKnown(modID)) { if (integrityChecker.isModIdKnown(modID)) {
Log.i("DB", "found");
upToDate = integrityChecker upToDate = integrityChecker
.checkAndDelete(new File("mods/" + HttpHelper.getFileNameFromURL(downloadUrl)), modID); .checkAndDelete(new File("mods/" + HttpHelper.getFileNameFromURL(downloadUrl)), modID);
} else { } else {
Log.i("DB", "NEW MOD DETECTED "+modID);
upToDate = integrityChecker.checkAndDelete( upToDate = integrityChecker.checkAndDelete(
new File("mods/" + HttpHelper.getFileNameFromURL(downloadUrl)), pj.getSlug()); new File("mods/" + HttpHelper.getFileNameFromURL(downloadUrl)), pj.getSlug());
} }
+34 -4
View File
@@ -50,7 +50,26 @@ public class IntegrityChecker {
} }
public boolean checkAndDelete(File modToDownload, int modid) { public boolean checkAndDelete(File modToDownload, int modid) {
File alredyInstalledMods = new File("mods/"+installedMods.get(modid)); String alredyInstalledName = installedMods.get(modid).toLowerCase();
File alredyInstalledMods= null;
//on cherche le fichier local affin de ne pas voir d'erreur avec la casse
File dir = new File("mods/");
for(String fileName : dir.list())
{
if(fileName.equalsIgnoreCase(alredyInstalledName))
{
alredyInstalledMods = new File("mods/"+fileName);
}
}
if(alredyInstalledMods == null) {
Log.e("IntegrityChecker", "alredy installed mod not found ("+alredyInstalledName+")");
installedMods.remove(modid);
return false;
}
if (alredyInstalledMods.exists()) { if (alredyInstalledMods.exists()) {
try { try {
//si sa balance une exception sa veut dire que le jar n'est pas lisible //si sa balance une exception sa veut dire que le jar n'est pas lisible
@@ -58,19 +77,25 @@ public class IntegrityChecker {
} catch (IOException e) { } catch (IOException e) {
Log.i("integrityChecker","Corruption detected redownloading"); Log.i("integrityChecker","Corruption detected redownloading");
alredyInstalledMods.delete(); alredyInstalledMods.delete();
installedMods.remove(modid);
updateFile();
return false; return false;
} }
if(!modToDownload.getAbsolutePath().equals(alredyInstalledMods.getAbsolutePath())) if(!modToDownload.getAbsolutePath().equalsIgnoreCase(alredyInstalledMods.getAbsolutePath()))
{ {
alredyInstalledMods.delete(); alredyInstalledMods.delete();
Log.i("integrityChecker","Corruption detected redownloading"); Log.i("integrityChecker","Outdated mod detected redownloading ("+alredyInstalledName+" -> "+modToDownload.getName()+")");
installedMods.remove(modid);
updateFile();
return false; return false;
} }
return true; return true;
}else { }else {
if(modToDownload.exists()) if(modToDownload.exists())
{ {
modToDownload.delete(); installedMods.put(modid, modToDownload.getName());
updateFile();
Log.i("interessting", modToDownload.getName());
} }
} }
return false; return false;
@@ -105,6 +130,11 @@ public class IntegrityChecker {
return false; return false;
} }
/**
* un chemin d'acces ne marche pas
* @param fileName
* @param modID
*/
public void addModsToTheList(String fileName,int modID) public void addModsToTheList(String fileName,int modID)
{ {
installedMods.put(modID, fileName); installedMods.put(modID, fileName);