Don't add rejoin data if the player moves to the hub

This commit is contained in:
Sam 2018-08-05 21:40:49 +01:00 committed by Alexander Meech
parent f93d873ad5
commit 6ae95648c7
1 changed files with 21 additions and 2 deletions

View File

@ -18,6 +18,7 @@ import org.bukkit.inventory.ItemStack;
import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilServer;
import mineplex.core.game.rejoin.GameRejoinManager; import mineplex.core.game.rejoin.GameRejoinManager;
import mineplex.core.portal.events.ServerTransferEvent;
import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.GameTeam;
@ -64,6 +65,7 @@ public class RejoinModule extends Module
{ {
getGame().QuitOut = true; getGame().QuitOut = true;
_rejoinData.clear(); _rejoinData.clear();
_manager.searchToRejoin();
} }
@EventHandler @EventHandler
@ -77,6 +79,17 @@ public class RejoinModule extends Module
_disallow.add(event.getPlayer()); _disallow.add(event.getPlayer());
} }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void playerTransfer(ServerTransferEvent event)
{
if (!isEnabled())
{
return;
}
_disallow.add(event.getPlayer());
}
@EventHandler(priority = EventPriority.LOW) @EventHandler(priority = EventPriority.LOW)
public void playerQuit(PlayerQuitEvent event) public void playerQuit(PlayerQuitEvent event)
{ {
@ -86,9 +99,15 @@ public class RejoinModule extends Module
} }
Player player = event.getPlayer(); Player player = event.getPlayer();
if (_disallow.remove(player) || player.isDead() || !player.getWorld().equals(getGame().WorldData.World))
{
return;
}
GameTeam team = getGame().GetTeam(player); GameTeam team = getGame().GetTeam(player);
if (team == null || !team.IsAlive(player) || getGame().QuitOut || player.isDead() || _disallow.remove(player) || !player.getWorld().equals(getGame().WorldData.World)) if (team == null || !team.IsAlive(player))
{ {
return; return;
} }
@ -181,7 +200,7 @@ public class RejoinModule extends Module
private boolean isEnabled() private boolean isEnabled()
{ {
return !getGame().getArcadeManager().GetGameHostManager().isPrivateServer() && getGame().InProgress(); return !getGame().getArcadeManager().GetGameHostManager().isPrivateServer() && getGame().InProgress() && !getGame().QuitOut;
} }
public class PlayerGameInfo public class PlayerGameInfo