diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java index 87efca5ee..0d052332f 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/turfforts/TurfForts.java @@ -16,13 +16,16 @@ import org.bukkit.craftbukkit.v1_7_R4.entity.CraftArrow; import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; import org.bukkit.entity.Arrow; import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; +import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityShootBowEvent; +import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.entity.ProjectileHitEvent; @@ -268,7 +271,7 @@ public class TurfForts extends TeamGame EndCheck(); } } - + @EventHandler public void BowCancel(EntityShootBowEvent event) { @@ -280,12 +283,13 @@ public class TurfForts extends TeamGame ((Player) event.getEntity()).updateInventory(); } } - - @EventHandler + + @EventHandler(ignoreCancelled = true) public void BlockPlace(BlockPlaceEvent event) { - if (event.isCancelled()) - return; + //Remoeved and replaced by ignoreCancelled = true + //if (event.isCancelled()) + // return; GameTeam team = GetTeam(event.getPlayer()); if (team == null) @@ -324,6 +328,7 @@ public class TurfForts extends TeamGame event.setCancelled(true); return; } + } @EventHandler @@ -331,7 +336,7 @@ public class TurfForts extends TeamGame { if (event.getEntity().getShooter() == null) return; - + if (!(event.getEntity() instanceof Arrow)) return; @@ -347,6 +352,7 @@ public class TurfForts extends TeamGame Manager.getPlugin().getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), new Runnable() { + public void run() { try @@ -366,21 +372,22 @@ public class TurfForts extends TeamGame int z = fieldZ.getInt(entityArrow); Block block = arrow.getWorld().getBlockAt(x, y, z); - + if (block.getTypeId() == 35) { - if (block.getData() == 14 && team.GetColor() != ChatColor.RED) + if (block.getData() == 14 /* && team.GetColor() != ChatColor.RED */) { block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, Material.REDSTONE_BLOCK.getId()); } - else if (block.getData() == 3 && team.GetColor() != ChatColor.AQUA) + else if (block.getData() == 3 /* && team.GetColor() != ChatColor.AQUA */) { block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, Material.LAPIS_BLOCK.getId()); } - + Bukkit.getPluginManager().callEvent(new ShredBlockEvent(block, arrow)); - - block.breakNaturally(); + + + block.setType(Material.AIR); } arrow.remove(); @@ -655,7 +662,8 @@ public class TurfForts extends TeamGame } } } - + + /* @EventHandler public void ItemRemoval(UpdateEvent event) { @@ -674,7 +682,38 @@ public class TurfForts extends TeamGame ent.remove(); } } + */ + + //Added by TheMineBench. + @EventHandler + public void blockBreak(BlockBreakEvent event) { + + Block block = event.getBlock(); + + GameTeam team = GetTeam(event.getPlayer()); + GameTeam otherTeam = GetOtherTeam(team); + if (block.getType().equals(Material.WOOL) && (block.getData() == 14 && team.GetColor() != ChatColor.RED || block.getData() == 3 || team.GetColor() != ChatColor.AQUA)) + { + UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot break the " + F.elem(otherTeam.GetColor() + otherTeam.GetName()) + " team's blocks!")); + event.setCancelled(true); + return; + } + + + } + + public GameTeam GetOtherTeam(GameTeam team) { + return team.GetColor() == ChatColor.RED ? GetTeam(ChatColor.AQUA) : GetTeam(ChatColor.RED); + } + + @EventHandler + public void onItem(ItemSpawnEvent e) { + if (e.getEntityType().equals(EntityType.DROPPED_ITEM)) { + e.setCancelled(true); + } + } + @Override public void EndCheck() { @@ -704,7 +743,7 @@ public class TurfForts extends TeamGame if (player.isOnline()) AddGems(player, 10, "Participation", false, false); } - + //End SetState(GameState.End); }