38a20f98c2
These two directories contain code that was removed from the src and dependencies of the compiled files. They were removed due to being either a. unnecessary or b. a royal pain in my booty.
179 lines
4.8 KiB
Java
179 lines
4.8 KiB
Java
package mineplex.core.gadget.gadgets.morph;
|
|
|
|
import java.util.HashSet;
|
|
import java.util.Set;
|
|
|
|
import org.bukkit.Material;
|
|
import org.bukkit.Sound;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.player.PlayerInteractEvent;
|
|
import org.bukkit.event.player.PlayerJoinEvent;
|
|
import org.bukkit.event.player.PlayerQuitEvent;
|
|
import org.bukkit.event.player.PlayerToggleFlightEvent;
|
|
|
|
import mineplex.core.common.util.C;
|
|
import mineplex.core.common.util.LineFormat;
|
|
import mineplex.core.common.util.UtilAction;
|
|
import mineplex.core.common.util.UtilAlg;
|
|
import mineplex.core.common.util.UtilEnt;
|
|
import mineplex.core.common.util.UtilEvent;
|
|
import mineplex.core.common.util.UtilEvent.ActionType;
|
|
import mineplex.core.common.util.UtilMath;
|
|
import mineplex.core.common.util.UtilServer;
|
|
import mineplex.core.common.util.UtilText;
|
|
import mineplex.core.disguise.disguises.DisguisePig;
|
|
import mineplex.core.gadget.GadgetManager;
|
|
import mineplex.core.gadget.gadgets.morph.managers.UtilMorph;
|
|
import mineplex.core.gadget.types.MorphGadget;
|
|
import mineplex.core.gadget.util.CostConstants;
|
|
import mineplex.core.recharge.Recharge;
|
|
import mineplex.core.updater.UpdateType;
|
|
import mineplex.core.updater.event.UpdateEvent;
|
|
|
|
public class MorphPig extends MorphGadget
|
|
{
|
|
|
|
private final Set<Player> _double = new HashSet<>();
|
|
|
|
public MorphPig(GadgetManager manager)
|
|
{
|
|
super(manager, "Pig Morph", UtilText.splitLinesToArray(new String[]
|
|
{
|
|
C.cGray + "Oink. Oink. Oink.... Oink?",
|
|
C.blankLine,
|
|
"#" + C.cWhite + "Left Click to use Oink",
|
|
"#" + C.cWhite + "Collide to use Pig Bounce",
|
|
}, LineFormat.LORE),
|
|
CostConstants.UNLOCKED_WITH_ULTRA,
|
|
Material.PORK, (byte) 0);
|
|
}
|
|
|
|
@Override
|
|
public void enableCustom(final Player player, boolean message)
|
|
{
|
|
this.applyArmor(player, message);
|
|
|
|
DisguisePig disguise = new DisguisePig(player);
|
|
UtilMorph.disguise(player, disguise, Manager);
|
|
}
|
|
|
|
@Override
|
|
public void disableCustom(Player player, boolean message)
|
|
{
|
|
this.removeArmor(player);
|
|
UtilMorph.undisguise(player, Manager.getDisguiseManager());
|
|
_double.remove(player);
|
|
}
|
|
|
|
@EventHandler
|
|
public void Snort(PlayerInteractEvent event)
|
|
{
|
|
Player player = event.getPlayer();
|
|
|
|
if (!isActive(player))
|
|
return;
|
|
|
|
if (!UtilEvent.isAction(event, ActionType.L))
|
|
return;
|
|
|
|
if (!Recharge.Instance.use(player, getName(), 400, false, false, "Cosmetics"))
|
|
return;
|
|
|
|
player.getWorld().playSound(player.getLocation(), Sound.PIG_IDLE, 1f, (float) (0.75 + Math.random() * 0.5));
|
|
|
|
}
|
|
|
|
@EventHandler
|
|
public void UltraOwner(PlayerJoinEvent event)
|
|
{
|
|
if (Manager.getClientManager().Get(event.getPlayer()).hasPermission(GadgetManager.Perm.ULTRA_MORPH))
|
|
{
|
|
Manager.getDonationManager().Get(event.getPlayer()).addOwnedUnknownSalesPackage(getName());
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void Collide(PlayerToggleFlightEvent event)
|
|
{
|
|
Player player = event.getPlayer();
|
|
|
|
_double.add(player);
|
|
Recharge.Instance.useForce(player, getName() + " Double Jump", 200);
|
|
}
|
|
|
|
@EventHandler
|
|
public void Collide(UpdateEvent event)
|
|
{
|
|
if (event.getType() != UpdateType.TICK)
|
|
{
|
|
return;
|
|
}
|
|
|
|
for (Player player : getActive())
|
|
{
|
|
//Grounded
|
|
if (UtilEnt.isGrounded(player) && Recharge.Instance.usable(player, getName() + " Double Jump"))
|
|
{
|
|
_double.remove(player);
|
|
}
|
|
|
|
double range = 1;
|
|
|
|
if (_double.contains(player))
|
|
{
|
|
range++;
|
|
}
|
|
|
|
if (player.getVehicle() != null || !Recharge.Instance.usable(player, getName() + " Collide"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
for (Player other : UtilServer.getPlayers())
|
|
{
|
|
if (other.equals(player) || other.getVehicle() != null || Recharge.Instance.usable(other, getName() + " Collide") || UtilMath.offsetSquared(player, other) > range || !Manager.selectEntity(this, other))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
//Cooldown
|
|
Recharge.Instance.useForce(other, getName() + " Collide", 200);
|
|
Recharge.Instance.useForce(player, getName() + " Collide", 200);
|
|
|
|
double power = 0.4;
|
|
double height = 0.1;
|
|
if (player.isSprinting())
|
|
{
|
|
power = 0.6;
|
|
height = 0.2;
|
|
}
|
|
else if (_double.contains(player))
|
|
{
|
|
power = 1;
|
|
height = 0.3;
|
|
}
|
|
|
|
//Velocity
|
|
UtilAction.velocity(player, UtilAlg.getTrajectory2d(other, player), power, false, 0, height, 1, true);
|
|
UtilAction.velocity(other, UtilAlg.getTrajectory2d(player, other), power, false, 0, height, 1, true);
|
|
|
|
//Sound
|
|
if (_double.contains(player))
|
|
{
|
|
player.getWorld().playSound(player.getLocation(), Sound.PIG_DEATH, (float) (0.8 + Math.random() * 0.4), (float) (0.8 + Math.random() * 0.4));
|
|
}
|
|
else
|
|
{
|
|
player.getWorld().playSound(player.getLocation(), Sound.PIG_IDLE, 1f, (float) (1.5 + Math.random() * 0.5));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void playerQuit(PlayerQuitEvent event)
|
|
{
|
|
_double.remove(event.getPlayer());
|
|
}
|
|
} |