- Some fixes

This commit is contained in:
AlexTheCoder 2015-09-19 16:38:07 -04:00
parent 3a1acb9f37
commit 05f47be864
2 changed files with 40 additions and 10 deletions

View File

@ -45,6 +45,7 @@ import net.minecraft.server.v1_7_R4.PacketPlayOutEntityEquipment;
import net.minecraft.server.v1_7_R4.PacketPlayOutSetSlot;
import net.minecraft.server.v1_7_R4.PacketPlayOutWindowItems;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.DyeColor;
import org.bukkit.Location;
@ -268,6 +269,7 @@ public class CaptureTheFlag extends TeamGame
/*ItemDropAllow.add(Material.REDSTONE_BLOCK.getId());
ItemDropAllow.add(Material.LAPIS_BLOCK.getId());*/
CreatureAllowOverride = true;
for (GameTeam team : GetTeamList())
{
@ -281,8 +283,6 @@ public class CaptureTheFlag extends TeamGame
if (this instanceof ChampionsCTF)
{
CreatureAllowOverride = true;
for (int i = 0; i < GetKits().length && i < WorldData.GetDataLocs("LIGHT_BLUE").size() && i < WorldData.GetDataLocs("PINK").size(); i++)
{
Entity ent = GetKits()[i].SpawnEntity(WorldData.GetDataLocs("PINK").get(i));
@ -291,9 +291,14 @@ public class CaptureTheFlag extends TeamGame
ent = GetKits()[i].SpawnEntity(WorldData.GetDataLocs("LIGHT_BLUE").get(i));
Manager.GetLobby().AddKitLocation(ent, GetKits()[i], WorldData.GetDataLocs("LIGHT_BLUE").get(i));
}
CreatureAllowOverride = false;
}
Bukkit.getScheduler().runTaskLater(getArcadeManager().getPlugin(), new Runnable(){
@Override
public void run()
{
CreatureAllowOverride = false;
}}, 20 * 5);
//End kit spawning
}
@ -784,4 +789,13 @@ public class CaptureTheFlag extends TeamGame
}
}
}
@EventHandler
public void flagDamage(CustomDamageEvent event)
{
if (event.GetDamageeEntity() != null)
for (Flag f : _flags)
if (f.isFlagEntity(event.GetDamageeEntity()))
event.SetCancelled("Flag Entity");
}
}

View File

@ -9,6 +9,7 @@ import mineplex.core.common.util.UtilTextBottom;
import mineplex.core.common.util.UtilTextMiddle;
import mineplex.core.common.util.UtilTime;
import mineplex.core.disguise.disguises.DisguiseArmorStand;
import mineplex.core.disguise.disguises.DisguiseBase;
import mineplex.core.hologram.Hologram;
import mineplex.core.recharge.Recharge;
import nautilus.game.arcade.game.GameTeam;
@ -19,6 +20,7 @@ import org.bukkit.FireworkEffect;
import org.bukkit.FireworkEffect.Type;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@ -48,6 +50,7 @@ public class Flag
private String _displayName;
private LivingEntity _flagEntity;
private DisguiseBase _disguise;
public Flag (CaptureTheFlag host, Location spawn, GameTeam team)
{
@ -71,7 +74,7 @@ public class Flag
_name = new Hologram(Host.getArcadeManager().getHologramManager(), spawn, team.GetColor() + team.GetName() + "'s Flag".replace("s's", "s'"));
_time = new Hologram(Host.getArcadeManager().getHologramManager(), spawn, "");
SpawnFlag(spawn, team.GetColor() == ChatColor.RED);
SpawnFlag(spawn, team.GetColor() == ChatColor.RED, true);
}
public GameTeam getTeam()
@ -105,6 +108,12 @@ public class Flag
return _displayName;
}
public boolean isFlagEntity(Entity e)
{
if (_flagEntity == null) return false;
return _flagEntity.getEntityId() == e.getEntityId();
}
private void AnnounceSteal(Player cap, boolean steal)
{
if (steal)
@ -130,6 +139,9 @@ public class Flag
public void Update()
{
if (_holding == null && _disguise != null)
Host.getArcadeManager().GetDisguise().updateDisguise(_disguise);
if (_moved)
{
if (_dropped)
@ -148,7 +160,7 @@ public class Flag
_moved = false;
_dropped = false;
SpawnFlag(_spawn, _team.GetColor() == ChatColor.RED);
SpawnFlag(_spawn, _team.GetColor() == ChatColor.RED, false);
AnnounceReturn();
@ -192,15 +204,18 @@ public class Flag
return ChatColor.RED;
}
public void SpawnFlag(Location loc, boolean red)
public void SpawnFlag(Location loc, boolean red, boolean initial)
{
if (!initial) Host.CreatureAllowOverride = true;
_current = loc;
_flagEntity = (LivingEntity) Host.getArcadeManager().GetCreature().SpawnEntity(loc, EntityType.CHICKEN);
UtilEnt.Vegetate(_flagEntity);
DisguiseArmorStand disguise = new DisguiseArmorStand(_flagEntity);
disguise.setInvisible(true);
disguise.setHelmet(_representation);
disguise.setBoots(_representation);
Host.getArcadeManager().GetDisguise().disguise(disguise, UtilServer.getPlayers());
_disguise = disguise;
if (!initial) Host.CreatureAllowOverride = false;
if (!_moved)
{
@ -222,6 +237,7 @@ public class Flag
private void DeleteFlag()
{
Host.getArcadeManager().GetDisguise().undisguise(_flagEntity);
_disguise = null;
_flagEntity.remove();
_current = null;
_flagEntity = null;
@ -292,7 +308,7 @@ public class Flag
{
Recharge.Instance.recharge(player, "Flag Pickup");
Recharge.Instance.use(player, "Flag Pickup", 3000, false, false);
SpawnFlag(player.getLocation(), _team.GetColor() == ChatColor.RED);
SpawnFlag(player.getLocation(), _team.GetColor() == ChatColor.RED, false);
AnnounceDrop(player);
_holding = null;
_dropped = true;
@ -333,7 +349,7 @@ public class Flag
_dropped = false;
_dropTime = 0;
_holding = null;
SpawnFlag(_spawn, _team.GetColor() == ChatColor.RED);
SpawnFlag(_spawn, _team.GetColor() == ChatColor.RED, false);
}
}
}