Mineplex/GOD DAMN COSMETICS/gadget/gadgets/morph/moba/MorphBiff.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

176 lines
5.5 KiB
Java

package mineplex.core.gadget.gadgets.morph.moba;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Horse;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import com.mojang.authlib.GameProfile;
import mineplex.core.common.skin.SkinData;
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.UtilParticle;
import mineplex.core.common.util.UtilParticle.ParticleType;
import mineplex.core.common.util.UtilParticle.ViewDist;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilText;
import mineplex.core.disguise.disguises.DisguisePlayer;
import mineplex.core.gadget.GadgetManager;
import mineplex.core.gadget.gadgets.morph.managers.UtilMorph;
import mineplex.core.gadget.types.MorphGadget;
import mineplex.core.itemstack.ItemBuilder;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.core.utils.UtilGameProfile;
public class MorphBiff extends MorphGadget
{
private static final ItemStack ACTIVE_ITEM = new ItemBuilder(Material.NETHER_STAR)
.setTitle(C.cGreenB + "Biff's Cavalry Charge")
.addLore("Click to fire out a beam of water that knocks back", "players that it hits.")
.build();
private static final int ACTIVE_SLOT = 2;
private static final ItemStack HORSE_ARMOUR = new ItemStack(Material.IRON_BARDING);
private static final ItemStack SADDLE = new ItemStack(Material.SADDLE);
private static final int MAX_TICKS = 6 * 20;
private final Map<Player, Horse> _horses = new HashMap<>();
public MorphBiff(GadgetManager manager)
{
super(manager, "Biff Morph", UtilText.splitLinesToArray(new String[]{
C.cGray + "REEEEEEEEEEEEEEEE",
"",
C.cGreen + "Click" + C.cWhite + " your " + C.cYellow + "Nether Star" + C.cWhite + " to",
C.cWhite + "mount your " + C.cYellow + "Horse" + C.cWhite + " and",
C.cWhite + "knock back nearby players."
}, LineFormat.LORE), -20, Material.GLASS, (byte) 0);
setDisplayItem(SkinData.BIFF.getSkull());
}
@Override
public void enableCustom(Player player, boolean message)
{
applyArmor(player, message);
GameProfile gameProfile = UtilGameProfile.getGameProfile(player);
gameProfile.getProperties().clear();
gameProfile.getProperties().put("textures", SkinData.BIFF.getProperty());
DisguisePlayer disguisePlayer = new DisguisePlayer(player, gameProfile);
disguisePlayer.showInTabList(true, 0);
UtilMorph.disguise(player, disguisePlayer, Manager);
player.getInventory().setItem(ACTIVE_SLOT, ACTIVE_ITEM);
}
@Override
public void disableCustom(Player player, boolean message)
{
removeArmor(player);
UtilMorph.undisguise(player, Manager.getDisguiseManager());
player.getInventory().setItem(ACTIVE_SLOT, null);
}
@EventHandler
public void interact(PlayerInteractEvent event)
{
if (event.getAction() == Action.PHYSICAL)
{
return;
}
Player player = event.getPlayer();
ItemStack itemStack = event.getItem();
if (!isActive(player) || itemStack == null || !itemStack.equals(ACTIVE_ITEM))
{
return;
}
event.setCancelled(true);
if (!Manager.selectLocation(this, player.getLocation()))
{
Manager.informNoUse(player);
return;
}
if (!Recharge.Instance.use(player, "Cavalry Charge", 30000,true, true, "Cosmetics"))
{
return;
}
Manager.getPetManager().getCreatureModule().SetForce(true);
Horse horse = player.getWorld().spawn(player.getLocation(), Horse.class);
UtilParticle.PlayParticleToAll(ParticleType.CLOUD, horse.getLocation().add(0, 1, 0), 1, 1, 1, 0.1F, 50, ViewDist.NORMAL);
horse.getWorld().strikeLightningEffect(horse.getLocation());
horse.getWorld().playSound(horse.getLocation(), Sound.HORSE_DEATH, 1, 1.1F);
horse.setHealth(20);
horse.setMaxHealth(horse.getHealth());
horse.setJumpStrength(1);
horse.setMaxDomestication(1);
horse.setDomestication(horse.getMaxDomestication());
horse.getInventory().setArmor(HORSE_ARMOUR);
horse.getInventory().setSaddle(SADDLE);
horse.setOwner(player);
horse.setPassenger(player);
_horses.put(player, horse);
Manager.getPetManager().getCreatureModule().SetForce(false);
}
@EventHandler
public void updateHorses(UpdateEvent event)
{
if (event.getType() != UpdateType.TICK)
{
return;
}
_horses.keySet().removeIf(player ->
{
Horse horse = _horses.get(player);
if (horse.getTicksLived() > MAX_TICKS)
{
horse.getWorld().playSound(horse.getLocation(), Sound.HORSE_BREATHE, 1, 1.1F);
UtilParticle.PlayParticleToAll(ParticleType.CLOUD, horse.getLocation().add(0, 1, 0), 0.5F, 0.5F, 0.5F, 0.1F, 50, ViewDist.LONG);
horse.remove();
return true;
}
for (Player nearby : UtilPlayer.getNearby(horse.getLocation(), 3))
{
if (player.equals(nearby) || !Recharge.Instance.use(player, getName() + player.getUniqueId(), 1500, false, false, "Cosmetics"))
{
continue;
}
nearby.getWorld().playSound(nearby.getLocation(), Sound.IRONGOLEM_THROW, 1, 0.6F);
UtilParticle.PlayParticleToAll(ParticleType.CLOUD, nearby.getLocation().add(0, 1, 0), 0.5F, 0.5F, 0.5F, 0.1F, 10, ViewDist.LONG);
UtilAction.velocity(nearby, UtilAlg.getTrajectory(horse, nearby).multiply(1.5).setY(0.8));
}
return false;
});
}
}