diff --git a/Changelog.txt b/Changelog.txt index 4f1e6c865..9efef47b0 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,5 @@ +Version 2.1.112 + Use ThreadedLocalRandom for RNG utils, random is seeded, thus creating new instances of Random breaks randomness Version 2.1.112 Correct locale usage for enum access, now enforces using the english locale to prevent issues with oddball locales for configs/commands Fixed a NPE that can occur if a player engages in combat with specific skills before their profile is loaded diff --git a/src/main/java/com/gmail/nossr50/util/random/RandomChanceUtil.java b/src/main/java/com/gmail/nossr50/util/random/RandomChanceUtil.java index ae9511bd0..f01c56e60 100644 --- a/src/main/java/com/gmail/nossr50/util/random/RandomChanceUtil.java +++ b/src/main/java/com/gmail/nossr50/util/random/RandomChanceUtil.java @@ -13,6 +13,7 @@ import org.bukkit.entity.Player; import java.text.DecimalFormat; import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; public class RandomChanceUtil { @@ -78,9 +79,7 @@ public class RandomChanceUtil } public static boolean rollDice(double chanceOfSuccess, int bound) { - Random random = new Random(); - - return chanceOfSuccess > random.nextInt(bound); + return chanceOfSuccess > ThreadLocalRandom.current().nextInt(bound); } /** @@ -100,8 +99,6 @@ public class RandomChanceUtil { double chanceOfSuccess = calculateChanceOfSuccess(randomChance); - Random random = new Random(); - //Check the odds return rollDice(chanceOfSuccess, 100); }