From eb9759f2d8c6bd91f84544e884264c8c8dc4fd7a Mon Sep 17 00:00:00 2001 From: Paldiu Date: Fri, 25 Dec 2020 15:57:10 -0500 Subject: [PATCH] Replaced All Instances of Random With SplittableRandom SplittableRandom is faster (negligable) than Random and is also able to recursively return new instances of itself for an even more complex pseudo random generator compared to the default Random supplied by Java. --- .../totalfreedom/totalfreedommod/command/Command_bird.java | 4 ++-- .../totalfreedommod/command/Command_deafen.java | 4 ++-- .../totalfreedommod/command/Command_modifyitem.java | 4 ++-- .../me/totalfreedom/totalfreedommod/discord/Discord.java | 4 ++-- .../java/me/totalfreedom/totalfreedommod/fun/ItemFun.java | 4 ++-- .../java/me/totalfreedom/totalfreedommod/fun/Trailer.java | 4 ++-- .../java/me/totalfreedom/totalfreedommod/util/FUtil.java | 6 +++--- .../totalfreedommod/world/CleanroomChunkGenerator.java | 6 +++--- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_bird.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_bird.java index 4eb70a01..87291599 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_bird.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_bird.java @@ -2,7 +2,7 @@ package me.totalfreedom.totalfreedommod.command; import java.util.Arrays; import java.util.List; -import java.util.Random; +import java.util.SplittableRandom; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.Location; import org.bukkit.command.Command; @@ -27,7 +27,7 @@ public class Command_bird extends FreedomCommand public EntityType getRandomFish() { List fishTypes = Arrays.asList(EntityType.COD, EntityType.SALMON, EntityType.PUFFERFISH, EntityType.TROPICAL_FISH); - Random random = new Random(); + SplittableRandom random = new SplittableRandom(); return fishTypes.get(random.nextInt(fishTypes.size())); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deafen.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deafen.java index eb15c609..d3358487 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deafen.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deafen.java @@ -1,6 +1,6 @@ package me.totalfreedom.totalfreedommod.command; -import java.util.Random; +import java.util.SplittableRandom; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.Location; import org.bukkit.Sound; @@ -15,7 +15,7 @@ public class Command_deafen extends FreedomCommand { public static final double STEPS = 10.0; - private static final Random random = new Random(); + private static final SplittableRandom random = new SplittableRandom(); private static Location randomOffset(Location a) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java index ed9273cf..bb7d6ec7 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java @@ -2,7 +2,7 @@ package me.totalfreedom.totalfreedommod.command; import java.util.ArrayList; import java.util.List; -import java.util.Random; +import java.util.SplittableRandom; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import net.minecraft.server.v1_16_R3.NBTTagCompound; @@ -180,7 +180,7 @@ public class Command_modifyitem extends FreedomCommand } cmpnd.setDouble("Amount", amount); cmpnd.setInt("Operation", 0); - Random random = new Random(); + SplittableRandom random = new SplittableRandom(); cmpnd.setIntArray("UUID", new int[] { random.nextInt(), diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java index 1b345999..06011b44 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java @@ -10,7 +10,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Objects; -import java.util.Random; +import java.util.SplittableRandom; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; import javax.security.auth.login.LoginException; @@ -292,7 +292,7 @@ public class Discord extends FreedomService public String generateCode(int size) { StringBuilder code = new StringBuilder(); - Random random = new Random(); + SplittableRandom random = new SplittableRandom(); for (int i = 0; i < size; i++) { code.append(random.nextInt(10)); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java index e51fb163..c42a10b3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java @@ -5,7 +5,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Random; +import java.util.SplittableRandom; import java.util.UUID; import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.config.ConfigEntry; @@ -48,7 +48,7 @@ import org.bukkit.util.Vector; public class ItemFun extends FreedomService { - private final Random random = new Random(); + private final SplittableRandom random = new SplittableRandom(); private final Map> cooldownTracker = new HashMap<>(); private final Map orientationTracker = new HashMap<>(); private final List FIRE_BALL_UUIDS = new ArrayList<>(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java index a72abaa1..77f2c9fe 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/fun/Trailer.java @@ -2,7 +2,7 @@ package me.totalfreedom.totalfreedommod.fun; import java.util.HashSet; import java.util.Objects; -import java.util.Random; +import java.util.SplittableRandom; import java.util.Set; import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.util.Groups; @@ -17,7 +17,7 @@ import org.bukkit.event.player.PlayerMoveEvent; public class Trailer extends FreedomService { - private final Random random = new Random(); + private final SplittableRandom random = new SplittableRandom(); private final Set trailPlayers = new HashSet<>(); // player name @Override diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java index 6c982263..6f52ad8a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; -import java.util.Random; +import java.util.SplittableRandom; import java.util.Set; import java.util.TimeZone; import java.util.UUID; @@ -85,7 +85,7 @@ public class FUtil ChatColor.DARK_BLUE, ChatColor.DARK_PURPLE, ChatColor.LIGHT_PURPLE); - private static final Random RANDOM = new Random(); + private static final SplittableRandom RANDOM = new SplittableRandom(); private static final String CHARACTER_STRING = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; private static final Map TIMEZONE_LOOKUP = new HashMap<>(); public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z"; @@ -721,7 +721,7 @@ public class FUtil public static char getRandomCharacter() { - return CHARACTER_STRING.charAt(new Random().nextInt(CHARACTER_STRING.length())); + return CHARACTER_STRING.charAt(new SplittableRandom().nextInt(CHARACTER_STRING.length())); } public static void give(Player player, Material material, String coloredName, int amount, String... lore) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/world/CleanroomChunkGenerator.java b/src/main/java/me/totalfreedom/totalfreedommod/world/CleanroomChunkGenerator.java index 8d0b9bd6..dc88905c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/world/CleanroomChunkGenerator.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/world/CleanroomChunkGenerator.java @@ -19,7 +19,7 @@ package me.totalfreedom.totalfreedommod.world; import java.util.Arrays; -import java.util.Random; +import java.util.SplittableRandom; import java.util.logging.Logger; import org.bukkit.Location; import org.bukkit.Material; @@ -128,7 +128,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator } @Override - public @NotNull ChunkData generateChunkData(World world, @NotNull Random random, int x, int z, @NotNull BiomeGrid biome) + public @NotNull ChunkData generateChunkData(World world, @NotNull SplittableRandom random, int x, int z, @NotNull BiomeGrid biome) { int maxHeight = world.getMaxHeight(); if (materials.length > maxHeight) @@ -150,7 +150,7 @@ public class CleanroomChunkGenerator extends ChunkGenerator } @Override - public Location getFixedSpawnLocation(World world, @NotNull Random random) + public Location getFixedSpawnLocation(World world, @NotNull SplittableRandom random) { if (!world.isChunkLoaded(0, 0)) {