diff --git a/src/com/dre/brewery/BCauldron.java b/src/com/dre/brewery/BCauldron.java index 6f05dfb..c9907c1 100644 --- a/src/com/dre/brewery/BCauldron.java +++ b/src/com/dre/brewery/BCauldron.java @@ -203,6 +203,7 @@ public class BCauldron { } } else { + @SuppressWarnings("deprecation") byte data = block.getData(); if (data > 3) { data = 3; diff --git a/src/com/dre/brewery/BIngredients.java b/src/com/dre/brewery/BIngredients.java index f36e04a..3b2940f 100644 --- a/src/com/dre/brewery/BIngredients.java +++ b/src/com/dre/brewery/BIngredients.java @@ -179,7 +179,7 @@ public class BIngredients { } brew.save(potionMeta); potion.setItemMeta(potionMeta); - P.p.metricsForCreate(false); + P.p.stats.metricsForCreate(false); return potion; } diff --git a/src/com/dre/brewery/BPlayer.java b/src/com/dre/brewery/BPlayer.java index 3cf379f..ec97be9 100644 --- a/src/com/dre/brewery/BPlayer.java +++ b/src/com/dre/brewery/BPlayer.java @@ -172,7 +172,7 @@ public class BPlayer { if (brew.hasRecipe()) { brew.getCurrentRecipe().applyDrinkFeatures(player, brew.getQuality()); } - P.p.metricsForDrink(brew); + P.p.stats.forDrink(brew); int brewAlc = drinkEvent.getAddedAlcohol(); int quality = drinkEvent.getQuality(); diff --git a/src/com/dre/brewery/Brew.java b/src/com/dre/brewery/Brew.java index 8632815..302a652 100644 --- a/src/com/dre/brewery/Brew.java +++ b/src/com/dre/brewery/Brew.java @@ -827,7 +827,7 @@ public class Brew implements Cloneable { } save(potionMeta); potion.setItemMeta(potionMeta); - P.p.metricsForCreate(true); + P.p.stats.metricsForCreate(true); return potion; } diff --git a/src/com/dre/brewery/P.java b/src/com/dre/brewery/P.java index 5e53dc3..ff54b1d 100644 --- a/src/com/dre/brewery/P.java +++ b/src/com/dre/brewery/P.java @@ -38,9 +38,8 @@ import com.dre.brewery.listeners.*; import com.dre.brewery.recipe.*; import com.dre.brewery.utility.BUtil; import com.dre.brewery.utility.LegacyUtil; +import com.dre.brewery.utility.Stats; import org.apache.commons.lang.math.NumberUtils; -import org.bstats.bukkit.Metrics; -import org.bstats.charts.*; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -82,9 +81,7 @@ public class P extends JavaPlugin { public LanguageReader languageReader; // Metrics - public int brewsCreated; - public int brewsCreatedCmd; // Created by command - public int exc, good, norm, bad, terr; // Brews drunken with quality + public Stats stats = new Stats(); @Override public void onEnable() { @@ -135,7 +132,7 @@ public class P extends JavaPlugin { BData.readData(); // Setup Metrics - setupMetrics(); + stats.setupBStats(); // Listeners blockListener = new BlockListener(); @@ -310,179 +307,6 @@ public class P extends JavaPlugin { return p; } - private void setupMetrics() { - try { - Metrics metrics = new Metrics(this, 3494); - metrics.addCustomChart(new SingleLineChart("drunk_players", BPlayer::numDrunkPlayers)); - metrics.addCustomChart(new SingleLineChart("brews_in_existence", () -> brewsCreated)); - metrics.addCustomChart(new SingleLineChart("barrels_built", Barrel.barrels::size)); - metrics.addCustomChart(new SingleLineChart("cauldrons_boiling", BCauldron.bcauldrons::size)); - metrics.addCustomChart(new AdvancedPie("brew_quality", () -> { - Map map = new HashMap<>(8); - map.put("excellent", exc); - map.put("good", good); - map.put("normal", norm); - map.put("bad", bad); - map.put("terrible", terr); - return map; - })); - metrics.addCustomChart(new AdvancedPie("brews_created", () -> { - Map map = new HashMap<>(4); - map.put("by command", brewsCreatedCmd); - map.put("brewing", brewsCreated - brewsCreatedCmd); - return map; - })); - - metrics.addCustomChart(new SimplePie("number_of_recipes", () -> { - int recipes = BRecipe.getAllRecipes().size(); - if (recipes < 7) { - return "Less than 7"; - } else if (recipes < 11) { - return "7-10"; - } else if (recipes == 11) { - // There were 11 default recipes, so show this as its own slice - return "11"; - } else if (recipes == 20) { - // There are 20 default recipes, so show this as its own slice - return "20"; - } else if (recipes <= 29) { - if (recipes % 2 == 0) { - return recipes + "-" + (recipes + 1); - } else { - return (recipes - 1) + "-" + recipes; - } - } else if (recipes < 35) { - return "30-34"; - } else if (recipes < 40) { - return "35-39"; - } else if (recipes < 45) { - return "40-44"; - } else if (recipes <= 50) { - return "45-50"; - } else { - return "More than 50"; - } - - })); - metrics.addCustomChart(new SimplePie("cauldron_particles", () -> { - if (!BConfig.enableCauldronParticles) { - return "disabled"; - } - if (BConfig.minimalParticles) { - return "minimal"; - } - return "enabled"; - })); - metrics.addCustomChart(new SimplePie("wakeups", () -> { - if (!BConfig.enableWake) { - return "disabled"; - } - int wakeups = Wakeup.wakeups.size(); - if (wakeups == 0) { - return "0"; - } else if (wakeups <= 5) { - return "1-5"; - } else if (wakeups <= 10) { - return "6-10"; - } else if (wakeups <= 20) { - return "11-20"; - } else { - return "More than 20"; - } - })); - metrics.addCustomChart(new SimplePie("v2_mc_version", () -> { - String mcv = Bukkit.getBukkitVersion(); - mcv = mcv.substring(0, mcv.indexOf('.', 2)); - int index = mcv.indexOf('-'); - if (index > -1) { - mcv = mcv.substring(0, index); - } - if (mcv.matches("^\\d\\.\\d{1,2}$")) { - // Start, digit, dot, 1-2 digits, end - return mcv; - } else { - return "undef"; - } - })); - metrics.addCustomChart(new DrilldownPie("plugin_mc_version", () -> { - Map> map = new HashMap<>(3); - String mcv = Bukkit.getBukkitVersion(); - mcv = mcv.substring(0, mcv.indexOf('.', 2)); - int index = mcv.indexOf('-'); - if (index > -1) { - mcv = mcv.substring(0, index); - } - if (mcv.matches("^\\d\\.\\d{1,2}$")) { - // Start, digit, dot, 1-2 digits, end - mcv = "MC " + mcv; - } else { - mcv = "undef"; - } - Map innerMap = new HashMap<>(3); - innerMap.put(mcv, 1); - map.put(getDescription().getVersion(), innerMap); - return map; - })); - metrics.addCustomChart(new SimplePie("language", () -> language)); - metrics.addCustomChart(new SimplePie("config_scramble", () -> BConfig.enableEncode ? "enabled" : "disabled")); - metrics.addCustomChart(new 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 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 (Exception | LinkageError e) { - e.printStackTrace(); - } - } - - 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) { - good++; - } else if (brew.getQuality() >= 5) { - norm++; - } else if (brew.getQuality() >= 3) { - bad++; - } else { - terr++; - } - } - // Utility public void msg(CommandSender sender, String msg) { diff --git a/src/com/dre/brewery/filedata/BData.java b/src/com/dre/brewery/filedata/BData.java index 8bd93a2..383da4f 100644 --- a/src/com/dre/brewery/filedata/BData.java +++ b/src/com/dre/brewery/filedata/BData.java @@ -65,13 +65,13 @@ public class BData { 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.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); + P.p.stats.brewsCreated = brewsCreated.get(0); + P.p.stats.brewsCreatedCmd = brewsCreated.get(1); + P.p.stats.exc = brewsCreated.get(2); + P.p.stats.good = brewsCreated.get(3); + P.p.stats.norm = brewsCreated.get(4); + P.p.stats.bad = brewsCreated.get(5); + P.p.stats.terr = brewsCreated.get(6); } } @@ -120,17 +120,17 @@ 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; - P.p.bad = 0; - P.p.terr = 0; + if (P.p.stats.brewsCreated <= 0) { + P.p.stats.brewsCreated = 0; + P.p.stats.brewsCreatedCmd = 0; + P.p.stats.exc = 0; + P.p.stats.good = 0; + P.p.stats.norm = 0; + P.p.stats.bad = 0; + P.p.stats.terr = 0; if (!Brew.noLegacy()) { for (int i = Brew.legacyPotions.size(); i > 0; i--) { - P.p.metricsForCreate(false); + P.p.stats.metricsForCreate(false); } } } diff --git a/src/com/dre/brewery/filedata/DataSave.java b/src/com/dre/brewery/filedata/DataSave.java index 9135baa..eaa69ed 100644 --- a/src/com/dre/brewery/filedata/DataSave.java +++ b/src/com/dre/brewery/filedata/DataSave.java @@ -76,13 +76,13 @@ public class DataSave extends BukkitRunnable { Brew.writePrevSeeds(data); List 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); - brewsCreated.add(P.p.bad); - brewsCreated.add(P.p.terr); + brewsCreated.add(P.p.stats.brewsCreated); + brewsCreated.add(P.p.stats.brewsCreatedCmd); + brewsCreated.add(P.p.stats.exc); + brewsCreated.add(P.p.stats.good); + brewsCreated.add(P.p.stats.norm); + brewsCreated.add(P.p.stats.bad); + brewsCreated.add(P.p.stats.terr); data.set("brewsCreated", brewsCreated); data.set("brewsCreatedH", brewsCreated.hashCode()); diff --git a/src/com/dre/brewery/integration/barrel/LWCBarrel.java b/src/com/dre/brewery/integration/barrel/LWCBarrel.java index cad18b5..6326090 100644 --- a/src/com/dre/brewery/integration/barrel/LWCBarrel.java +++ b/src/com/dre/brewery/integration/barrel/LWCBarrel.java @@ -65,6 +65,7 @@ public class LWCBarrel { if (listener.getListener() instanceof LWCPlayerListener) { try { listener.callEvent(lwcEvent); + //noinspection deprecation if (lwcEvent.isCancelled()) { return false; } diff --git a/src/com/dre/brewery/integration/barrel/WGBarrel7.java b/src/com/dre/brewery/integration/barrel/WGBarrel7.java index e06dc29..9ece6c0 100644 --- a/src/com/dre/brewery/integration/barrel/WGBarrel7.java +++ b/src/com/dre/brewery/integration/barrel/WGBarrel7.java @@ -32,6 +32,7 @@ public class WGBarrel7 implements WGBarrel { } } + @SuppressWarnings("deprecation") public boolean checkAccess(Player player, Block spigot, Plugin plugin) { WorldGuardPlugin wg = (WorldGuardPlugin) plugin; WorldGuardPlatform platform = WorldGuard.getInstance().getPlatform(); diff --git a/src/com/dre/brewery/listeners/CommandListener.java b/src/com/dre/brewery/listeners/CommandListener.java index e2357d5..8114a10 100644 --- a/src/com/dre/brewery/listeners/CommandListener.java +++ b/src/com/dre/brewery/listeners/CommandListener.java @@ -415,6 +415,7 @@ public class CommandListener implements CommandExecutor { } Player player = (Player) sender; + @SuppressWarnings("deprecation") ItemStack hand = P.use1_9 ? player.getInventory().getItemInMainHand() : player.getItemInHand(); if (hand != null) { p.msg(sender, p.languageReader.get("CMD_Configname", hand.getType().name().toLowerCase(Locale.ENGLISH))); @@ -548,7 +549,7 @@ public class CommandListener implements CommandExecutor { if (sender instanceof ConsoleCommandSender && !sender.isOp()) return; P.p.msg(sender, "Drunk Players: " + BPlayer.numDrunkPlayers()); - P.p.msg(sender, "Brews created: " + P.p.brewsCreated); + P.p.msg(sender, "Brews created: " + P.p.stats.brewsCreated); P.p.msg(sender, "Barrels built: " + Barrel.barrels.size()); P.p.msg(sender, "Cauldrons boiling: " + BCauldron.bcauldrons.size()); P.p.msg(sender, "Number of Recipes: " + BRecipe.getAllRecipes().size()); diff --git a/src/com/dre/brewery/recipe/BEffect.java b/src/com/dre/brewery/recipe/BEffect.java index edb99cc..25cd66b 100644 --- a/src/com/dre/brewery/recipe/BEffect.java +++ b/src/com/dre/brewery/recipe/BEffect.java @@ -103,7 +103,9 @@ public class BEffect { duration *= 20; if (!P.use1_14) { - duration /= type.getDurationModifier(); + @SuppressWarnings("deprecation") + double modifier = type.getDurationModifier(); + duration /= modifier; } return type.createEffect(duration, lvl - 1); } diff --git a/src/com/dre/brewery/recipe/RecipeItem.java b/src/com/dre/brewery/recipe/RecipeItem.java index 8497598..f664cb2 100644 --- a/src/com/dre/brewery/recipe/RecipeItem.java +++ b/src/com/dre/brewery/recipe/RecipeItem.java @@ -166,8 +166,9 @@ public abstract class RecipeItem implements Cloneable { if (P.use1_13) { return new SimpleItem(item.getType()); } else { - //noinspection deprecation - return new SimpleItem(item.getType(), item.getDurability()); + @SuppressWarnings("deprecation") + short durability = item.getDurability(); + return new SimpleItem(item.getType(), durability); } } return rItem; diff --git a/src/com/dre/brewery/utility/LegacyUtil.java b/src/com/dre/brewery/utility/LegacyUtil.java index 58db8b6..265982f 100644 --- a/src/com/dre/brewery/utility/LegacyUtil.java +++ b/src/com/dre/brewery/utility/LegacyUtil.java @@ -20,7 +20,7 @@ import static com.dre.brewery.BCauldron.EMPTY; import static com.dre.brewery.BCauldron.FULL; import static com.dre.brewery.BCauldron.SOME; -@SuppressWarnings("JavaReflectionMemberAccess") +@SuppressWarnings({"JavaReflectionMemberAccess", "deprecation"}) public class LegacyUtil { private static Method GET_MATERIAL; diff --git a/src/com/dre/brewery/utility/Stats.java b/src/com/dre/brewery/utility/Stats.java new file mode 100644 index 0000000..e2d50a5 --- /dev/null +++ b/src/com/dre/brewery/utility/Stats.java @@ -0,0 +1,195 @@ +package com.dre.brewery.utility; + +import com.dre.brewery.*; +import com.dre.brewery.filedata.BConfig; +import com.dre.brewery.recipe.BRecipe; +import org.bstats.bukkit.Metrics; +import org.bstats.charts.AdvancedPie; +import org.bstats.charts.DrilldownPie; +import org.bstats.charts.SimplePie; +import org.bstats.charts.SingleLineChart; +import org.bukkit.Bukkit; + +import java.util.HashMap; +import java.util.Map; + +public class Stats { + + public int brewsCreated; + public int brewsCreatedCmd; // Created by command + public int exc, good, norm, bad, terr; // Brews drunken with quality + + public void metricsForCreate(boolean byCmd) { + if (brewsCreated == Integer.MAX_VALUE) return; + brewsCreated++; + if (byCmd) { + if (brewsCreatedCmd == Integer.MAX_VALUE) return; + brewsCreatedCmd++; + } + } + + public void forDrink(Brew brew) { + if (brew.getQuality() >= 9) { + exc++; + } else if (brew.getQuality() >= 7) { + good++; + } else if (brew.getQuality() >= 5) { + norm++; + } else if (brew.getQuality() >= 3) { + bad++; + } else { + terr++; + } + } + + public void setupBStats() { + try { + Metrics metrics = new Metrics(P.p, 3494); + metrics.addCustomChart(new SingleLineChart("drunk_players", BPlayer::numDrunkPlayers)); + metrics.addCustomChart(new SingleLineChart("brews_in_existence", () -> brewsCreated)); + metrics.addCustomChart(new SingleLineChart("barrels_built", Barrel.barrels::size)); + metrics.addCustomChart(new SingleLineChart("cauldrons_boiling", BCauldron.bcauldrons::size)); + metrics.addCustomChart(new AdvancedPie("brew_quality", () -> { + Map map = new HashMap<>(8); + map.put("excellent", exc); + map.put("good", good); + map.put("normal", norm); + map.put("bad", bad); + map.put("terrible", terr); + return map; + })); + metrics.addCustomChart(new AdvancedPie("brews_created", () -> { + Map map = new HashMap<>(4); + map.put("by command", brewsCreatedCmd); + map.put("brewing", brewsCreated - brewsCreatedCmd); + return map; + })); + + metrics.addCustomChart(new SimplePie("number_of_recipes", () -> { + int recipes = BRecipe.getAllRecipes().size(); + if (recipes < 7) { + return "Less than 7"; + } else if (recipes < 11) { + return "7-10"; + } else if (recipes == 11) { + // There were 11 default recipes, so show this as its own slice + return "11"; + } else if (recipes == 20) { + // There are 20 default recipes, so show this as its own slice + return "20"; + } else if (recipes <= 29) { + if (recipes % 2 == 0) { + return recipes + "-" + (recipes + 1); + } else { + return (recipes - 1) + "-" + recipes; + } + } else if (recipes < 35) { + return "30-34"; + } else if (recipes < 40) { + return "35-39"; + } else if (recipes < 45) { + return "40-44"; + } else if (recipes <= 50) { + return "45-50"; + } else { + return "More than 50"; + } + + })); + metrics.addCustomChart(new SimplePie("cauldron_particles", () -> { + if (!BConfig.enableCauldronParticles) { + return "disabled"; + } + if (BConfig.minimalParticles) { + return "minimal"; + } + return "enabled"; + })); + metrics.addCustomChart(new SimplePie("wakeups", () -> { + if (!BConfig.enableWake) { + return "disabled"; + } + int wakeups = Wakeup.wakeups.size(); + if (wakeups == 0) { + return "0"; + } else if (wakeups <= 5) { + return "1-5"; + } else if (wakeups <= 10) { + return "6-10"; + } else if (wakeups <= 20) { + return "11-20"; + } else { + return "More than 20"; + } + })); + metrics.addCustomChart(new SimplePie("v2_mc_version", () -> { + String mcv = Bukkit.getBukkitVersion(); + mcv = mcv.substring(0, mcv.indexOf('.', 2)); + int index = mcv.indexOf('-'); + if (index > -1) { + mcv = mcv.substring(0, index); + } + if (mcv.matches("^\\d\\.\\d{1,2}$")) { + // Start, digit, dot, 1-2 digits, end + return mcv; + } else { + return "undef"; + } + })); + metrics.addCustomChart(new DrilldownPie("plugin_mc_version", () -> { + Map> map = new HashMap<>(3); + String mcv = Bukkit.getBukkitVersion(); + mcv = mcv.substring(0, mcv.indexOf('.', 2)); + int index = mcv.indexOf('-'); + if (index > -1) { + mcv = mcv.substring(0, index); + } + if (mcv.matches("^\\d\\.\\d{1,2}$")) { + // Start, digit, dot, 1-2 digits, end + mcv = "MC " + mcv; + } else { + mcv = "undef"; + } + Map innerMap = new HashMap<>(3); + innerMap.put(mcv, 1); + map.put(P.p.getDescription().getVersion(), innerMap); + return map; + })); + metrics.addCustomChart(new SimplePie("language", () -> P.p.language)); + metrics.addCustomChart(new SimplePie("config_scramble", () -> BConfig.enableEncode ? "enabled" : "disabled")); + metrics.addCustomChart(new 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 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 (Exception | LinkageError e) { + e.printStackTrace(); + } + } + +}