Started on the flying mechanics stuff

This commit is contained in:
LCastr0 2016-12-30 12:44:49 -02:00
parent 1aca03b22d
commit 17bdfe6814
2 changed files with 36 additions and 0 deletions

View File

@ -2,8 +2,10 @@ package mineplex.core.gadget;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.function.Predicate; import java.util.function.Predicate;
@ -41,6 +43,7 @@ import mineplex.core.gadget.commands.LockCosmeticsCommand;
import mineplex.core.gadget.commands.UnlockCosmeticsCommand; import mineplex.core.gadget.commands.UnlockCosmeticsCommand;
import mineplex.core.gadget.event.GadgetChangeEvent; import mineplex.core.gadget.event.GadgetChangeEvent;
import mineplex.core.gadget.event.GadgetCollideEntityEvent; import mineplex.core.gadget.event.GadgetCollideEntityEvent;
import mineplex.core.gadget.event.GadgetDisableEvent;
import mineplex.core.gadget.event.GadgetEnableEvent; import mineplex.core.gadget.event.GadgetEnableEvent;
import mineplex.core.gadget.event.PlayerToggleSwimEvent; import mineplex.core.gadget.event.PlayerToggleSwimEvent;
import mineplex.core.gadget.event.TauntCommandEvent; import mineplex.core.gadget.event.TauntCommandEvent;
@ -253,6 +256,9 @@ public class GadgetManager extends MiniPlugin
private final HashSet<GadgetSet> _sets = new HashSet<>(); private final HashSet<GadgetSet> _sets = new HashSet<>();
private final Map<Player, Double> _playerBalloons = new HashMap<>();
private final Map<Player, Location> _initialLocations = new HashMap<>();
private UserGadgetPersistence _userGadgetPersistence; private UserGadgetPersistence _userGadgetPersistence;
private boolean _hideParticles = false; private boolean _hideParticles = false;
@ -1347,4 +1353,29 @@ public class GadgetManager extends MiniPlugin
taunt.start(player); taunt.start(player);
} }
@EventHandler
public void onActivateBalloon(GadgetEnableEvent event)
{
if (event.getGadget().getGadgetType() != GadgetType.BALLOON)
return;
Player player = event.getPlayer();
_initialLocations.put(player, player.getLocation());
_playerBalloons.computeIfAbsent(player, d -> player.getLocation().getY());
double height = _playerBalloons.get(player) + (UtilMath.random(1, 2) * BalloonGadget.getBalloons(player));
Location newLocation = player.getLocation().clone();
newLocation.setY(height);
player.teleport(newLocation);
}
@EventHandler
public void onDeactivateBalloon(GadgetDisableEvent event)
{
if (event.getGadget().getGadgetType() != GadgetType.BALLOON)
return;
Player player = event.getPlayer();
if ()
}
} }

View File

@ -130,4 +130,9 @@ public abstract class BalloonGadget extends Gadget
{ {
return _balloonType; return _balloonType;
} }
public static int getBalloons(Player player)
{
return ((PLAYER_BALLOONS.containsKey(player.getUniqueId())) ? PLAYER_BALLOONS.get(player.getUniqueId()).size() : 0);
}
} }