diff --git a/Plugins/BuildFiles/common.xml b/Plugins/BuildFiles/common.xml
index 8beee32bc..b3d93dde9 100644
--- a/Plugins/BuildFiles/common.xml
+++ b/Plugins/BuildFiles/common.xml
@@ -228,6 +228,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java
index 3da713838..65b29b87f 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/Hub.java
@@ -79,7 +79,6 @@ public class Hub extends JavaPlugin implements INautilusPlugin, IRelation
Portal portal = new Portal(this);
PartyManager partyManager = new PartyManager(this, clientManager);
new HubManager(this, clientManager, donationManager, new DisguiseManager(this, packetHandler), new TaskManager(this, GetWebServerAddress()), portal, partyManager);
- new Stacker(this);
new ServerManager(this, clientManager, donationManager, portal, partyManager, new ServerStatusManager(this, new LagMeter(this, clientManager)));
new Chat(this, clientManager);
new MemoryFix(this);
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java
index 98911bd0c..88de1b4f8 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/HubManager.java
@@ -8,44 +8,27 @@ import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
-import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.block.BlockFace;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer;
-import org.bukkit.entity.Chicken;
-import org.bukkit.entity.Cow;
import org.bukkit.entity.Egg;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
-import org.bukkit.entity.Pig;
import org.bukkit.entity.Player;
-import org.bukkit.entity.Sheep;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.event.block.BlockPlaceEvent;
-import org.bukkit.event.block.BlockSpreadEvent;
-import org.bukkit.event.block.LeavesDecayEvent;
import org.bukkit.event.entity.EntityDamageEvent;
-import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.ItemSpawnEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
-import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
-import org.bukkit.event.player.PlayerToggleFlightEvent;
import org.bukkit.event.server.ServerListPingEvent;
import org.bukkit.event.world.ChunkLoadEvent;
import org.bukkit.plugin.java.JavaPlugin;
@@ -58,9 +41,6 @@ import mineplex.core.account.CoreClientManager;
import mineplex.core.common.Rank;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
-import mineplex.core.common.util.UtilAction;
-import mineplex.core.common.util.UtilBlock;
-import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer;
@@ -73,8 +53,7 @@ import mineplex.core.portal.Portal;
import mineplex.core.task.TaskManager;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
-import mineplex.hub.modules.MapManager;
-import mineplex.hub.modules.MountManager;
+import mineplex.hub.modules.*;
import mineplex.hub.party.Party;
import mineplex.hub.party.PartyManager;
import mineplex.hub.tutorial.TutorialManager;
@@ -89,7 +68,8 @@ public class HubManager extends MiniClientPlugin
private TutorialManager _tutorialManager;
- private TextCreator _textCreator;
+ private TextManager _textCreator;
+ private ParkourManager _parkour;
private Location _spawn;
private int _scoreboardTick = 0;
@@ -103,7 +83,6 @@ public class HubManager extends MiniClientPlugin
private boolean _shuttingDown;
- private HashSet _mobs = new HashSet();
public HubManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, DisguiseManager disguiseManager, TaskManager taskManager, Portal portal, PartyManager partyManager)
{
@@ -116,11 +95,14 @@ public class HubManager extends MiniClientPlugin
_spawn = new Location(UtilWorld.getWorld("world"), 0.5, 74, 0.5);
- _textCreator = new TextCreator(this);
-
- new Dragon(this);
+ _textCreator = new TextManager(this);
+ _parkour = new ParkourManager(this, donationManager, taskManager);
+
new MountManager(this);
new MapManager(this);
+ new WorldManager(this);
+ new JumpManager(this);
+ new StackerManager(this);
_partyManager = partyManager;
_tutorialManager = new TutorialManager(this, donationManager, taskManager, _textCreator);
@@ -371,111 +353,18 @@ public class HubManager extends MiniClientPlugin
{
if (event.getCause() == DamageCause.VOID)
if (event.getEntity() instanceof Player)
+ {
+ event.getEntity().eject();
+ event.getEntity().leaveVehicle();
event.getEntity().teleport(GetSpawn());
+ }
+
else
event.getEntity().remove();
event.setCancelled(true);
}
- @EventHandler(priority = EventPriority.LOW)
- public void ItemPickup(PlayerPickupItemEvent event)
- {
- if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
- return;
-
- event.setCancelled(true);
- }
-
- @EventHandler(priority = EventPriority.LOW)
- public void ItemDrop(PlayerDropItemEvent event)
- {
- if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
- return;
-
- event.setCancelled(true);
- }
-
- @EventHandler
- public void BlockBreak(BlockBreakEvent event)
- {
- if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
- return;
-
- event.setCancelled(true);
- }
-
- @EventHandler
- public void LeaveDecay(LeavesDecayEvent event)
- {
- event.setCancelled(true);
- }
-
- @EventHandler
- public void BlockPlace(BlockPlaceEvent event)
- {
- if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
- return;
-
- event.setCancelled(true);
- }
-
- @EventHandler
- public void FlightHop(PlayerToggleFlightEvent event)
- {
- Player player = event.getPlayer();
-
- if (player.getGameMode() == GameMode.CREATIVE)
- return;
-
- event.setCancelled(true);
- player.setFlying(false);
-
- //Disable Flight
- player.setAllowFlight(false);
-
- //Velocity
- UtilAction.velocity(player, 1.4, 0.2, 1, true);
-
- //Sound
- player.playEffect(player.getLocation(), Effect.BLAZE_SHOOT, 0);
- }
-
- @EventHandler
- public void FlightUpdate(UpdateEvent event)
- {
- if (event.getType() != UpdateType.TICK)
- return;
-
- for (Player player : UtilServer.getPlayers())
- {
- if (player.getGameMode() == GameMode.CREATIVE)
- continue;
-
- if (UtilEnt.isGrounded(player) || UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN)))
- {
- player.setAllowFlight(true);
- player.setFlying(false);
- }
- }
- }
-
- @EventHandler
- public void BorderUpdate(UpdateEvent event)
- {
- if (event.getType() != UpdateType.SEC)
- return;
-
- for (Player player : UtilServer.getPlayers())
- {
- if (UtilMath.offset(player.getLocation(), GetSpawn()) > 200)
- {
- player.eject();
- player.leaveVehicle();
- player.teleport(GetSpawn());
- }
- }
- }
@EventHandler
public void FoodHealthUpdate(UpdateEvent event)
@@ -489,17 +378,6 @@ public class HubManager extends MiniClientPlugin
player.setFoodLevel(20);
}
}
-
- @EventHandler
- public void UpdateWeather(UpdateEvent event)
- {
- if (event.getType() != UpdateType.SEC)
- return;
-
- World world = UtilWorld.getWorld("world");
- world.setTime(6000);
- world.setStorm(false);
- }
@EventHandler
public void UpdateScoreboard(UpdateEvent event)
@@ -655,6 +533,11 @@ public class HubManager extends MiniClientPlugin
{
return _donationManager;
}
+
+ public ParkourManager GetParkour()
+ {
+ return _parkour;
+ }
public Location GetSpawn()
{
@@ -674,7 +557,7 @@ public class HubManager extends MiniClientPlugin
if (player.equals(other))
continue;
- if (UtilMath.offset(player.getLocation(), GetSpawn()) < 4 || _tutorialManager.InTutorial(other) || _tutorialManager.InTutorial(player) || player.getOpenInventory().getType() != InventoryType.CRAFTING)
+ if (UtilMath.offset(player.getLocation(), GetSpawn()) < 4 || _tutorialManager.InTutorial(other) || _tutorialManager.InTutorial(player) || (player.getOpenInventory().getType() != InventoryType.CRAFTING && player.getOpenInventory().getType() != InventoryType.CREATIVE))
{
((CraftPlayer)other).hidePlayer(player, true, false);
}
@@ -685,57 +568,4 @@ public class HubManager extends MiniClientPlugin
}
}
}
-
- @EventHandler
- public void SpawnAnimals(UpdateEvent event)
- {
- if (event.getType() != UpdateType.SLOW)
- return;
-
- Iterator entIterator = _mobs.iterator();
-
- while (entIterator.hasNext())
- {
- LivingEntity ent = entIterator.next();
-
- if (!ent.isValid())
- {
- ent.remove();
- entIterator.remove();
- }
- }
-
- if (_mobs.size() > 24)
- return;
-
- //Loc
- double r = Math.random();
-
- Location loc = GetSpawn();
-
- if (r > 0.75) loc.add(32, 0.5, 0);
- else if (r > 0.5) loc.add(0, 0.5, 32);
- else if (r > 0.25) loc.add(-32, 0.5, 0);
- else loc.add(0, 0.5, -32);
-
- //Spawn
- r = Math.random();
-
- if (r > 0.75) _mobs.add(loc.getWorld().spawn(loc, Cow.class));
- else if (r > 0.5) _mobs.add(loc.getWorld().spawn(loc, Pig.class));
- else if (r > 0.25) _mobs.add(loc.getWorld().spawn(loc, Sheep.class));
- else _mobs.add(loc.getWorld().spawn(loc, Chicken.class));
- }
-
- @EventHandler(priority = EventPriority.LOWEST)
- public void Explosion(EntityExplodeEvent event)
- {
- event.blockList().clear();
- }
-
- @EventHandler
- public void VineGrow(BlockSpreadEvent event)
- {
- event.setCancelled(true);
- }
}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/JumpManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/JumpManager.java
new file mode 100644
index 000000000..0c1c37cb5
--- /dev/null
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/JumpManager.java
@@ -0,0 +1,82 @@
+package mineplex.hub.modules;
+
+import org.bukkit.Effect;
+import org.bukkit.GameMode;
+import org.bukkit.block.BlockFace;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.player.PlayerToggleFlightEvent;
+import org.bukkit.util.Vector;
+
+import mineplex.core.MiniPlugin;
+import mineplex.core.common.util.F;
+import mineplex.core.common.util.UtilAction;
+import mineplex.core.common.util.UtilBlock;
+import mineplex.core.common.util.UtilEnt;
+import mineplex.core.common.util.UtilPlayer;
+import mineplex.core.common.util.UtilServer;
+import mineplex.core.updater.UpdateType;
+import mineplex.core.updater.event.UpdateEvent;
+import mineplex.hub.HubManager;
+
+public class JumpManager extends MiniPlugin
+{
+ public HubManager Manager;
+
+ public JumpManager(HubManager manager)
+ {
+ super("Double Jump", manager.GetPlugin());
+
+ Manager = manager;
+ }
+
+ @EventHandler
+ public void FlightHop(PlayerToggleFlightEvent event)
+ {
+ Player player = event.getPlayer();
+
+ if (player.getGameMode() == GameMode.CREATIVE)
+ return;
+
+ event.setCancelled(true);
+ player.setFlying(false);
+
+ //Disable Flight
+ player.setAllowFlight(false);
+
+ //Parkour Disable
+ if (Manager.GetParkour().InParkour(player))
+ {
+ UtilPlayer.message(player, F.main("Parkour", "You cannot Double Jump near Parkour Challenges."));
+ player.setVelocity(new Vector(0,0,0));
+ player.teleport(player.getLocation());
+ return;
+ }
+
+ //Velocity
+ UtilAction.velocity(player, 1.4, 0.2, 1, true);
+
+ //Sound
+ player.playEffect(player.getLocation(), Effect.BLAZE_SHOOT, 0);
+ }
+
+ @EventHandler
+ public void FlightUpdate(UpdateEvent event)
+ {
+ if (event.getType() != UpdateType.TICK)
+ return;
+
+ for (Player player : UtilServer.getPlayers())
+ {
+ if (player.getGameMode() == GameMode.CREATIVE)
+ continue;
+
+ if (UtilEnt.isGrounded(player) || UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN)))
+ {
+ player.setAllowFlight(true);
+ player.setFlying(false);
+ }
+ }
+ }
+
+}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourData.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourData.java
new file mode 100644
index 000000000..4fe8512c0
--- /dev/null
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourData.java
@@ -0,0 +1,39 @@
+package mineplex.hub.modules;
+
+import mineplex.core.common.util.F;
+import mineplex.core.common.util.UtilPlayer;
+
+import org.bukkit.Location;
+import org.bukkit.Sound;
+import org.bukkit.entity.Player;
+
+public class ParkourData
+{
+ public String Name;
+ public String[] Desc;
+ public int Gems;
+ public Location Location;
+ public double Distance;
+
+ public ParkourData(String name, String[] desc, int gems, Location loc, double dist)
+ {
+ Name = name;
+ Desc = desc;
+ Gems = gems;
+ Location = loc;
+ Distance = dist;
+ }
+
+ public void Inform(Player player)
+ {
+ //Inform
+ UtilPlayer.message(player, F.main("Parkour", "Welcome to the " + F.elem(Name) + " course."));
+
+ for (String cur : Desc)
+ {
+ UtilPlayer.message(player, " " + cur);
+ }
+
+ player.playSound(player.getLocation(), Sound.ORB_PICKUP, 1f, 2f);
+ }
+}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java
new file mode 100644
index 000000000..a16728243
--- /dev/null
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/ParkourManager.java
@@ -0,0 +1,236 @@
+package mineplex.hub.modules;
+
+import java.util.HashSet;
+import java.util.WeakHashMap;
+
+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.entity.LivingEntity;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
+import org.bukkit.event.player.PlayerInteractEntityEvent;
+
+import mineplex.core.MiniPlugin;
+import mineplex.core.common.util.C;
+import mineplex.core.common.util.Callback;
+import mineplex.core.common.util.F;
+import mineplex.core.common.util.UtilBlock;
+import mineplex.core.common.util.UtilEnt;
+import mineplex.core.common.util.UtilMath;
+import mineplex.core.common.util.UtilPlayer;
+import mineplex.core.common.util.UtilServer;
+import mineplex.core.common.util.UtilTime;
+import mineplex.core.donation.DonationManager;
+import mineplex.core.recharge.Recharge;
+import mineplex.core.task.TaskManager;
+import mineplex.core.updater.UpdateType;
+import mineplex.core.updater.event.UpdateEvent;
+import mineplex.hub.HubManager;
+
+public class ParkourManager extends MiniPlugin
+{
+ public HubManager Manager;
+
+ private HashSet _parkour = new HashSet();
+
+ private Location _lavaParkourReturn;
+ private WeakHashMap _lavaLocation = new WeakHashMap();
+ private WeakHashMap _lavaTimer = new WeakHashMap();
+
+ //Modules
+ protected DonationManager _donationManager;
+ protected TaskManager _taskManager;
+
+ public ParkourManager(HubManager manager, DonationManager donation, TaskManager task)
+ {
+ super("Parkour", manager.GetPlugin());
+
+ Manager = manager;
+
+ _taskManager = task;
+ _donationManager = donation;
+
+ _parkour.add(new ParkourData("Ruins Parkour", new String[]
+ {
+ "This is an extremely difficult parkour.",
+ "You will need to find the correct way through",
+ "the ruins, overcoming many challenging jumps.",
+ },
+ 4000, new Location(Manager.GetSpawn().getWorld(), 115,70,-10), 50));
+
+
+ _parkour.add(new ParkourData("Lava Parkour", new String[]
+ {
+ "This parkour is HOT! It's so hot that you",
+ "must keep sprinting for the entire course,",
+ "or you will die in flames!"
+ }, 1000, new Location(Manager.GetSpawn().getWorld(), -100,60,0), 50));
+
+ _lavaParkourReturn = new Location(Manager.GetSpawn().getWorld(), -89.5,68,36.5);
+ _lavaParkourReturn.setYaw(90);
+ }
+
+ public boolean InParkour(Player player)
+ {
+ for (ParkourData data : _parkour)
+ {
+ if (UtilMath.offset(player.getLocation(), data.Location) < data.Distance)
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ @EventHandler
+ public void BlockBreak(BlockBreakEvent event)
+ {
+ if (InParkour(event.getPlayer()))
+ {
+ event.getPlayer().teleport(Manager.GetSpawn());
+ UtilPlayer.message(event.getPlayer(), F.main("Parkour", "You cannot break blocks near parkour!"));
+ }
+ }
+
+ @EventHandler
+ public void LavaReturn(EntityDamageEvent event)
+ {
+ if (event.getCause() == DamageCause.LAVA)
+ if (event.getEntity() instanceof Player)
+ {
+ event.getEntity().eject();
+ event.getEntity().leaveVehicle();
+ event.getEntity().teleport(_lavaParkourReturn);
+ event.getEntity().setFireTicks(0);
+ }
+
+ else
+ event.getEntity().remove();
+
+ event.setCancelled(true);
+ }
+
+ @EventHandler
+ public void LavaBlockReturn(UpdateEvent event)
+ {
+ if (event.getType() != UpdateType.TICK)
+ return;
+
+ for (Player player : UtilServer.getPlayers())
+ {
+ if (!UtilEnt.isGrounded(player))
+ continue;
+
+ int id = player.getLocation().getBlock().getRelative(BlockFace.DOWN).getTypeId();
+ if (id != 0 && id != 112)
+ continue;
+
+ if (!_lavaLocation.containsKey(player) || UtilMath.offset(player.getLocation(), _lavaLocation.get(player)) > 1.5)
+ {
+ _lavaLocation.put(player, player.getLocation());
+ _lavaTimer.put(player, System.currentTimeMillis());
+ continue;
+ }
+
+ if (UtilTime.elapsed(_lavaTimer.get(player), 500))
+ {
+ boolean inCourse = false;
+ for (Block block : UtilBlock.getInRadius(player.getLocation(), 1.5).keySet())
+ {
+ if (block.getType() == Material.NETHER_BRICK)
+ {
+ inCourse = true;
+ break;
+ }
+ }
+
+ if (!inCourse)
+ continue;
+
+
+ _lavaLocation.remove(player);
+ _lavaTimer.remove(player);
+
+ player.eject();
+ player.leaveVehicle();
+ player.teleport(_lavaParkourReturn);
+ player.setFireTicks(0);
+
+ UtilPlayer.message(player, F.main("Parkour", "You cannot stop running during Lava Parkour!"));
+ }
+ }
+ }
+
+ @EventHandler
+ public void Finish(PlayerInteractEntityEvent event)
+ {
+ if (event.getRightClicked() == null)
+ return;
+
+ if (!(event.getRightClicked() instanceof LivingEntity))
+ return;
+
+ LivingEntity ent = (LivingEntity)event.getRightClicked();
+
+ if (ent.getCustomName() == null)
+ return;
+
+ //Start Message
+ if (ent.getCustomName().contains("Start"))
+ {
+ Player player = event.getPlayer();
+
+ for (ParkourData data : _parkour)
+ {
+ if (!ent.getCustomName().contains(data.Name))
+ continue;
+
+ data.Inform(player);
+ }
+ }
+
+ //Finish Message
+ if (ent.getCustomName().contains("Finish"))
+ {
+ final Player player = event.getPlayer();
+
+ if (Recharge.Instance.use(player, "Finish Parkour", 30000, false))
+ return;
+
+ for (ParkourData data : _parkour)
+ {
+ if (!ent.getCustomName().contains(data.Name))
+ continue;
+
+ //Inform
+ UtilPlayer.message(player, F.main("Parkour", "You completed " + F.elem(data.Name) + "."));
+
+ //Gems
+ if (!_taskManager.hasCompletedTask(player, data.Name))
+ {
+ final ParkourData fData = data;
+
+ _donationManager.RewardGems(new Callback()
+ {
+ public void run(Boolean completed)
+ {
+ UtilPlayer.message(player, F.main("Parkour", "You received " + F.elem(C.cGreen + fData.Gems + " Gems") + "."));
+
+ _taskManager.completedTask(player, fData.Name);
+
+ //Sound
+ player.playSound(player.getLocation(), Sound.LEVEL_UP, 2f, 1.5f);
+ }
+ }, player.getName(), data.Gems);
+ }
+ }
+ }
+ }
+}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/Stacker.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java
similarity index 88%
rename from Plugins/Mineplex.Hub/src/mineplex/hub/Stacker.java
rename to Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java
index d0e20e417..7a6abdf52 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/Stacker.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/StackerManager.java
@@ -1,4 +1,4 @@
-package mineplex.hub;
+package mineplex.hub.modules;
import java.util.HashSet;
@@ -15,7 +15,6 @@ import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
-import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.util.Vector;
import mineplex.core.MiniPlugin;
@@ -33,103 +32,115 @@ import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.projectile.IThrown;
import mineplex.core.projectile.ProjectileManager;
import mineplex.core.projectile.ProjectileUser;
+import mineplex.hub.HubManager;
-public class Stacker extends MiniPlugin implements IThrown
+public class StackerManager extends MiniPlugin implements IThrown
{
+ public HubManager Manager;
+
private ProjectileManager _projectileManager;
-
+
private HashSet _disabled = new HashSet();
private HashSet _tempStackShift = new HashSet();
-
- public Stacker(JavaPlugin plugin)
+
+ public StackerManager(HubManager manager)
{
- super("Stacker", plugin);
-
- _projectileManager = new ProjectileManager(plugin);
+ super("Stacker", manager.GetPlugin());
+
+ Manager = manager;
+
+ _projectileManager = new ProjectileManager(manager.GetPlugin());
}
-
+
@EventHandler
public void ToggleInvolvement(PlayerInteractEvent event)
{
Player player = event.getPlayer();
-
+
if (UtilGear.isMat(player.getItemInHand(), Material.GRILLED_PORK))
{
_disabled.add(player.getName());
UtilPlayer.message(player, F.main("Stacker", "You are no longer stackable... boring..."));
-
+
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.PORK, (byte)0, 1, C.cGreen + "Enable Stacker"));
UtilInv.Update(player);
-
+
event.setCancelled(true);
}
else if (UtilGear.isMat(player.getItemInHand(), Material.PORK))
{
_disabled.remove(player.getName());
UtilPlayer.message(player, F.main("Stacker", "You are back in the stacking games! Squeeeee!"));
-
+
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.GRILLED_PORK, (byte)0, 1, C.cRed + "Disable Stacker"));
UtilInv.Update(player);
-
+
event.setCancelled(true);
}
}
-
+
@EventHandler
public void PlayerJoin(PlayerJoinEvent event)
{
event.getPlayer().getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.GRILLED_PORK, (byte)0, 1, C.cRed + "Disable Stacker"));
}
-
+
@EventHandler
public void PlayerQuit(PlayerQuitEvent event)
{
_disabled.remove(event.getPlayer().getName());
_tempStackShift.remove(event.getPlayer());
}
-
+
@EventHandler
public void GrabEntity(PlayerInteractEntityEvent event)
{
if (event.isCancelled())
return;
-
+
Player stacker = event.getPlayer();
if (stacker.getGameMode() != GameMode.SURVIVAL)
return;
-
+
+ //Parkour Disable
+ if (Manager.GetParkour().InParkour(stacker))
+ {
+ UtilPlayer.message(stacker, F.main("Parkour", "You cannot Stack/Throw near Parkour Challenges."));
+ return;
+ }
+
if (_disabled.contains(stacker.getName()))
{
UtilPlayer.message(stacker, F.main("Stacker", "You are not playing stacker."));
return;
}
-
+
if (stacker.getVehicle() != null || _tempStackShift.contains(stacker))
{
UtilPlayer.message(stacker, F.main("Stacker", "You cannot stack while stacked..."));
return;
}
-
+
Entity stackee = event.getRightClicked();
if (stackee == null)
return;
-
+
if (!(stackee instanceof LivingEntity))
return;
-
+
if (stackee instanceof Horse)
return;
-
+
if (stackee instanceof Player && ((Player)stackee).getGameMode() != GameMode.SURVIVAL)
return;
-
+
if (stackee instanceof Player && _disabled.contains(((Player)stackee).getName()))
{
UtilPlayer.message(stacker, F.main("Stacker", F.name(UtilEnt.getName(stackee)) + " is not playing stacker."));
return;
}
-
+
if (stackee instanceof LivingEntity)
{
if (((LivingEntity)stackee).isCustomNameVisible())
@@ -138,54 +149,54 @@ public class Stacker extends MiniPlugin implements IThrown
return;
}
}
-
+
while (stackee.getVehicle() != null)
stackee = stackee.getVehicle();
-
+
if (stackee.equals(stacker))
return;
-
+
Entity top = stacker;
while (top.getPassenger() != null)
top = top.getPassenger();
-
+
top.setPassenger(stackee);
-
+
UtilPlayer.message(stacker, F.main("Stacker", "You stacked " + F.name(UtilEnt.getName(stackee) + ".")));
UtilPlayer.message(stackee, F.main("Stacker", "You were stacked by " + F.name(stacker.getName() + ".")));
UtilPlayer.message(stackee, F.main("Stacker", "Push " + F.skill("Crouch") + " to escape!"));
-
+
event.setCancelled(true);
}
-
+
@EventHandler
public void ThrowEntity(PlayerInteractEvent event)
{
if (!UtilEvent.isAction(event, ActionType.L))
return;
-
+
Player thrower = event.getPlayer();
-
+
if (thrower.getVehicle() != null)
return;
-
+
Entity throwee = thrower.getPassenger();
if (throwee == null)
return;
-
+
thrower.eject();
-
+
Entity throweeStack = throwee.getPassenger();
if (throweeStack != null)
{
throwee.eject();
throweeStack.leaveVehicle();
-
+
final Entity fThrower = thrower;
final Entity fThroweeStack = throweeStack;
-
+
_tempStackShift.add(throweeStack);
-
+
GetPlugin().getServer().getScheduler().scheduleSyncDelayedTask(GetPlugin(), new Runnable()
{
public void run()
@@ -195,21 +206,29 @@ public class Stacker extends MiniPlugin implements IThrown
}
}, 2);
}
-
+
+ //Parkour Disable
+ if (Manager.GetParkour().InParkour(thrower))
+ {
+ UtilPlayer.message(thrower, F.main("Parkour", "You cannot Stack/Throw near Parkour Challenges."));
+ UtilPlayer.message(throwee, F.main("Parkour", "You cannot Stack/Throw near Parkour Challenges."));
+ return;
+ }
+
UtilPlayer.message(thrower, F.main("Stacker", "You threw " + F.name(UtilEnt.getName(throwee))));
UtilPlayer.message(throwee, F.main("Stacker", "You were thrown by " + F.name(thrower.getName())));
-
+
UtilAction.velocity(throwee, thrower.getLocation().getDirection(), 1.8, false, 0, 0.3, 2, false);
-
+
_projectileManager.AddThrow(throwee, thrower, this, -1, true, false, true, false, 2.4d);
}
-
+
@Override
public void Collide(LivingEntity target, Block block, ProjectileUser data)
{
if (target == null)
return;
-
+
//Velocity
UtilAction.velocity(target, UtilAlg.getTrajectory2d(data.GetThrown(), target), 1, true, 0.8, 0, 10, true);
@@ -220,9 +239,9 @@ public class Stacker extends MiniPlugin implements IThrown
rider.setVelocity(new Vector(0.25 - Math.random()/2, Math.random()/2, 0.25 - Math.random()/2));
rider = rider.getPassenger();
}
-
+
UtilPlayer.message(target, F.main("Stacker", F.name(UtilEnt.getName(data.GetThrower())) + " hit you with " + F.name(UtilEnt.getName(data.GetThrown()))));
-
+
//Effect
data.GetThrown().getWorld().playSound(data.GetThrown().getLocation(), Sound.HURT, 1f, 1f);
}
@@ -230,14 +249,14 @@ public class Stacker extends MiniPlugin implements IThrown
@Override
public void Idle(ProjectileUser data)
{
-
+
}
@Override
public void Expire(ProjectileUser data)
{
-
+
}
-
+
}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/TextCreator.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java
similarity index 95%
rename from Plugins/Mineplex.Hub/src/mineplex/hub/TextCreator.java
rename to Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java
index 7477dc9df..726b13eb2 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/TextCreator.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/TextManager.java
@@ -1,16 +1,17 @@
-package mineplex.hub;
+package mineplex.hub.modules;
import mineplex.core.MiniPlugin;
import mineplex.core.common.util.UtilText;
import mineplex.core.common.util.UtilText.TextAlign;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
+import mineplex.hub.HubManager;
import org.bukkit.Location;
import org.bukkit.block.BlockFace;
import org.bukkit.event.EventHandler;
-public class TextCreator extends MiniPlugin
+public class TextManager extends MiniPlugin
{
public HubManager Manager;
@@ -29,7 +30,7 @@ public class TextCreator extends MiniPlugin
int smashIndex = 0;
- public TextCreator(HubManager manager)
+ public TextManager(HubManager manager)
{
super("Text Creator", manager.GetPlugin());
@@ -47,8 +48,8 @@ public class TextCreator extends MiniPlugin
"DRAGON ESCAPE",
"MILK THE COW",
"SUPER SPLEEF",
- "TURF FORTS",
"DEATH TAG",
+ "TURF WARS",
"DRAGONS",
"RUNNER"
};
@@ -82,8 +83,8 @@ public class TextCreator extends MiniPlugin
UtilText.MakeText("THE BRIDGES", locSurvival.clone().add(-15, 14, 0), faceSurvival, 159, (byte)4, TextAlign.CENTER);
UtilText.MakeText("THE BRIDGES", locSurvival.clone().add(-16, 14, 0), faceSurvival, 159, (byte)15, TextAlign.CENTER);
- //UtilText.MakeText("CASTLE SIEGE", locSurvival.clone().add(-15, 21, 0), faceSurvival, 159, (byte)1, TextAlign.CENTER);
- //UtilText.MakeText("CASTLE SIEGE", locSurvival.clone().add(-16, 21, 0), faceSurvival, 159, (byte)15, TextAlign.CENTER);
+ UtilText.MakeText("SURVIVAL GAMES", locSurvival.clone().add(-15, 21, 0), faceSurvival, 159, (byte)1, TextAlign.CENTER);
+ UtilText.MakeText("SURVIVAL GAMES", locSurvival.clone().add(-16, 21, 0), faceSurvival, 159, (byte)15, TextAlign.CENTER);
//Other
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/modules/WorldManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/WorldManager.java
new file mode 100644
index 000000000..e72d9b37e
--- /dev/null
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/modules/WorldManager.java
@@ -0,0 +1,166 @@
+package mineplex.hub.modules;
+
+import java.util.HashSet;
+import java.util.Iterator;
+
+import mineplex.core.MiniPlugin;
+import mineplex.core.common.util.UtilMath;
+import mineplex.core.common.util.UtilServer;
+import mineplex.core.common.util.UtilWorld;
+import mineplex.core.updater.UpdateType;
+import mineplex.core.updater.event.UpdateEvent;
+import mineplex.hub.HubManager;
+
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.World;
+import org.bukkit.entity.Chicken;
+import org.bukkit.entity.Cow;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Pig;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.block.BlockPlaceEvent;
+import org.bukkit.event.block.BlockSpreadEvent;
+import org.bukkit.event.block.LeavesDecayEvent;
+import org.bukkit.event.entity.EntityExplodeEvent;
+import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.event.player.PlayerPickupItemEvent;
+
+public class WorldManager extends MiniPlugin
+{
+ public HubManager Manager;
+
+ private HashSet _mobs = new HashSet();
+
+ public WorldManager(HubManager manager)
+ {
+ super("World Manager", manager.GetPlugin());
+
+ Manager = manager;
+ }
+
+ @EventHandler
+ public void SpawnAnimals(UpdateEvent event)
+ {
+ if (event.getType() != UpdateType.SLOW)
+ return;
+
+ Iterator entIterator = _mobs.iterator();
+
+ while (entIterator.hasNext())
+ {
+ LivingEntity ent = entIterator.next();
+
+ if (!ent.isValid())
+ {
+ ent.remove();
+ entIterator.remove();
+ }
+ }
+
+ if (_mobs.size() > 16)
+ return;
+
+ //Loc
+ double r = Math.random();
+
+ Location loc = Manager.GetSpawn();
+
+ if (r > 0.75) loc.add(32, 0.5, 0);
+ else if (r > 0.5) loc.add(0, 0.5, 32);
+ else if (r > 0.25) loc.add(-32, 0.5, 0);
+ else loc.add(0, 0.5, -32);
+
+ //Spawn
+ r = Math.random();
+
+ if (r > 0.66) _mobs.add(loc.getWorld().spawn(loc, Cow.class));
+ else if (r > 0.33) _mobs.add(loc.getWorld().spawn(loc, Pig.class));
+ else _mobs.add(loc.getWorld().spawn(loc, Chicken.class));
+ }
+
+ @EventHandler
+ public void BlockBreak(BlockBreakEvent event)
+ {
+ if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
+ return;
+
+ event.setCancelled(true);
+ }
+
+ @EventHandler(priority = EventPriority.LOWEST)
+ public void Explosion(EntityExplodeEvent event)
+ {
+ event.blockList().clear();
+ }
+
+ @EventHandler
+ public void VineGrow(BlockSpreadEvent event)
+ {
+ event.setCancelled(true);
+ }
+
+ @EventHandler
+ public void LeaveDecay(LeavesDecayEvent event)
+ {
+ event.setCancelled(true);
+ }
+
+ @EventHandler
+ public void BlockPlace(BlockPlaceEvent event)
+ {
+ if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
+ return;
+
+ event.setCancelled(true);
+ }
+
+ @EventHandler
+ public void BorderUpdate(UpdateEvent event)
+ {
+ if (event.getType() != UpdateType.SEC)
+ return;
+
+ for (Player player : UtilServer.getPlayers())
+ {
+ if (UtilMath.offset(player.getLocation(), Manager.GetSpawn()) > 200)
+ {
+ player.eject();
+ player.leaveVehicle();
+ player.teleport(Manager.GetSpawn());
+ }
+ }
+ }
+
+ @EventHandler(priority = EventPriority.LOW)
+ public void ItemPickup(PlayerPickupItemEvent event)
+ {
+ if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
+ return;
+
+ event.setCancelled(true);
+ }
+
+ @EventHandler(priority = EventPriority.LOW)
+ public void ItemDrop(PlayerDropItemEvent event)
+ {
+ if (event.getPlayer().getGameMode() == GameMode.CREATIVE)
+ return;
+
+ event.setCancelled(true);
+ }
+
+ @EventHandler
+ public void UpdateWeather(UpdateEvent event)
+ {
+ if (event.getType() != UpdateType.SEC)
+ return;
+
+ World world = UtilWorld.getWorld("world");
+ world.setTime(6000);
+ world.setStorm(false);
+ }
+}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/TutorialManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/TutorialManager.java
index 47be03097..7b3e5c82e 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/TutorialManager.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/TutorialManager.java
@@ -22,7 +22,7 @@ import mineplex.core.task.TaskManager;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.hub.HubManager;
-import mineplex.hub.TextCreator;
+import mineplex.hub.modules.TextManager;
import mineplex.hub.tutorial.types.PartyTutorial;
import mineplex.hub.tutorial.types.WelcomeTutorial;
@@ -35,7 +35,7 @@ public class TutorialManager extends MiniPlugin
protected DonationManager _donationManager;
protected TaskManager _taskManager;
- public TutorialManager(HubManager manager, DonationManager donation, TaskManager task, TextCreator text)
+ public TutorialManager(HubManager manager, DonationManager donation, TaskManager task, TextManager text)
{
super("Tutorial Manager", manager.GetPlugin());
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/types/WelcomeTutorial.java b/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/types/WelcomeTutorial.java
index 30ae0d585..161106371 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/types/WelcomeTutorial.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/tutorial/types/WelcomeTutorial.java
@@ -1,13 +1,13 @@
package mineplex.hub.tutorial.types;
import mineplex.hub.HubManager;
-import mineplex.hub.TextCreator;
+import mineplex.hub.modules.TextManager;
import mineplex.hub.tutorial.Tutorial;
import mineplex.hub.tutorial.TutorialPhase;
public class WelcomeTutorial extends Tutorial
{
- public WelcomeTutorial(HubManager manager, TextCreator text)
+ public WelcomeTutorial(HubManager manager, TextManager text)
{
super(manager, "Welcome Tutorial", 5000, "Hub_JoinTutorial");
diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitAlphaChaser.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitAlphaChaser.java
index 339c4eb3f..706707bd7 100644
--- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitAlphaChaser.java
+++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitAlphaChaser.java
@@ -14,6 +14,7 @@ import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.SmashKit;
import nautilus.game.arcade.kit.perks.PerkDamageSet;
+import nautilus.game.arcade.kit.perks.PerkIronSkin;
import nautilus.game.arcade.kit.perks.PerkKnockbackMultiplier;
public class KitAlphaChaser extends SmashKit
@@ -29,7 +30,8 @@ public class KitAlphaChaser extends SmashKit
new Perk[]
{
new PerkDamageSet(6),
- new PerkKnockbackMultiplier(0.5)
+ new PerkKnockbackMultiplier(0.5),
+ new PerkIronSkin(4)
},
EntityType.SKELETON,
new ItemStack(Material.IRON_AXE));
diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitChaser.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitChaser.java
index b4f4c8551..935e411bd 100644
--- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitChaser.java
+++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/deathtag/kits/KitChaser.java
@@ -13,6 +13,7 @@ import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.SmashKit;
import nautilus.game.arcade.kit.perks.PerkDamageSet;
+import nautilus.game.arcade.kit.perks.PerkIronSkin;
public class KitChaser extends SmashKit
{
@@ -26,7 +27,8 @@ public class KitChaser extends SmashKit
new Perk[]
{
- new PerkDamageSet(4)
+ new PerkDamageSet(4),
+ new PerkIronSkin(2)
},
EntityType.SKELETON,
new ItemStack(Material.IRON_AXE));
diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java
index 26afb99c0..06bc6396d 100644
--- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java
+++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscape.java
@@ -96,6 +96,14 @@ public class DragonEscape extends SoloGame
bestDist = dist;
}
}
+
+ //Ignore Close
+ if (bestDist < 6 && WorldData.GetDataLocs("BLACK").size() > 1)
+ {
+ System.out.println("Ignoring Node");
+ WorldData.GetDataLocs("BLACK").remove(best);
+ continue;
+ }
_waypoints.add(best);
WorldData.GetDataLocs("BLACK").remove(best);
diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeData.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeData.java
index 223657ff3..11542178c 100644
--- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeData.java
+++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/dragonescape/DragonEscapeData.java
@@ -1,9 +1,11 @@
package nautilus.game.arcade.game.games.dragonescape;
import mineplex.core.common.util.UtilAlg;
+import mineplex.core.common.util.UtilMath;
import org.bukkit.Location;
import org.bukkit.entity.EnderDragon;
+import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
public class DragonEscapeData
@@ -38,10 +40,28 @@ public class DragonEscapeData
{
Turn();
- double timeSpeed = 0.16 + (System.currentTimeMillis() - Host.GetStateTime())/3000000d;
- //System.out.println(timeSpeed);
- Location.add(Velocity.clone().multiply(timeSpeed));
+ //Distance Boost
+ double dist = 0;
+ for (Player player : Host.GetPlayers(true))
+ {
+ double offset = UtilMath.offset(Location, player.getLocation());
+
+ if (offset < dist || dist == -1)
+ {
+ dist = offset;
+ }
+ }
+
+ //Speed
+ double speed = 0.16; //+ (System.currentTimeMillis() - Host.GetStateTime())/2000000d;
+
+ speed += (System.currentTimeMillis() - Host.GetStateTime())/1000d * 0.001;
+
+ if (dist > 10)
+ speed += (dist-10) * 0.001;
+
+ Location.add(Velocity.clone().multiply(speed));
Location.add(0, -Pitch, 0);
Location.setPitch(-1 * Pitch);
diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDisruptor.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDisruptor.java
index 488c71150..591b26382 100644
--- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDisruptor.java
+++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/kit/perks/PerkDisruptor.java
@@ -123,8 +123,10 @@ public class PerkDisruptor extends Perk
_tntMap.remove(event.getItem());
event.getItem().remove();
- event.getPlayer().setVelocity(new Vector(0,0.3,0));
+ event.getPlayer().setVelocity(new Vector(0,0.5,0));
event.getPlayer().getWorld().playSound(event.getPlayer().getLocation(), Sound.EXPLODE, 1f, 2f);
event.getPlayer().playEffect(EntityEffect.HURT);
+
+ event.getPlayer().setSprinting(false);
}
}