From 77903a4c02f0069b135bfa479ecab4c61f83d3bd Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 10 Nov 2020 14:13:11 -0800 Subject: [PATCH] Respawn event improvements Spectator for runners on respawn, only give compass on respawn when game has started, only update danger level for players who are in survival mode (Fixes #17 and fixes #18) --- .../com/yoonicode/minecraftmanhunt/PluginListener.java | 7 ++++++- .../java/com/yoonicode/minecraftmanhunt/TrackManager.java | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/PluginListener.java b/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/PluginListener.java index 7577a6d..c933bc7 100644 --- a/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/PluginListener.java +++ b/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/PluginListener.java @@ -1,6 +1,7 @@ package com.yoonicode.minecraftmanhunt; import net.dv8tion.jda.api.Permission; +import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.block.Skull; @@ -87,9 +88,13 @@ public void onPlayerEnterPortal(PlayerPortalEvent event){ @EventHandler public void onPlayerRespawn(PlayerRespawnEvent event){ - if(main.hunters.contains(event.getPlayer().getName())){ + String playerName = event.getPlayer().getName(); + if(main.commands.gameIsRunning && main.hunters.contains(playerName)){ event.getPlayer().getInventory().addItem(new ItemStack(Material.COMPASS, 1)); } + if(main.commands.gameIsRunning && main.runners.contains(playerName)){ + event.getPlayer().setGameMode(GameMode.SPECTATOR); + } } @EventHandler diff --git a/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/TrackManager.java b/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/TrackManager.java index ee638b9..4e1666f 100644 --- a/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/TrackManager.java +++ b/MinecraftManhunt/src/main/java/com/yoonicode/minecraftmanhunt/TrackManager.java @@ -265,10 +265,12 @@ public void updateDangerLevel(){ for(String huntername : main.hunters){ Player hunter = Bukkit.getPlayer(huntername); if(hunter == null) continue; + if(hunter.getGameMode() != GameMode.SURVIVAL) continue; if(hunter.getWorld().getEnvironment() == World.Environment.NETHER) hunterInNetherDimension = true; for(String runnername : main.runners){ Player runner = Bukkit.getPlayer(runnername); if(runner == null) continue; + if(runner.getGameMode() != GameMode.SURVIVAL) continue; if(runner.getWorld().getEnvironment() == World.Environment.NETHER) runnerInNetherDimension = true; if(hunter.getWorld().getEnvironment() != runner.getWorld().getEnvironment()) continue; double newDistance = hunter.getLocation().distance(runner.getLocation());