Fixed players being able to join while the arena is running

This commit is contained in:
Andreas Troelsen 2011-07-19 19:29:35 +02:00
parent 72cf8e6a42
commit efe88dbf85
5 changed files with 4 additions and 12 deletions

Binary file not shown.

View File

@ -59,7 +59,7 @@ public class Arena
protected List<ItemStack> entryFee; protected List<ItemStack> entryFee;
// Arena sets/maps // Arena sets/maps
protected Set<Player> arenaPlayers, lobbyPlayers, readyPlayers, specPlayers, waitPlayers, hasPaid, rewardedPlayers, notifyPlayers, randoms; protected Set<Player> arenaPlayers, lobbyPlayers, readyPlayers, specPlayers, hasPaid, rewardedPlayers, notifyPlayers, randoms;
protected Set<LivingEntity> monsters; protected Set<LivingEntity> monsters;
protected Set<Block> blocks; protected Set<Block> blocks;
protected Set<Wolf> pets; protected Set<Wolf> pets;
@ -103,7 +103,6 @@ public class Arena
notifyPlayers = new HashSet<Player>(); notifyPlayers = new HashSet<Player>();
readyPlayers = new HashSet<Player>(); readyPlayers = new HashSet<Player>();
specPlayers = new HashSet<Player>(); specPlayers = new HashSet<Player>();
waitPlayers = new HashSet<Player>();
rewardedPlayers = new HashSet<Player>(); rewardedPlayers = new HashSet<Player>();
hasPaid = new HashSet<Player>(); hasPaid = new HashSet<Player>();
monsters = new HashSet<LivingEntity>(); monsters = new HashSet<LivingEntity>();

View File

@ -152,7 +152,7 @@ public class MACommands implements CommandExecutor
error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ARENA_NOT_ENABLED)); error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ARENA_NOT_ENABLED));
else if (!arena.setup || arena.edit) else if (!arena.setup || arena.edit)
error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ARENA_NOT_SETUP)); error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ARENA_NOT_SETUP));
else if (arena.running && arena.waitPlayers.add(p)) else if (arena.running && arena.notifyPlayers.add(p))
error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ARENA_IS_RUNNING)); error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ARENA_IS_RUNNING));
else if (arena.arenaPlayers.contains(p)) else if (arena.arenaPlayers.contains(p))
error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ALREADY_PLAYING)); error = MAUtils.tellPlayer(p, MAMessages.get(Msg.JOIN_ALREADY_PLAYING));

View File

@ -80,7 +80,6 @@ public class MAListener implements ArenaListener
return; return;
Block b = event.getBlock(); Block b = event.getBlock();
//if (running && livePlayers.contains(event.getPlayer()))
if (arena.running && arena.arenaPlayers.contains(event.getPlayer())) if (arena.running && arena.arenaPlayers.contains(event.getPlayer()))
{ {
arena.blocks.add(b); arena.blocks.add(b);
@ -227,7 +226,6 @@ public class MAListener implements ArenaListener
} }
if (event.getReason() == TargetReason.CLOSEST_PLAYER) if (event.getReason() == TargetReason.CLOSEST_PLAYER)
//if (!livePlayers.contains(event.getTarget()))
if (!arena.arenaPlayers.contains(event.getTarget())) if (!arena.arenaPlayers.contains(event.getTarget()))
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -238,7 +236,6 @@ public class MAListener implements ArenaListener
{ {
if (!arena.running) return; if (!arena.running) return;
//if (!(event.getEntity() instanceof Player) || !livePlayers.contains((Player)event.getEntity()))
if (!(event.getEntity() instanceof Player) || !arena.arenaPlayers.contains((Player)event.getEntity())) if (!(event.getEntity() instanceof Player) || !arena.arenaPlayers.contains((Player)event.getEntity()))
return; return;
@ -252,7 +249,6 @@ public class MAListener implements ArenaListener
{ {
Player p = (Player) event.getEntity(); Player p = (Player) event.getEntity();
//if (!livePlayers.contains(p))
if (!arena.arenaPlayers.contains(p)) if (!arena.arenaPlayers.contains(p))
return; return;
@ -310,7 +306,6 @@ public class MAListener implements ArenaListener
// Damagee & Damager - Player - cancel if pvp disabled // Damagee & Damager - Player - cancel if pvp disabled
if (damagee instanceof Player && damager instanceof Player) if (damagee instanceof Player && damager instanceof Player)
{ {
//if (livePlayers.contains(damagee) && !pvp)
if (arena.arenaPlayers.contains(damagee) && !arena.pvp) if (arena.arenaPlayers.contains(damagee) && !arena.pvp)
event.setCancelled(true); event.setCancelled(true);
@ -329,7 +324,6 @@ public class MAListener implements ArenaListener
// Creeper detonations // Creeper detonations
if (arena.inRegion(damagee.getLocation())) if (arena.inRegion(damagee.getLocation()))
{ {
//if (!detDamage || !(damagee instanceof Player) || !livePlayers.contains((Player) damagee))
if (!arena.detDamage || !(damagee instanceof Player) || !arena.arenaPlayers.contains((Player) damagee)) if (!arena.detDamage || !(damagee instanceof Player) || !arena.arenaPlayers.contains((Player) damagee))
return; return;
@ -345,7 +339,6 @@ public class MAListener implements ArenaListener
if (arena.running && arena.shareInArena) return; if (arena.running && arena.shareInArena) return;
Player p = event.getPlayer(); Player p = event.getPlayer();
//if (!livePlayers.contains(p))
if (!arena.arenaPlayers.contains(p) && !arena.lobbyPlayers.contains(p)) if (!arena.arenaPlayers.contains(p) && !arena.lobbyPlayers.contains(p))
return; return;

View File

@ -901,7 +901,7 @@ public class MAUtils
* Sends a message to all players in and around the arena. * Sends a message to all players in and around the arena.
*/ */
public static void tellAll(Arena arena, String msg) { tellAll(arena, msg, false); } public static void tellAll(Arena arena, String msg) { tellAll(arena, msg, false); }
public static void tellAll(Arena arena, String msg, boolean waitPlayers) public static void tellAll(Arena arena, String msg, boolean notifyPlayers)
{ {
Set<Player> tmp = new HashSet<Player>(); Set<Player> tmp = new HashSet<Player>();
tmp.addAll(arena.arenaPlayers); tmp.addAll(arena.arenaPlayers);
@ -909,7 +909,7 @@ public class MAUtils
tmp.addAll(arena.readyPlayers); tmp.addAll(arena.readyPlayers);
tmp.addAll(arena.notifyPlayers); tmp.addAll(arena.notifyPlayers);
tmp.addAll(arena.specPlayers); tmp.addAll(arena.specPlayers);
if (waitPlayers) tmp.addAll(arena.waitPlayers); if (notifyPlayers) tmp.addAll(arena.notifyPlayers);
for (Player p : tmp) for (Player p : tmp)
tellPlayer(p, msg); tellPlayer(p, msg);
} }