From 28c78be287a3c3959904df631f7e8880e804cc6b Mon Sep 17 00:00:00 2001 From: kaboom <58372747+kaboombot@users.noreply.github.com> Date: Fri, 20 May 2022 01:44:22 +0300 Subject: [PATCH] Various cleanups for consistency --- .github/workflows/main.yml | 2 +- pom.xml | 4 +-- .../kaboom/extras/commands/CommandKaboom.java | 19 ++++++-------- .../extras/modules/entity/EntitySpawn.java | 26 ++++--------------- .../modules/player/PlayerConnection.java | 18 +++++++++++++ src/main/resources/config.yml | 5 ++-- 6 files changed, 36 insertions(+), 38 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b59e88e..0aa48e3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: 18 + java-version: 8 - name: Cache maven packages to speed up build uses: actions/cache@v1 diff --git a/pom.xml b/pom.xml index e75a6b0..82c390b 100644 --- a/pom.xml +++ b/pom.xml @@ -5,8 +5,8 @@ master - 11 - 11 + 1.8 + 1.8 true UTF-8 diff --git a/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java b/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java index cc4c996..6571d2f 100644 --- a/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java +++ b/src/main/java/pw/kaboom/extras/commands/CommandKaboom.java @@ -1,5 +1,7 @@ package pw.kaboom.extras.commands; +import java.util.concurrent.ThreadLocalRandom; + import org.bukkit.Location; import org.bukkit.Material; @@ -11,18 +13,13 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import java.util.Random; - public final class CommandKaboom implements CommandExecutor { - private double getRandom(final int min, final int max) { - return new Random().nextInt(max - min + 1) + min; - } public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { final Player player = (Player) sender; - int random = new Random().nextBoolean() ? 0 : 1; + boolean explode = ThreadLocalRandom.current().nextBoolean(); - if (random == 0) { + if (explode) { final Location location = player.getLocation(); final World world = player.getWorld(); final int explosionCount = 20; @@ -31,9 +28,9 @@ public final class CommandKaboom implements CommandExecutor { world.createExplosion(location, power, true, true); for (int i = 0; i < explosionCount; i++) { - final double posX = location.getX() + getRandom(-15, 15); - final double posY = location.getY() + getRandom(-6, 6); - final double posZ = location.getZ() + getRandom(-15, 15); + final double posX = location.getX() + ThreadLocalRandom.current().nextInt(-15, 15); + final double posY = location.getY() + ThreadLocalRandom.current().nextInt(-6, 6); + final double posZ = location.getZ() + ThreadLocalRandom.current().nextInt(-15, 15); final Location explodeLocation = new Location(world, posX, posY, posZ); final int power2 = 4; @@ -49,4 +46,4 @@ public final class CommandKaboom implements CommandExecutor { } return true; } -} \ No newline at end of file +} diff --git a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java index 0be8b8f..a5284ad 100644 --- a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java +++ b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java @@ -1,13 +1,10 @@ package pw.kaboom.extras.modules.entity; -import java.security.SecureRandom; -import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; import org.bukkit.Chunk; -import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; -import org.bukkit.WorldBorder; import org.bukkit.block.CreatureSpawner; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.AreaEffectCloud; @@ -34,13 +31,11 @@ import com.destroystokyo.paper.event.block.TNTPrimeEvent; import com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent; import com.destroystokyo.paper.event.entity.PreSpawnerSpawnEvent; import org.bukkit.plugin.java.JavaPlugin; -import org.spigotmc.event.player.PlayerSpawnLocationEvent; import pw.kaboom.extras.Main; public final class EntitySpawn implements Listener { - private static final Main PLUGIN = JavaPlugin.getPlugin(Main.class); - private static final FileConfiguration CONFIG = PLUGIN.getConfig(); - private static final SecureRandom RANDOM = new SecureRandom(); + private static final FileConfiguration CONFIG = JavaPlugin.getPlugin(Main.class).getConfig(); + private static final int MAX_ENTITIES_PER_CHUNK = CONFIG.getInt("maxEntitiesPerChunk"); private void applyEntityChanges(final Entity entity) { switch (entity.getType()) { @@ -96,9 +91,8 @@ public final class EntitySpawn implements Listener { default: if (!EntityType.PLAYER.equals(entityType)) { final int chunkEntityCount = chunk.getEntities().length; - final int chunkEntityCountLimit = CONFIG.getInt("maxEntitiesPerChunk"); - if (chunkEntityCount >= chunkEntityCountLimit) { + if (chunkEntityCount >= MAX_ENTITIES_PER_CHUNK) { return true; } } @@ -180,16 +174,6 @@ public final class EntitySpawn implements Listener { } } - @EventHandler - void onPlayerSpawn(final PlayerSpawnLocationEvent event) { - final World world = event.getPlayer().getWorld(); - final WorldBorder worldBorder = world.getWorldBorder(); - - if (CONFIG.getBoolean("randomizeSpawn") && event.getPlayer().getBedSpawnLocation() != event.getSpawnLocation()) { - event.setSpawnLocation(new Location(world, RANDOM.nextDouble(-300000000D, 30000000D) + .5, 100D, RANDOM.nextDouble(-300000000D, 30000000D) + .5)); - } - } - @EventHandler void onEntitySpawn(final EntitySpawnEvent event) { final double x = event.getLocation().getX(); @@ -284,7 +268,7 @@ public final class EntitySpawn implements Listener { case EXPLOSION: case FIRE: case REDSTONE: - if (new Random().nextBoolean()) { + if (ThreadLocalRandom.current().nextBoolean()) { event.setCancelled(true); } return; diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java index 7324543..422a39b 100644 --- a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java +++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java @@ -2,8 +2,11 @@ package pw.kaboom.extras.modules.player; import java.util.HashSet; import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -16,6 +19,8 @@ import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; +import org.spigotmc.event.player.PlayerSpawnLocationEvent; + import com.destroystokyo.paper.event.profile.PreLookupProfileEvent; import com.destroystokyo.paper.profile.ProfileProperty; import com.google.common.base.Charsets; @@ -36,6 +41,7 @@ public final class PlayerConnection implements Listener { private static final boolean ENABLE_JOIN_RESTRICTIONS = CONFIG.getBoolean("enableJoinRestrictions"); private static final boolean ALLOW_JOIN_ON_FULL_SERVER = CONFIG.getBoolean("allowJoinOnFullServer"); private static final boolean OP_ON_JOIN = CONFIG.getBoolean("opOnJoin"); + private static final boolean RANDOMIZE_SPAWN = CONFIG.getBoolean("randomizeSpawn"); @EventHandler void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) { @@ -105,6 +111,18 @@ public final class PlayerConnection implements Listener { }*/ } + @EventHandler + void onPlayerSpawn(final PlayerSpawnLocationEvent event) { + if (RANDOMIZE_SPAWN && event.getPlayer().getBedSpawnLocation() != event.getSpawnLocation()) { + final World world = event.getPlayer().getWorld(); + final double x = ThreadLocalRandom.current().nextInt(-300000000, 30000000) + .5; + final double y = 100; + final double z = ThreadLocalRandom.current().nextInt(-300000000, 30000000) + .5; + + event.setSpawnLocation(new Location(world, x, y, z)); + } + } + @EventHandler void onPlayerQuit(final PlayerQuitEvent event) { PlayerCommand.getCommandMillisList().remove(event.getPlayer().getUniqueId()); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 20eac91..2c7977a 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -4,9 +4,8 @@ enableKick: false enableJoinRestrictions: false opOnJoin: true randomizeSpawn: false -# Set to -1 to disable -maxEntitiesPerChunk: 30 +maxEntitiesPerChunk: 30 # Set to -1 to disable playerJoinTitle: "§7Welcome to Kaboom!" playerJoinSubtitle: "Free OP • Anarchy • Creative" opTag: "§4§l[§c§lOP§4§l] §c" -deOpTag: "§8§l[§7§lDeOP§8§l] §7" \ No newline at end of file +deOpTag: "§8§l[§7§lDeOP§8§l] §7"