- Spawn protection
This commit is contained in:
parent
4158c12227
commit
fe849576f7
@ -8,9 +8,11 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilAlg;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.common.util.UtilItem;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilTextMiddle;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
@ -54,6 +56,7 @@ import org.bukkit.entity.CreatureType;
|
||||
import org.bukkit.entity.Enderman;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -616,6 +619,62 @@ public class MinecraftLeague extends TeamGame
|
||||
}
|
||||
}
|
||||
|
||||
if (event.getType() == UpdateType.FASTER)
|
||||
{
|
||||
List<Location> redSpawns = WorldData.SpawnLocs.get("Red");
|
||||
List<Location> blueSpawns = WorldData.SpawnLocs.get("Blue");
|
||||
|
||||
for (Location rL : redSpawns)
|
||||
{
|
||||
for (LivingEntity near : UtilEnt.getInRadius(rL, 5).keySet())
|
||||
{
|
||||
if (!(near instanceof Player))
|
||||
continue;
|
||||
Player player = (Player)near;
|
||||
if (GetTeam(player).GetColor() == ChatColor.RED)
|
||||
continue;
|
||||
|
||||
Vector vec = UtilAlg.getTrajectory(rL, player.getLocation());
|
||||
|
||||
Location tpLoc = rL.add(vec.clone().multiply(8));
|
||||
tpLoc.setDirection(player.getLocation().getDirection());
|
||||
|
||||
//First tp out this combats hacked clients with anti-KB
|
||||
player.teleport(tpLoc);
|
||||
|
||||
//Then apply velocity as normal
|
||||
UtilAction.velocity(player, vec, 1.8, false, 0, 0.4, vec.length(), false);
|
||||
|
||||
player.playSound(player.getEyeLocation(), Sound.NOTE_PLING, 10F, 0.5F);
|
||||
}
|
||||
}
|
||||
|
||||
for (Location bL : blueSpawns)
|
||||
{
|
||||
for (LivingEntity near : UtilEnt.getInRadius(bL, 5).keySet())
|
||||
{
|
||||
if (!(near instanceof Player))
|
||||
continue;
|
||||
Player player = (Player)near;
|
||||
if (GetTeam(player).GetColor() == ChatColor.AQUA)
|
||||
continue;
|
||||
|
||||
Vector vec = UtilAlg.getTrajectory(bL, player.getLocation());
|
||||
|
||||
Location tpLoc = bL.add(vec.clone().multiply(8));
|
||||
tpLoc.setDirection(player.getLocation().getDirection());
|
||||
|
||||
//First tp out this combats hacked clients with anti-KB
|
||||
player.teleport(tpLoc);
|
||||
|
||||
//Then apply velocity as normal
|
||||
UtilAction.velocity(player, vec, 1.8, false, 0, 0.4, vec.length(), false);
|
||||
|
||||
player.playSound(player.getEyeLocation(), Sound.NOTE_PLING, 10F, 0.5F);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (event.getType() == UpdateType.FASTEST)
|
||||
{
|
||||
for (TeamCrystal crystal : _crystals.values())
|
||||
|
Loading…
Reference in New Issue
Block a user