1.4.2 Possible bugfix, Advanced Achievements 4.0.3 Offline player support
Added "* 1.0" to some calculations in analysis just to make sure returned values are doubles. Added AA 4.0.3 Offline player support and analysis feature. Ready for release once AA 4.0.3 is released.
This commit is contained in:
parent
c7fc4d93bd
commit
a3af8202e5
|
@ -16,10 +16,34 @@ public class AdvancedAchievementsHook implements Hook {
|
||||||
private Plan plugin;
|
private Plan plugin;
|
||||||
private AdvancedAchievements aAPlugin;
|
private AdvancedAchievements aAPlugin;
|
||||||
private int totalAchievements;
|
private int totalAchievements;
|
||||||
|
private boolean usingUUID;
|
||||||
|
|
||||||
public AdvancedAchievementsHook(Plan plugin) throws Exception, NoClassDefFoundError {
|
public AdvancedAchievementsHook(Plan plugin) throws Exception, NoClassDefFoundError {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.aAPlugin = getPlugin(AdvancedAchievements.class);
|
this.aAPlugin = getPlugin(AdvancedAchievements.class);
|
||||||
|
String[] aAVersion = aAPlugin.getDescription().getVersion().split(".");
|
||||||
|
try {
|
||||||
|
double versionNumber = Double.parseDouble(aAVersion[0] + "." + aAVersion[1] + aAVersion[2]);
|
||||||
|
if (versionNumber >= 4.03) {
|
||||||
|
this.usingUUID = true;
|
||||||
|
} else {
|
||||||
|
this.usingUUID = false;
|
||||||
|
plugin.logError("Advanced Achievements 4.0.3 or above required for Offline players");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
try {
|
||||||
|
double versionNumber = Double.parseDouble(aAVersion[0] + "." + aAVersion[1]);
|
||||||
|
if (versionNumber >= 4.03) {
|
||||||
|
this.usingUUID = true;
|
||||||
|
} else {
|
||||||
|
this.usingUUID = false;
|
||||||
|
plugin.logError("Advanced Achievements 4.0.3 or above required for Offline players");
|
||||||
|
}
|
||||||
|
} catch (Exception e2) {
|
||||||
|
plugin.logToFile("AAHOOK\nError getting version number.\n" + e2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (NormalAchievements category : NormalAchievements.values()) {
|
for (NormalAchievements category : NormalAchievements.values()) {
|
||||||
String categoryName = category.toString();
|
String categoryName = category.toString();
|
||||||
if (aAPlugin.getDisabledCategorySet().contains(categoryName)) {
|
if (aAPlugin.getDisabledCategorySet().contains(categoryName)) {
|
||||||
|
@ -46,15 +70,19 @@ public class AdvancedAchievementsHook implements Hook {
|
||||||
@Override
|
@Override
|
||||||
public HashMap<String, String> getData(String player) throws Exception {
|
public HashMap<String, String> getData(String player) throws Exception {
|
||||||
HashMap<String, String> data = new HashMap<>();
|
HashMap<String, String> data = new HashMap<>();
|
||||||
UUID uuid = UUIDFetcher.getUUIDOf(player);
|
if (totalAchievements > 0) {
|
||||||
Player p = getPlayer(player);
|
UUID uuid = UUIDFetcher.getUUIDOf(player);
|
||||||
if (uuid != null) {
|
|
||||||
p = getPlayer(uuid);
|
|
||||||
}
|
|
||||||
if (p != null) {
|
|
||||||
try {
|
try {
|
||||||
if (totalAchievements > 0) {
|
if (this.usingUUID) {
|
||||||
data.put("AAC-ACHIEVEMENTS", aAPlugin.getDb().getPlayerAchievementsAmount(p) + " / " + totalAchievements);
|
Player p = getPlayer(player);
|
||||||
|
if (uuid != null) {
|
||||||
|
p = getPlayer(uuid);
|
||||||
|
}
|
||||||
|
if (p != null) {
|
||||||
|
data.put("AAC-ACHIEVEMENTS", aAPlugin.getDb().getPlayerAchievementsAmount(p) + " / " + totalAchievements);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
data.put("AAC-ACHIEVEMENTS", aAPlugin.getDb().getPlayerAchievementsAmount(uuid.toString()) + " / " + totalAchievements);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
plugin.logToFile("AAHOOK-GetData\nFailed to get data\n" + e + "\nfor: " + player);
|
plugin.logToFile("AAHOOK-GetData\nFailed to get data\n" + e + "\nfor: " + player);
|
||||||
|
|
|
@ -92,7 +92,7 @@ public class DataUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] numbers = {"ESS-HEALTH", "ESS-XP LEVEL", "FAC-POWER", "FAC-POWER PER HOUR",
|
String[] numbers = {"AAC-ACHIEVEMENTS","ESS-HEALTH", "ESS-XP LEVEL", "FAC-POWER", "FAC-POWER PER HOUR",
|
||||||
"FAC-POWER PER DEATH", "SVO-VOTES", "ONT-TOTAL VOTES", "ONT-TOTAL REFERRED", "ECO-BALANCE"};
|
"FAC-POWER PER DEATH", "SVO-VOTES", "ONT-TOTAL VOTES", "ONT-TOTAL REFERRED", "ECO-BALANCE"};
|
||||||
List<String> numberKeys = new ArrayList<>();
|
List<String> numberKeys = new ArrayList<>();
|
||||||
numberKeys.addAll(Arrays.asList(numbers));
|
numberKeys.addAll(Arrays.asList(numbers));
|
||||||
|
@ -125,7 +125,7 @@ public class DataUtils {
|
||||||
errorTypes.add("" + e);
|
errorTypes.add("" + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
analyzedData.put(dataKey, "" + (sum / playerData.size()));
|
analyzedData.put(dataKey, "" + (sum * 1.0 / playerData.size()));
|
||||||
|
|
||||||
} else if (boolKeys.contains(dataKey)) {
|
} else if (boolKeys.contains(dataKey)) {
|
||||||
int amount = 0;
|
int amount = 0;
|
||||||
|
@ -139,7 +139,7 @@ public class DataUtils {
|
||||||
errorTypes.add("" + e);
|
errorTypes.add("" + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
analyzedData.put(dataKey, "" + ((amount / playerData.size()) * 100) + "%");
|
analyzedData.put(dataKey, "" + ((amount * 1.0 / playerData.size()) * 100) + "%");
|
||||||
} else if (timeKeys.contains(dataKey)) {
|
} else if (timeKeys.contains(dataKey)) {
|
||||||
Long time = Long.parseLong("0");
|
Long time = Long.parseLong("0");
|
||||||
for (String dataPoint : playerDataLists.get(dataKey)) {
|
for (String dataPoint : playerDataLists.get(dataKey)) {
|
||||||
|
@ -150,7 +150,7 @@ public class DataUtils {
|
||||||
errorTypes.add("" + e);
|
errorTypes.add("" + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
analyzedData.put(dataKey, "" + (time / playerData.size()));
|
analyzedData.put(dataKey, "" + (time * 1.0 / playerData.size()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (errors > 0) {
|
if (errors > 0) {
|
||||||
|
|
Loading…
Reference in New Issue