diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2021-12-28 11:53:55 -0500 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2021-12-28 11:53:55 -0500 |
commit | 3c10cf735d49e62cabef5180248748b06f9de287 (patch) | |
tree | 8d0367af50dad1b4e0256f2d41df9ac41f38f93f /src/main/java/net/tylermurphy/hideAndSeek/game/Game.java | |
parent | 1.3.3 rc1 (diff) | |
download | kenshinshideandseek-3c10cf735d49e62cabef5180248748b06f9de287.tar.gz kenshinshideandseek-3c10cf735d49e62cabef5180248748b06f9de287.tar.bz2 kenshinshideandseek-3c10cf735d49e62cabef5180248748b06f9de287.zip |
1.3.3 rc2
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/Game.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/game/Game.java | 47 |
1 files changed, 22 insertions, 25 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java index 39d6376..f8284ca 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java @@ -411,7 +411,7 @@ class Taunt { protected void update() { if(delay == 0) { if(running) launchTaunt(); - else if(tauntLast || Board.size() > 1) executeTaunt(); + else if(tauntLast || Board.sizeHider() > 1) executeTaunt(); } else { delay--; delay = Math.max(delay, 0); @@ -419,34 +419,31 @@ class Taunt { } private void executeTaunt() { - Player taunted = null; - int rand = (int) (Math.random()*Board.sizeHider()); - for(Player player : Board.getPlayers()) { - if(Board.isHider(player)) { - rand--; - if(rand==0) { - taunted = player; - break; - } - } - } - if(taunted != null) { - taunted.sendMessage(message("TAUNTED").toString()); - broadcastMessage(tauntPrefix + message("TAUNT")); - tauntPlayer = taunted.getName(); - running = true; - delay = 30; - } else { - this.delay = tauntDelay; + Optional<Player> rand = Board.getHiders().stream().skip(new Random().nextInt(Board.size())).findFirst(); + if(!rand.isPresent()){ + Main.plugin.getLogger().warning("Failed to select random seeker."); + return; } + Player taunted = rand.get(); + taunted.sendMessage(message("TAUNTED").toString()); + broadcastMessage(tauntPrefix + message("TAUNT")); + tauntPlayer = taunted.getName(); + running = true; + delay = 30; } private void launchTaunt(){ - Player taunted1 = Board.getPlayer(tauntPlayer); - if(taunted1 != null) { - World world = taunted1.getLocation().getWorld(); - assert world != null; - Firework fw = (Firework) world.spawnEntity(taunted1.getLocation(), EntityType.FIREWORK); + Player taunted = Board.getPlayer(tauntPlayer); + if(taunted != null) { + World world = taunted.getLocation().getWorld(); + if(world == null){ + Main.plugin.getLogger().severe("Game world is null while trying to launch taunt."); + tauntPlayer = ""; + running = false; + delay = tauntDelay; + return; + } + Firework fw = (Firework) world.spawnEntity(taunted.getLocation(), EntityType.FIREWORK); FireworkMeta fwm = fw.getFireworkMeta(); fwm.setPower(4); fwm.addEffect(FireworkEffect.builder() |