Bug fixes
This commit is contained in:
parent
1b3d7f1c20
commit
9e07be51c7
@ -1,29 +1,42 @@
|
||||
package nautilus.game.arcade.game.games.lobbers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilAlg;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.explosion.ExplosionEvent;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.GameType;
|
||||
import nautilus.game.arcade.events.GameStateChangeEvent;
|
||||
import nautilus.game.arcade.game.GameTeam;
|
||||
import nautilus.game.arcade.game.TeamGame;
|
||||
import nautilus.game.arcade.game.games.lobbers.kits.KitCannoneer;
|
||||
import nautilus.game.arcade.game.games.lobbers.kits.KitJumper;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.TNTPrimed;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
|
||||
@ -40,7 +53,7 @@ public class BombLobbers extends TeamGame
|
||||
{
|
||||
super(manager, GameType.Lobbers, new Kit[]
|
||||
{
|
||||
new KitCannoneer(manager)
|
||||
new KitJumper(manager)
|
||||
}, new String[]
|
||||
{
|
||||
"Throw TNT to blow up your enemies!",
|
||||
@ -56,6 +69,11 @@ public class BombLobbers extends TeamGame
|
||||
|
||||
TeamArmor = true;
|
||||
TeamArmorHotbar = true;
|
||||
|
||||
InventoryOpenChest = false;
|
||||
InventoryOpenBlock = false;
|
||||
|
||||
HungerSet = 20;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -70,10 +88,12 @@ public class BombLobbers extends TeamGame
|
||||
}
|
||||
}
|
||||
|
||||
//Skywars code
|
||||
@EventHandler
|
||||
public void throwTNT(PlayerInteractEvent event)
|
||||
{
|
||||
if (event.getAction() == Action.PHYSICAL)
|
||||
return;
|
||||
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
@ -154,7 +174,94 @@ public class BombLobbers extends TeamGame
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Doesn't seem to work for some reason
|
||||
@EventHandler
|
||||
public void removeLiquids(EntityExplodeEvent event)
|
||||
{
|
||||
System.out.println("EXPLOSION EVENT CALLED FROM ENTITYEXPLODEEVENT");
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
Iterator<Block> iterator = event.blockList().iterator();
|
||||
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
if (iterator.next().isLiquid())
|
||||
{
|
||||
System.out.println("REMOVED A LIQUID FROM THE EXPLOSION");
|
||||
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void removeLiquids2(ExplosionEvent event)
|
||||
{
|
||||
System.out.println("EXPLOSION EVENT CALLED FROM EXPLOSIONEVENT");
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
Iterator<Block> iterator = event.GetBlocks().iterator();
|
||||
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
if (iterator.next().isLiquid())
|
||||
{
|
||||
System.out.println("REMOVED A LIQUID FROM THE EXPLOSION");
|
||||
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void updateParticles(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
for (Entry<TNTPrimed, GameTeam> tnt : _teams.entrySet())
|
||||
{
|
||||
if (tnt.getKey() != null && tnt.getKey().isValid() && !tnt.getKey().isOnGround())
|
||||
{
|
||||
if (tnt.getValue().GetColor() == ChatColor.AQUA)
|
||||
{
|
||||
UtilParticle.PlayParticle(ParticleType.RED_DUST, tnt.getKey().getLocation().clone().add(0.0, 0.5, 0.0), -1, -1, 1, 1, 0,
|
||||
ViewDist.LONG, UtilServer.getPlayers());
|
||||
}
|
||||
else
|
||||
{
|
||||
UtilParticle.PlayParticle(ParticleType.RED_DUST, tnt.getKey().getLocation().clone().add(0.0, 0.5, 0.0), 0.0F, 0.0F, 0.0F, 0.0F, 3, ViewDist.LONG, UtilServer.getPlayers());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void preventCheating(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
for (Player player : GetPlayers(true))
|
||||
{
|
||||
if (GetTeam(player) != getSide(player.getLocation()))
|
||||
{
|
||||
player.damage(500);
|
||||
UtilPlayer.message(player, F.main("Game", "You were killed for trying to cheat!"));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private GameTeam getSide(Location entityLoc)
|
||||
{
|
||||
Location nearest = UtilAlg.findClosest(entityLoc, new ArrayList<Location>(_averageSpawns.values()));
|
||||
|
@ -6,22 +6,23 @@ import nautilus.game.arcade.game.games.lobbers.kits.perks.PerkCraftman;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
import nautilus.game.arcade.kit.KitAvailability;
|
||||
import nautilus.game.arcade.kit.Perk;
|
||||
import nautilus.game.arcade.kit.perks.PerkDoubleJump;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class KitCannoneer extends Kit
|
||||
public class KitJumper extends Kit
|
||||
{
|
||||
|
||||
public KitCannoneer(ArcadeManager manager)
|
||||
public KitJumper(ArcadeManager manager)
|
||||
{
|
||||
super(manager, "Cannoneer", KitAvailability.Free, 0, new String[]
|
||||
super(manager, "Jumper", KitAvailability.Free, 0, new String[]
|
||||
{
|
||||
"Once the ammunitions expert for",
|
||||
"pirates, explosives are his specialty."
|
||||
"Use your jumping abilities to leap away from trouble!"
|
||||
}, new Perk[]
|
||||
{
|
||||
new PerkDoubleJump("Double Jump", 1.2, 1.2, false, 6000, true),
|
||||
new PerkCraftman()
|
||||
}, EntityType.ZOMBIE, new ItemBuilder(Material.TNT).build());
|
||||
}
|
||||
@ -32,4 +33,4 @@ public class KitCannoneer extends Kit
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -36,7 +36,7 @@ public class PerkCraftman extends Perk
|
||||
if (!_recharge.usable(player, "TNT Give"))
|
||||
continue;
|
||||
|
||||
_recharge.use(player, "TNT Give", 2000, false, false);
|
||||
_recharge.use(player, "TNT Give", rechargeSeconds(), false, false);
|
||||
|
||||
//Has 4
|
||||
if (UtilInv.contains(player, Material.TNT, (byte) 0, 4))
|
||||
@ -45,5 +45,19 @@ public class PerkCraftman extends Perk
|
||||
UtilInv.insert(player, new ItemBuilder(Material.TNT).setTitle(C.cGreen + "Throwing TNT").build());
|
||||
}
|
||||
}
|
||||
|
||||
public long rechargeSeconds()
|
||||
{
|
||||
if (!Manager.GetGame().IsLive())
|
||||
return 0;
|
||||
|
||||
if (Manager.GetGame().getGameLiveTime() > 60000)
|
||||
return 2000;
|
||||
|
||||
if (Manager.GetGame().getGameLiveTime() > 30000)
|
||||
return 3000;
|
||||
|
||||
return 4000;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user