Make Metrics work again

This commit is contained in:
Sn0wStorm
2019-11-23 19:59:53 +01:00
parent fa2a4974d8
commit a1c0116650
5 changed files with 66 additions and 21 deletions
+29
View File
@@ -39,6 +39,20 @@ public class BData {
Brew.loadPrevSeeds(data);
List<Integer> brewsCreated = data.getIntegerList("brewsCreated");
if (brewsCreated != null && brewsCreated.size() == 6) {
int hash = data.getInt("brewsCreatedH");
// Check the hash to prevent tampering with statistics
if (brewsCreated.hashCode() == hash) {
P.p.brewsCreated = brewsCreated.get(0);
P.p.exc = brewsCreated.get(1);
P.p.good = brewsCreated.get(2);
P.p.norm = brewsCreated.get(3);
P.p.bad = brewsCreated.get(4);
P.p.terr = brewsCreated.get(5);
}
}
// Check if data is the newest version
String version = data.getString("Version", null);
if (version != null) {
@@ -99,6 +113,21 @@ public class BData {
}
}
// Store how many legacy brews were created
if (P.p.brewsCreated <= 0) {
P.p.brewsCreated = 0;
P.p.exc = 0;
P.p.good = 0;
P.p.norm = 0;
P.p.bad = 0;
P.p.terr = 0;
if (!Brew.noLegacy()) {
for (Brew brew : Brew.legacyPotions.values()) {
P.p.metricsForCreate(brew);
}
}
}
// Remove Legacy Potions that haven't been touched in a long time, these may have been lost
if (!Brew.noLegacy()) {
int currentHoursAfterInstall = (int) ((double) (System.currentTimeMillis() - Brew.installTime) / 3600000D);
@@ -2,6 +2,9 @@ package com.dre.brewery.filedata;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import com.dre.brewery.MCBarrel;
import com.dre.brewery.utility.BUtil;
@@ -66,6 +69,16 @@ public class DataSave extends BukkitRunnable {
Brew.writePrevSeeds(configFile);
List<Integer> brewsCreated = new ArrayList<>(6);
brewsCreated.add(P.p.brewsCreated);
brewsCreated.add(P.p.exc);
brewsCreated.add(P.p.good);
brewsCreated.add(P.p.norm);
brewsCreated.add(P.p.bad);
brewsCreated.add(P.p.terr);
configFile.set("brewsCreated", brewsCreated);
configFile.set("brewsCreatedH", brewsCreated.hashCode());
if (!Brew.legacyPotions.isEmpty()) {
Brew.saveLegacy(configFile.createSection("Brew"));
}