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.
164 lines
4.7 KiB
Java
164 lines
4.7 KiB
Java
package mineplex.core.gadget.gadgets.morph;
|
|
|
|
import java.time.Month;
|
|
import java.time.YearMonth;
|
|
|
|
import org.bukkit.Material;
|
|
import org.bukkit.block.Block;
|
|
import org.bukkit.enchantments.Enchantment;
|
|
import org.bukkit.entity.Item;
|
|
import org.bukkit.entity.LivingEntity;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.potion.PotionEffect;
|
|
import org.bukkit.potion.PotionEffectType;
|
|
|
|
import mineplex.core.common.util.C;
|
|
import mineplex.core.common.util.LineFormat;
|
|
import mineplex.core.common.util.UtilAction;
|
|
import mineplex.core.common.util.UtilParticle;
|
|
import mineplex.core.common.util.UtilServer;
|
|
import mineplex.core.common.util.UtilText;
|
|
import mineplex.core.disguise.disguises.DisguiseSquid;
|
|
import mineplex.core.gadget.GadgetManager;
|
|
import mineplex.core.gadget.event.PlayerToggleSwimEvent;
|
|
import mineplex.core.gadget.gadgets.morph.managers.UtilMorph;
|
|
import mineplex.core.gadget.types.MorphGadget;
|
|
import mineplex.core.gadget.types.OutfitGadget;
|
|
import mineplex.core.itemstack.ItemStackFactory;
|
|
import mineplex.core.projectile.IThrown;
|
|
import mineplex.core.projectile.ProjectileUser;
|
|
import mineplex.core.recharge.Recharge;
|
|
import mineplex.core.updater.UpdateType;
|
|
import mineplex.core.updater.event.UpdateEvent;
|
|
|
|
public class MorphSquid extends MorphGadget implements IThrown
|
|
{
|
|
|
|
public MorphSquid(GadgetManager manager)
|
|
{
|
|
super(manager, "Squid Morph", UtilText.splitLinesToArray(new String[]{
|
|
C.cGray + "It's more fun to be a squid than to eat one. They're really rubbery.",
|
|
C.blankLine,
|
|
C.cWhite + "Swim to enable Fast Swimming",
|
|
C.cWhite + "Sneak to shoot a fish above you"
|
|
}, LineFormat.LORE),
|
|
-14, Material.INK_SACK, (byte) 0);
|
|
|
|
setPPCYearMonth(YearMonth.of(2016, Month.SEPTEMBER));
|
|
}
|
|
|
|
@Override
|
|
public void enableCustom(Player player, boolean message)
|
|
{
|
|
applyArmor(player, message);
|
|
DisguiseSquid disguiseSquid = new DisguiseSquid(player);
|
|
UtilMorph.disguise(player, disguiseSquid, Manager);
|
|
}
|
|
|
|
@Override
|
|
public void disableCustom(Player player, boolean message)
|
|
{
|
|
removeArmor(player);
|
|
UtilMorph.undisguise(player, Manager.getDisguiseManager());
|
|
|
|
if (player.getInventory().getBoots() != null && player.getInventory().getBoots().getType() == Material.DIAMOND_BOOTS)
|
|
{
|
|
player.getInventory().setBoots(new ItemStack(Material.AIR));
|
|
player.removePotionEffect(PotionEffectType.SPEED);
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onUpdate(UpdateEvent event)
|
|
{
|
|
if (event.getType() != UpdateType.TICK)
|
|
return;
|
|
|
|
for (Player player : UtilServer.getPlayers())
|
|
{
|
|
if (!isActive(player))
|
|
continue;
|
|
UtilParticle.PlayParticle(UtilParticle.ParticleType.WATER_WAKE, player.getLocation().clone().add(0, .5, 0), 0.01f, 0.01f, 0.01f,
|
|
0.001f, 1, UtilParticle.ViewDist.NORMAL);
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onToggleSwim(PlayerToggleSwimEvent event)
|
|
{
|
|
if (!isActive(event.getPlayer()))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (event.isSwimming())
|
|
{
|
|
// Removes any costume player could be wearing
|
|
Manager.removeOutfit(event.getPlayer(), OutfitGadget.ArmorSlot.BOOTS);
|
|
|
|
// Adds enchanted boot
|
|
ItemStack enchantedBoot = new ItemStack(Material.DIAMOND_BOOTS, 1);
|
|
enchantedBoot.addEnchantment(Enchantment.DEPTH_STRIDER, 3);
|
|
event.getPlayer().getInventory().setBoots(enchantedBoot);
|
|
|
|
// Adds swiftness potion
|
|
event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1000000, 3, true, true));
|
|
}
|
|
else
|
|
{
|
|
event.getPlayer().getInventory().setBoots(new ItemStack(Material.AIR));
|
|
event.getPlayer().removePotionEffect(PotionEffectType.SPEED);
|
|
}
|
|
}
|
|
|
|
@EventHandler
|
|
public void onSneak(PlayerToggleSneakEvent event)
|
|
{
|
|
|
|
Player player = event.getPlayer();
|
|
|
|
if (!player.isSneaking())
|
|
return;
|
|
|
|
if (!isActive(player))
|
|
return;
|
|
|
|
if (!Recharge.Instance.use(player, getName(), 1000, false, false, "Cosmetics"))
|
|
return;
|
|
|
|
Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()),
|
|
ItemStackFactory.Instance.CreateStack(Material.RAW_FISH));
|
|
UtilAction.velocity(item, player.getLocation().getDirection(),
|
|
0.01, true, -0.3, 1.5, 10, false);
|
|
|
|
Manager.getProjectileManager().AddThrow(item, player, this, -1, true, true, true, true,
|
|
null, 1f, 1f, null, null, 0, UpdateType.TICK, 0.5f);
|
|
}
|
|
|
|
@Override
|
|
public void Collide(LivingEntity target, Block block, ProjectileUser data)
|
|
{
|
|
data.getThrown().remove();
|
|
}
|
|
|
|
@Override
|
|
public void Idle(ProjectileUser data)
|
|
{
|
|
data.getThrown().remove();
|
|
}
|
|
|
|
@Override
|
|
public void Expire(ProjectileUser data)
|
|
{
|
|
data.getThrown().remove();
|
|
}
|
|
|
|
@Override
|
|
public void ChunkUnload(ProjectileUser data)
|
|
{
|
|
data.getThrown().remove();
|
|
}
|
|
} |