diff --git a/FightSystem_API/src/de/steamwar/fightsystem/Config.java b/FightSystem_API/src/de/steamwar/fightsystem/Config.java index 43db7ba..5510486 100644 --- a/FightSystem_API/src/de/steamwar/fightsystem/Config.java +++ b/FightSystem_API/src/de/steamwar/fightsystem/Config.java @@ -140,6 +140,7 @@ public class Config { public static final int EventTeamRedID; public static final boolean BothTeamsPublic; public static final int MaximumTeamMembers; + public static final boolean SpectateSystem; //check parameter public static final int CheckSchemID; @@ -370,6 +371,7 @@ public class Config { OnlyPublicSchematics = event.publicSchemsOnly(); MaximumTeamMembers = event.getMaximumTeamMembers(); } + SpectateSystem = event.spectateSystem(); }else{ //No event TeamRedName = config.getString("Output.TeamRedName"); @@ -379,6 +381,7 @@ public class Config { EventTeamRedID = 0; BothTeamsPublic = true; MaximumTeamMembers = Integer.MAX_VALUE; + SpectateSystem = false; } String blueLeader = System.getProperty("blueLeader", null); diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java index 23a4a31..73284cd 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/EventJoinListener.java @@ -29,6 +29,7 @@ import de.steamwar.sql.SteamwarUser; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerQuitEvent; import java.util.EnumSet; @@ -39,6 +40,21 @@ public class EventJoinListener extends BasicListener { super(Config.event() ? EnumSet.of(FightState.PRE_LEADER_SETUP, FightState.PRE_SCHEM_SETUP, FightState.POST_SCHEM_SETUP) : EnumSet.noneOf(FightState.class)); } + @EventHandler + public void playerLogin(PlayerLoginEvent event) { + if(!Config.SpectateSystem) + return; + + Player player = event.getPlayer(); + SteamwarUser user = SteamwarUser.get(player.getUniqueId()); + if(user.getTeam() == Config.EventTeamBlueID || + user.getTeam() == Config.EventTeamRedID || + user.getId() == FightSystem.getEventFight().getKampfleiter()) + return; + + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "§cDu bist kein Kampfteilnehmer"); + } + @EventHandler public void handlePlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer();