Added some more Custom Metrics Charts

This commit is contained in:
Sn0wStorm 2019-11-24 19:06:35 +01:00
parent 32b6c3c4b1
commit 3b9f9ae26d
6 changed files with 92 additions and 13 deletions

View File

@ -173,7 +173,7 @@ public class BIngredients {
}
brew.save(potionMeta);
potion.setItemMeta(potionMeta);
P.p.metricsForCreate(brew);
P.p.metricsForCreate(false);
return potion;
}

View File

@ -156,6 +156,7 @@ public class BPlayer {
if (brew.hasRecipe()) {
brew.getCurrentRecipe().applyDrinkFeatures(player);
}
P.p.metricsForDrink(brew);
int brewAlc = drinkEvent.getAddedAlcohol();
int quality = drinkEvent.getQuality();

View File

@ -729,7 +729,7 @@ public class Brew implements Cloneable {
}
save(potionMeta);
potion.setItemMeta(potionMeta);
P.p.metricsForCreate(this);
P.p.metricsForCreate(true);
return potion;
}

View File

@ -13,6 +13,7 @@ import com.dre.brewery.recipe.BRecipe;
import com.dre.brewery.utility.BUtil;
import com.dre.brewery.utility.LegacyUtil;
import org.apache.commons.lang.math.NumberUtils;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@ -22,6 +23,8 @@ import org.bukkit.event.HandlerList;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class P extends JavaPlugin {
public static P p;
@ -47,7 +50,8 @@ public class P extends JavaPlugin {
// Metrics
public int brewsCreated;
public int exc, good, norm, bad, terr;
public int brewsCreatedCmd; // Created by command
public int exc, good, norm, bad, terr; // Brews drunken with quality
@Override
public void onEnable() {
@ -346,7 +350,7 @@ public class P extends JavaPlugin {
metrics.addCustomChart(new Metrics.SingleLineChart("barrels_built", () -> Barrel.barrels.size()));
metrics.addCustomChart(new Metrics.SingleLineChart("cauldrons_boiling", () -> BCauldron.bcauldrons.size()));
metrics.addCustomChart(new Metrics.AdvancedPie("brew_quality", () -> {
Map<String, Integer> map = new HashMap<>(5);
Map<String, Integer> map = new HashMap<>(8);
map.put("excellent", exc);
map.put("good", good);
map.put("normal", norm);
@ -354,6 +358,13 @@ public class P extends JavaPlugin {
map.put("terrible", terr);
return map;
}));
metrics.addCustomChart(new Metrics.AdvancedPie("brews_created", () -> {
Map<String, Integer> map = new HashMap<>(4);
map.put("by command", brewsCreatedCmd);
map.put("brewing", brewsCreated - brewsCreatedCmd);
return map;
}));
metrics.addCustomChart(new Metrics.SimplePie("number_of_recipes", () -> {
int recipes = BRecipe.getAllRecipes().size();
if (recipes < 7) {
@ -374,6 +385,63 @@ public class P extends JavaPlugin {
}
}));
metrics.addCustomChart(new Metrics.SimplePie("v2_mc_version", () -> {
String mcv = Bukkit.getBukkitVersion();
mcv = mcv.substring(0, mcv.indexOf('.', 2));
if (mcv.matches("^\\d\\.\\d{1,2}$")) {
// Start, digit, dot, 1-2 digits, end
return mcv;
} else {
return "undef";
}
}));
metrics.addCustomChart(new Metrics.DrilldownPie("plugin_mc_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>(3);
String mcv = Bukkit.getBukkitVersion();
mcv = mcv.substring(0, mcv.indexOf('.', 2));
if (mcv.matches("^\\d\\.\\d{1,2}$")) {
// Start, digit, dot, 1-2 digits, end
mcv = "MC " + mcv;
} else {
mcv = "undef";
}
Map<String, Integer> innerMap = new HashMap<>(3);
innerMap.put(mcv, 1);
map.put(getDescription().getVersion(), innerMap);
return map;
}));
metrics.addCustomChart(new Metrics.SimplePie("language", () -> language));
metrics.addCustomChart(new Metrics.SimplePie("config_scramble", () -> BConfig.enableEncode ? "enabled" : "disabled"));
metrics.addCustomChart(new Metrics.SimplePie("config_lore_color", () -> {
if (BConfig.colorInBarrels) {
if (BConfig.colorInBrewer) {
return "both";
} else {
return "in barrels";
}
} else {
if (BConfig.colorInBrewer) {
return "in distiller";
} else {
return "none";
}
}
}));
metrics.addCustomChart(new Metrics.SimplePie("config_always_show", () -> {
if (BConfig.alwaysShowQuality) {
if (BConfig.alwaysShowAlc) {
return "both";
} else {
return "quality stars";
}
} else {
if (BConfig.alwaysShowAlc) {
return "alc content";
} else {
return "none";
}
}
}));
} catch (Throwable e) {
e.printStackTrace();
}*/
@ -519,9 +587,16 @@ public class P extends JavaPlugin {
return p;
}
public void metricsForCreate(Brew brew) {
public void metricsForCreate(boolean byCmd) {
if (brewsCreated == Integer.MAX_VALUE) return;
brewsCreated++;
if (byCmd) {
if (brewsCreatedCmd == Integer.MAX_VALUE) return;
brewsCreatedCmd++;
}
}
public void metricsForDrink(Brew brew) {
if (brew.getQuality() >= 9) {
exc++;
} else if (brew.getQuality() >= 7) {

View File

@ -50,16 +50,17 @@ public class BData {
Brew.loadPrevSeeds(data);
List<Integer> brewsCreated = data.getIntegerList("brewsCreated");
if (brewsCreated != null && brewsCreated.size() == 6) {
if (brewsCreated != null && brewsCreated.size() == 7) {
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);
P.p.brewsCreatedCmd = brewsCreated.get(1);
P.p.exc = brewsCreated.get(2);
P.p.good = brewsCreated.get(3);
P.p.norm = brewsCreated.get(4);
P.p.bad = brewsCreated.get(5);
P.p.terr = brewsCreated.get(6);
}
}
@ -126,6 +127,7 @@ public class BData {
// Store how many legacy brews were created
if (P.p.brewsCreated <= 0) {
P.p.brewsCreated = 0;
P.p.brewsCreatedCmd = 0;
P.p.exc = 0;
P.p.good = 0;
P.p.norm = 0;
@ -133,7 +135,7 @@ public class BData {
P.p.terr = 0;
if (!Brew.noLegacy()) {
for (Brew brew : Brew.legacyPotions.values()) {
P.p.metricsForCreate(brew);
P.p.metricsForCreate(false);
}
}
}

View File

@ -61,8 +61,9 @@ public class DataSave extends BukkitRunnable {
Brew.writePrevSeeds(configFile);
List<Integer> brewsCreated = new ArrayList<>(6);
List<Integer> brewsCreated = new ArrayList<>(7);
brewsCreated.add(P.p.brewsCreated);
brewsCreated.add(P.p.brewsCreatedCmd);
brewsCreated.add(P.p.exc);
brewsCreated.add(P.p.good);
brewsCreated.add(P.p.norm);