Rewrote teleport handling.

This commit is contained in:
Garbage Mule
2011-10-14 02:41:41 +02:00
parent 5165eda6df
commit fb678cc89f
3 changed files with 36 additions and 3 deletions
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
name: MobArena name: MobArena
main: com.garbagemule.MobArena.MobArena main: com.garbagemule.MobArena.MobArena
version: 0.94.3.18 version: 0.94.3.19
softdepend: [Spout,Permissions,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells] softdepend: [Spout,Permissions,MultiVerse,XcraftGate,Towny,Heroes,MagicSpells]
commands: commands:
ma: ma:
+34 -1
View File
@@ -625,6 +625,39 @@ public class MAListener implements ArenaListener
} }
public void onPlayerTeleport(PlayerTeleportEvent event) public void onPlayerTeleport(PlayerTeleportEvent event)
{
if (!arena.enabled || !arena.setup || arena.allowWarp || arena.edit)
return;
Location to = event.getTo();
Location from = event.getFrom();
Player p = event.getPlayer();
if (arena.inRegion(from))
{
// Covers the case in which both locations are in the arena.
if ((arena.inRegion(to) && arena.running) || isWarp(to) || to.equals(arena.locations.get(p)))
return;
MAUtils.tellPlayer(p, Msg.WARP_FROM_ARENA);
event.setCancelled(true);
}
else if (arena.inRegion(to))
{
if (isWarp(from) || to.equals(arena.locations.get(p)))
return;
MAUtils.tellPlayer(p, Msg.WARP_TO_ARENA);
event.setCancelled(true);
}
}
private boolean isWarp(Location l)
{
return l.equals(arena.arenaLoc) || l.equals(arena.lobbyLoc) || l.equals(arena.spectatorLoc);
}
/*public void onPlayerTeleport(PlayerTeleportEvent event)
{ {
if (!arena.running || arena.edit || !arena.enabled || !arena.setup || arena.allowWarp) if (!arena.running || arena.edit || !arena.enabled || !arena.setup || arena.allowWarp)
return; return;
@@ -668,7 +701,7 @@ public class MAListener implements ArenaListener
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
} }*/
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
{ {