From eabd9ab50bec5ae464c02a98f3f26e251c7622b1 Mon Sep 17 00:00:00 2001 From: Yaruma3341 Date: Mon, 13 Jan 2020 21:37:36 +0100 Subject: [PATCH] added spec hider --- .../de/steamwar/fightsystem/FightSystem.java | 4 ++-- .../de/steamwar/fightsystem/fight/Fight.java | 24 +++++++++++++++++++ .../steamwar/fightsystem/fight/FightTeam.java | 4 ++-- .../listener/PlayerStateListener.java | 8 +++---- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java b/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java index 536f838..3aa0c63 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/FightSystem.java @@ -266,10 +266,10 @@ public class FightSystem extends JavaPlugin { private static void setAllPlayersGM(GameMode gm) { for(FightPlayer fightPlayer: Fight.getBlueTeam().getPlayers()){ - fightPlayer.getPlayer().setGameMode(gm); + Fight.setPlayerGamemode(fightPlayer.getPlayer(), gm); } for(FightPlayer fightPlayer: Fight.getRedTeam().getPlayers()){ - fightPlayer.getPlayer().setGameMode(gm); + Fight.setPlayerGamemode(fightPlayer.getPlayer(), gm); } } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java b/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java index ffa907b..6470089 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/fight/Fight.java @@ -1,7 +1,9 @@ package de.steamwar.fightsystem.fight; import de.steamwar.fightsystem.Config; +import de.steamwar.fightsystem.FightSystem; import org.bukkit.Bukkit; +import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -83,4 +85,26 @@ public class Fight { Fight.getRedTeam().replaceSync(Config.ReplaceBedrock, Material.BEDROCK, Material.SLIME_BLOCK); Fight.getBlueTeam().replaceSync(Config.ReplaceBedrock, Material.BEDROCK, Material.SLIME_BLOCK); } + + public static void setPlayerGamemode(Player player, GameMode gameMode) { + player.setGameMode(gameMode); + + if(gameMode == GameMode.SPECTATOR) { + for(Player currentPlayer : Bukkit.getServer().getOnlinePlayers()) { + if(currentPlayer.getUniqueId() != player.getUniqueId() && currentPlayer.getGameMode() == GameMode.SPECTATOR) { + currentPlayer.hidePlayer(FightSystem.getPlugin(), player); + player.hidePlayer(FightSystem.getPlugin(), currentPlayer); + } + } + } + + if(gameMode == GameMode.SURVIVAL) { + for(Player currentPlayer : Bukkit.getServer().getOnlinePlayers()) { + if(currentPlayer.getUniqueId() != player.getUniqueId() && currentPlayer.getGameMode() == GameMode.SPECTATOR) { + currentPlayer.showPlayer(FightSystem.getPlugin(), player); + player.showPlayer(FightSystem.getPlugin(), currentPlayer); + } + } + } + } } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java index 9326f21..8dc57cf 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java @@ -147,7 +147,7 @@ public class FightTeam implements IFightTeam{ invited.remove(player); team.addEntry(player.getName()); - player.setGameMode(GameMode.SURVIVAL); + Fight.setPlayerGamemode(player, GameMode.SURVIVAL); player.teleport(spawn); if(KitManager.getKits(false).size() > 1) player.getInventory().setItem(1, new ItemBuilder(Material.LEATHER_CHESTPLATE).removeAllAttributs().addEnchantment(Enchantment.DURABILITY, 1).setDisplayName("§eKit wählen").build()); @@ -167,7 +167,7 @@ public class FightTeam implements IFightTeam{ if(fightPlayer.equals(leader) && FightSystem.getFightState().setup()) setLeader(null); - player.setGameMode(GameMode.SPECTATOR); + Fight.setPlayerGamemode(player, GameMode.SPECTATOR); player.teleport(Config.SpecSpawn); TechHider.reloadChunks(player, chunksToReload); } diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerStateListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerStateListener.java index 6e3866e..2e68345 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerStateListener.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/PlayerStateListener.java @@ -40,14 +40,14 @@ public class PlayerStateListener extends BasicListener{ FightTeam fightTeam = Fight.getPlayerTeam(player); if (fightTeam == null) { - player.setGameMode(GameMode.SPECTATOR); + Fight.setPlayerGamemode(player, GameMode.SPECTATOR); player.teleport(Config.SpecSpawn); } else { player.teleport(fightTeam.getSpawn()); if(FightSystem.getFightState().setup()) - player.setGameMode(GameMode.SURVIVAL); + Fight.setPlayerGamemode(player, GameMode.SURVIVAL); else - player.setGameMode(GameMode.SPECTATOR); + Fight.setPlayerGamemode(player, GameMode.SPECTATOR); } } @@ -63,7 +63,7 @@ public class PlayerStateListener extends BasicListener{ Bukkit.broadcastMessage(FightSystem.PREFIX + "§cDer Spieler " + fightTeam.getPrefix() + player.getName() + " §cist gestorben!"); event.setDeathMessage(null); fightTeam.getFightPlayer(player).setOut(); - player.setGameMode(GameMode.SPECTATOR); + Fight.setPlayerGamemode(player, GameMode.SPECTATOR); player.teleport(fightTeam.getSpawn()); Fight.playSound(Countdown.getSound(SWSound.ENTITY_WITHER_DEATH), 100.0F, 1.0F); }