diff --git a/src/main/java/dev/walshy/hardcoreslimefun/HardcoreMetrics.java b/src/main/java/dev/walshy/hardcoreslimefun/HardcoreMetrics.java index 55ac626..fecfbb1 100644 --- a/src/main/java/dev/walshy/hardcoreslimefun/HardcoreMetrics.java +++ b/src/main/java/dev/walshy/hardcoreslimefun/HardcoreMetrics.java @@ -21,7 +21,7 @@ class HardcoreMetrics { void start() { Metrics metrics = new Metrics(plugin, 13641); - addBooleanPie(metrics, "reset_random_research_on_death", Config.INSTANCE::isResetResearchOnDeath); + addPercentChart(metrics, "chance-to-reset-random-research", 25, Config.INSTANCE::getResetResearchOnDeath); addPercentChart(metrics, "chance_to_reset_all_researches_on_death", 25, Config.INSTANCE::getResetAllResearchesOnDeath); diff --git a/src/main/java/dev/walshy/hardcoreslimefun/events/Events.java b/src/main/java/dev/walshy/hardcoreslimefun/events/Events.java index 10900a8..c8b1e92 100644 --- a/src/main/java/dev/walshy/hardcoreslimefun/events/Events.java +++ b/src/main/java/dev/walshy/hardcoreslimefun/events/Events.java @@ -22,6 +22,7 @@ public class Events implements Listener { public void onDeath(@Nonnull PlayerDeathEvent event) { PlayerProfile.get(event.getEntity(), profile -> { final boolean shouldResetAllResearches = Utils.chance(Config.INSTANCE.getResetAllResearchesOnDeath()); + final boolean shouldResetOneResearch = Utils.chance(Config.INSTANCE.getResetResearchOnDeath()); // If we should reset all researches, do it if (shouldResetAllResearches) { @@ -30,11 +31,10 @@ public void onDeath(@Nonnull PlayerDeathEvent event) { } Utils.send(event.getEntity(), Config.INSTANCE.getLostAllResearch()); - } else if (Config.INSTANCE.isResetResearchOnDeath()) { + } else if (shouldResetOneResearch) { // If we should reset a random one, do it final Research randomResearch = Utils.randomValue(profile.getResearches()); if (randomResearch == null) return; - profile.setResearched(randomResearch, false); String message = Config.INSTANCE.getLostRandomResearch().replace("%research%", randomResearch.getName(event.getEntity())); Utils.send(event.getEntity(), message); diff --git a/src/main/java/dev/walshy/hardcoreslimefun/utils/Config.java b/src/main/java/dev/walshy/hardcoreslimefun/utils/Config.java index e8fd8fb..e48d02c 100644 --- a/src/main/java/dev/walshy/hardcoreslimefun/utils/Config.java +++ b/src/main/java/dev/walshy/hardcoreslimefun/utils/Config.java @@ -11,7 +11,7 @@ public class Config { public static final Config INSTANCE = new Config(); // on-death.reset-random-research - private boolean resetResearchOnDeath; + private double resetResearchOnDeath; // on-death.chance-to-reset-all-researches private double resetAllResearchesOnDeath; @@ -36,7 +36,7 @@ public class Config { private String androidMalfunctioned; public void load(@Nonnull FileConfiguration config) { - resetResearchOnDeath = config.getBoolean("on-death.reset-random-research", true); + resetResearchOnDeath = getPercent(config,"on-death.resetResearchChance",70); resetAllResearchesOnDeath = getPercent(config, "on-death.chance-to-reset-all-researches", 5); researchFailChance = getPercent(config, "on-research.chance-of-failure", 10); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 1649a99..14cc950 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,8 +1,9 @@ # If the plugin should auto-update auto-update: true on-death: - # If true, a player will lose a random research every death - reset-random-research: true + # Chance to reset one player's researches on death. Percent scale of 0 to 100. + # 100 will always fire and 0 will never fire. + chance-to-reset-random-research: 70 # Chance to reset all the player's researches on death. Percent scale of 0 to 100. # 100 will always fire and 0 will never fire. chance-to-reset-all-researches: 5