Mineplex/GOD DAMN COSMETICS/gadget/gadgets/morph/MorphChicken.java
Daniel Waggner 38a20f98c2 Removed Files
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.
2021-05-23 18:13:37 -07:00

155 lines
4.1 KiB
Java

package mineplex.core.gadget.gadgets.morph;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Egg;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerToggleFlightEvent;
import org.bukkit.util.Vector;
import mineplex.core.common.util.C;
import mineplex.core.common.util.LineFormat;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilEvent;
import mineplex.core.common.util.UtilEvent.ActionType;
import mineplex.core.common.util.UtilText;
import mineplex.core.disguise.disguises.DisguiseChicken;
import mineplex.core.gadget.GadgetManager;
import mineplex.core.gadget.gadgets.morph.managers.UtilMorph;
import mineplex.core.gadget.types.MorphGadget;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
public class MorphChicken extends MorphGadget
{
public MorphChicken(GadgetManager manager)
{
super(manager, "Chicken Morph", UtilText.splitLinesToArray(new String[]
{
C.cGray + "Soar through the air like a fat Chicken!",
C.blankLine,
"#" + C.cWhite + "Left Click to use Egg Shot",
"#" + C.cWhite + "Double Jump to use Flap",
}, LineFormat.LORE),
20000,
Material.FEATHER, (byte)0);
}
@Override
public void enableCustom(final Player player, boolean message)
{
this.applyArmor(player, message);
DisguiseChicken disguise = new DisguiseChicken(player);
UtilMorph.disguise(player, disguise, Manager);
}
@Override
public void disableCustom(Player player, boolean message)
{
this.removeArmor(player);
UtilMorph.undisguise(player, Manager.getDisguiseManager());
player.setAllowFlight(false);
player.setFlying(false);
}
@EventHandler
public void Egg(PlayerInteractEvent event)
{
Player player = event.getPlayer();
if (!isActive(player))
return;
if (!UtilEvent.isAction(event, ActionType.L))
return;
if (!Recharge.Instance.use(player, getName(), 100, false, false, "Cosmetics"))
return;
Vector offset = player.getLocation().getDirection();
if (offset.getY() < 0)
offset.setY(0);
Egg egg = player.getWorld().spawn(player.getLocation().add(0, 0.5, 0).add(offset), Egg.class);
egg.setVelocity(player.getLocation().getDirection().add(new Vector(0,0.2,0)));
egg.setShooter(player);
//Effect
player.getWorld().playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 0.5f, 1f);
}
@EventHandler
public void Flap(PlayerToggleFlightEvent event)
{
Player player = event.getPlayer();
if (player.getGameMode() == GameMode.CREATIVE)
return;
if (!isActive(player))
return;
event.setCancelled(true);
player.setFlying(false);
//Disable Flight
player.setAllowFlight(false);
double power = 0.4 + (0.5 * player.getExp());
//Velocity
UtilAction.velocity(player, player.getLocation().getDirection(), power, true, power, 0, 10, true);
//Sound
player.getWorld().playSound(player.getLocation(), Sound.BAT_TAKEOFF, (float)(0.3 + player.getExp()), (float)(Math.random()/2+1));
//Set Recharge
Recharge.Instance.use(player, getName(), 80, false, false);
//Energy
player.setExp(Math.max(0f, player.getExp() - (1f/9f)));
}
@EventHandler
public void FlapUpdate(UpdateEvent event)
{
if (event.getType() != UpdateType.TICK)
return;
for (Player player : getActive())
{
if (player.getGameMode() == GameMode.CREATIVE)
continue;
if (UtilEnt.isGrounded(player) || UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN)))
{
player.setExp(0.999f);
player.setAllowFlight(true);
}
else if (Recharge.Instance.usable(player, getName()) && player.getExp() > 0)
{
player.setAllowFlight(true);
}
}
}
@EventHandler
public void EggHit(EntityDamageByEntityEvent event)
{
if (event.getDamager() instanceof Egg)
{
event.getEntity().setVelocity(new Vector(0,0,0));
}
}
}