Merge branch 'thanos-bug-fixes'
This commit is contained in:
commit
6cc33fd6c6
@ -14,7 +14,11 @@ 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.UtilParticle;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.types.ItemGadget;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
@ -40,6 +44,7 @@ public class ItemTNT extends ItemGadget
|
||||
public void ActivateCustom(Player player)
|
||||
{
|
||||
TNTPrimed tnt = player.getWorld().spawn(player.getEyeLocation().add(player.getLocation().getDirection()), TNTPrimed.class);
|
||||
tnt.setYield(0.0F); // Added in order to prevent water from being evaporated.
|
||||
UtilAction.velocity(tnt, player.getLocation().getDirection(), 0.6, false, 0, 0.2, 1, false);
|
||||
_tnt.add(tnt);
|
||||
|
||||
@ -58,7 +63,7 @@ public class ItemTNT extends ItemGadget
|
||||
|
||||
HashMap<Player, Double> players = UtilPlayer.getInRadius(event.getLocation(), 10);
|
||||
for (Player player : players.keySet())
|
||||
{
|
||||
{
|
||||
if (Manager.collideEvent(this, player))
|
||||
continue;
|
||||
|
||||
@ -67,6 +72,9 @@ public class ItemTNT extends ItemGadget
|
||||
//Knockback
|
||||
UtilAction.velocity(player, UtilAlg.getTrajectory(event.getLocation(), player.getLocation()), 3 * mult, false, 0, 0.5 + 2 * mult, 10, true);
|
||||
}
|
||||
|
||||
// Simulating explosion to prevent water from being evaporated.
|
||||
UtilParticle.PlayParticle(ParticleType.HUGE_EXPLOSION, event.getLocation(), 0, 0, 0, 0, 1, ViewDist.NORMAL, UtilServer.getPlayers());
|
||||
}
|
||||
|
||||
|
||||
|
@ -10,11 +10,11 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftArrow;
|
||||
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Arrow;
|
||||
@ -277,7 +277,7 @@ public class MineStrike extends TeamGame
|
||||
//"Tap Crouch when close to an ally to Boost",
|
||||
"Open Inventory at spawn to buy guns",
|
||||
"Hold Right-Click to Plant Bomb",
|
||||
"Look at the Bomb to Defuse Bomb",
|
||||
"Look at the Bomb to Defuse it",
|
||||
"Moving decreases accuracy",
|
||||
"Sprinting heavily decreases accuracy",
|
||||
"Jumping massively decreases accuracy",
|
||||
@ -716,6 +716,7 @@ public class MineStrike extends TeamGame
|
||||
return;
|
||||
|
||||
Grenade grenade = getGrenadeInHand(event.getPlayer(), null);
|
||||
|
||||
if (grenade == null)
|
||||
return;
|
||||
|
||||
@ -1519,9 +1520,25 @@ public class MineStrike extends TeamGame
|
||||
if (!UtilGear.isMat(player.getItemInHand(), Material.GOLD_SWORD))
|
||||
return;
|
||||
|
||||
// Fixed bomb able to be planted after the round is over.
|
||||
if (_roundOver)
|
||||
{
|
||||
UtilPlayer.message(player, F.main("Game", "You cannot plant the bomb once the round is over."));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// Added a small tip for players that are trying to right-click with the bomb.
|
||||
if (UtilEvent.isAction(event, ActionType.L))
|
||||
{
|
||||
UtilPlayer.message(player, F.main("Game", "You must " + F.elem("Right-Click") + " while holding the bomb to plant it."));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!UtilEnt.isGrounded(player))
|
||||
{
|
||||
UtilPlayer.message(player, F.main("Game", "You can only plant Bomb on the ground!"));
|
||||
UtilPlayer.message(player, F.main("Game", "You can only plant the bomb on the ground."));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -1529,7 +1546,7 @@ public class MineStrike extends TeamGame
|
||||
//Should never occur with 1 Bomb
|
||||
if (_bombPlanter != null)
|
||||
{
|
||||
UtilPlayer.message(player, F.main("Game", "Someone else is planting Bomb..."));
|
||||
UtilPlayer.message(player, F.main("Game", "Someone else is planting the bomb."));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -1548,7 +1565,7 @@ public class MineStrike extends TeamGame
|
||||
//Too Far
|
||||
if (!near)
|
||||
{
|
||||
UtilPlayer.message(player, F.main("Game", "You can only plant Bomb at a bomb site!"));
|
||||
UtilPlayer.message(player, F.main("Game", "You can only plant the bomb at a bomb site."));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -1556,7 +1573,7 @@ public class MineStrike extends TeamGame
|
||||
_bombPlanter = player;
|
||||
_bombPlanter.setExp(0f);
|
||||
|
||||
UtilPlayer.message(player, F.main("Game", "You are placing the Bomb."));
|
||||
UtilPlayer.message(player, F.main("Game", "You are now placing the bomb."));
|
||||
|
||||
//Radio
|
||||
playSound(Radio.T_BOMB_PLANT, null, GetTeam(_bombPlanter));
|
||||
@ -1568,6 +1585,10 @@ public class MineStrike extends TeamGame
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
// Added to check if the round is over when a bomb is being planted.
|
||||
if (_roundOver)
|
||||
return;
|
||||
|
||||
if (_bombPlanter == null)
|
||||
return;
|
||||
|
||||
@ -1937,6 +1958,7 @@ public class MineStrike extends TeamGame
|
||||
for (Player player : UtilServer.getPlayers())
|
||||
{
|
||||
player.playSound(player.getLocation(), Sound.LEVEL_UP, 1f, 1f);
|
||||
removeScope(player);
|
||||
|
||||
Recharge.Instance.Reset(player, "reload");
|
||||
}
|
||||
@ -2838,4 +2860,28 @@ public class MineStrike extends TeamGame
|
||||
{
|
||||
return _freezeTime > 0;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void cancelFireExtinguish(PlayerInteractEvent event)
|
||||
{
|
||||
// This is an extra event added in order to prevent players from
|
||||
// extinguishing fire that gets generated from moltovs and incendiary grenades.
|
||||
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
if (UtilEvent.isAction(event, ActionType.L_BLOCK))
|
||||
{
|
||||
Block block = event.getClickedBlock();
|
||||
|
||||
for (BlockFace face : BlockFace.values())
|
||||
{
|
||||
if (block.getRelative(face).getType() == Material.FIRE)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import nautilus.game.arcade.game.games.minestrike.items.guns.Gun;
|
||||
import nautilus.game.arcade.game.games.minestrike.items.guns.GunStats;
|
||||
import nautilus.game.arcade.game.games.minestrike.items.guns.Shotgun;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.GameMode;
|
||||
@ -46,7 +47,7 @@ public class ShopManager
|
||||
}
|
||||
|
||||
public void enterShop(Player player)
|
||||
{
|
||||
{
|
||||
GameTeam team = Host.GetTeam(player);
|
||||
if (team == null)
|
||||
return;
|
||||
@ -101,14 +102,13 @@ public class ShopManager
|
||||
public void addItem(StrikeItem item, Player player, int slot)
|
||||
{
|
||||
player.getInventory().setItem(slot, item.getShopItem(getMoney(player), hasItem(player, item)));
|
||||
|
||||
_shop.get(player).put(slot, item);
|
||||
}
|
||||
|
||||
public boolean hasItem(Player player, StrikeItem item)
|
||||
{
|
||||
|
||||
int count = 0;
|
||||
|
||||
for (int i=0 ; i<9 ; i++)
|
||||
{
|
||||
if (UtilGear.isMat(player.getInventory().getItem(i), item.getSkin()))
|
||||
@ -286,7 +286,7 @@ public class ShopManager
|
||||
}
|
||||
|
||||
public void update()
|
||||
{
|
||||
{
|
||||
for (Player player : Host.GetPlayers(false))
|
||||
{
|
||||
GameTeam team = Host.GetTeam(player);
|
||||
|
@ -3,7 +3,6 @@ package nautilus.game.arcade.game.games.minestrike.items.grenades;
|
||||
import java.util.HashMap;
|
||||
|
||||
import mineplex.core.common.util.UtilBlock;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
@ -12,6 +11,7 @@ import nautilus.game.arcade.game.GameTeam;
|
||||
import nautilus.game.arcade.game.games.minestrike.MineStrike;
|
||||
import nautilus.game.arcade.game.games.minestrike.Radio;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -39,7 +39,10 @@ public abstract class FireGrenadeBase extends Grenade
|
||||
@Override
|
||||
public boolean updateCustom(MineStrike game, Entity ent)
|
||||
{
|
||||
if (UtilEnt.isGrounded(ent))
|
||||
// Fixed grenade effect not being activated when thrown in the ground.
|
||||
// Looks like ent.isOnGround() worked, while we previously used UtilEnt.isGrounded(ent).
|
||||
|
||||
if (ent.isOnGround())
|
||||
{
|
||||
createFire(game, ent.getLocation());
|
||||
|
||||
@ -76,7 +79,10 @@ public abstract class FireGrenadeBase extends Grenade
|
||||
public void run()
|
||||
{
|
||||
if (round == game.getRound() && !game.isFreezeTime())
|
||||
game.Manager.GetBlockRestore().Add(block, 51, (byte)0, (long) (_baseTime + blocks.get(block) * _baseTime));
|
||||
{
|
||||
double time = _baseTime + blocks.get(block) * _baseTime;
|
||||
game.Manager.GetBlockRestore().Add(block, 51, (byte)0, (long) time);
|
||||
}
|
||||
}
|
||||
}, 60 - (int)(60d * blocks.get(block)));
|
||||
}
|
||||
|
@ -130,7 +130,7 @@ public abstract class Grenade extends StrikeItem
|
||||
}
|
||||
|
||||
public void throwGrenade(Player player, boolean wasLeftClick, MineStrike game)
|
||||
{
|
||||
{
|
||||
player.setItemInHand(null);
|
||||
|
||||
_thrower = player;
|
||||
|
@ -15,9 +15,12 @@ import mineplex.core.common.util.MapUtil;
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.common.util.UtilBlockText;
|
||||
import mineplex.core.common.util.UtilBlockText.TextAlign;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilFirework;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
@ -1298,7 +1301,7 @@ public class GameLobbyManager implements Listener, IPacketHandler
|
||||
|
||||
if (Manager.GetGame().GetState() == GameState.Live)
|
||||
return;
|
||||
|
||||
|
||||
event.blockList().clear();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user