Started on the flying mechanics stuff
This commit is contained in:
parent
1aca03b22d
commit
17bdfe6814
|
@ -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 ()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue