Mineplex/GOD DAMN COSMETICS/gadget/gadgets/mount/HorseMount.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

140 lines
3.4 KiB
Java

package mineplex.core.gadget.gadgets.mount;
import java.lang.reflect.Field;
import java.util.Iterator;
import net.minecraft.server.v1_8_R3.EntityLiving;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Horse;
import org.bukkit.entity.Horse.Color;
import org.bukkit.entity.Horse.Style;
import org.bukkit.entity.Horse.Variant;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.inventory.ItemStack;
import mineplex.core.common.util.UtilAction;
import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilMath;
import mineplex.core.gadget.GadgetManager;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.core.utils.UtilVariant;
public class HorseMount extends Mount<SingleEntityMountData<Horse>>
{
protected static Field JUMP_FIELD;
static
{
try
{
JUMP_FIELD = EntityLiving.class.getDeclaredField("aY");
JUMP_FIELD.setAccessible(true);
}
catch (NoSuchFieldException e)
{
e.printStackTrace();
}
}
private static final int MIN_OFFSET_SQUARED = 16;
private static final int MAX_OFFSET_SQUARED = 400;
protected final Color _color;
protected final Style _style;
protected final Variant _variant;
protected final double _jump;
protected final Material _armor;
public HorseMount(GadgetManager manager, String name, String[] desc, int cost, Material material, byte materialData, Color color, Style style, Variant variant, double jump, Material armor)
{
super(manager, name, desc, cost, material, materialData);
_color = color;
_style = style;
_variant = variant;
_jump = jump;
_armor = armor;
}
@EventHandler
public void updateHorse(UpdateEvent event)
{
if (event.getType() != UpdateType.SEC)
{
return;
}
Iterator<Player> activeIterator = _active.keySet().iterator();
while (activeIterator.hasNext())
{
Player player = activeIterator.next();
Horse horse = _active.get(player).getEntity();
//Invalid (dead)
if (!horse.isValid())
{
horse.remove();
activeIterator.remove();
continue;
}
//Move
double dist = UtilMath.offsetSquared(player, horse);
if (dist > MAX_OFFSET_SQUARED)
{
horse.teleport(player);
}
else if (dist > MIN_OFFSET_SQUARED)
{
UtilEnt.CreatureMove(horse, player.getLocation().add(0, 0.5, 0), 1.5F);
}
}
}
@Override
public SingleEntityMountData<Horse> spawnMount(Player player)
{
Horse horse = UtilVariant.spawnHorse(player.getLocation(), _variant);
horse.setAdult();
horse.setAgeLock(true);
horse.setColor(_color);
horse.setStyle(_style);
horse.setOwner(player);
horse.setMaxDomestication(1);
horse.setJumpStrength(_jump);
horse.getInventory().setSaddle(new ItemStack(Material.SADDLE));
if (horse.getVariant() == Variant.MULE)
{
horse.setCarryingChest(true);
}
if (_armor != null)
{
horse.getInventory().setArmor(new ItemStack(_armor));
}
horse.setCustomName(player.getName() + "'s " + getName());
horse.setCustomNameVisible(true);
return new SingleEntityMountData<>(player, horse);
}
@Override
protected void setPassenger(Player player, Entity clicked, PlayerInteractEntityEvent event)
{
event.setCancelled(false);
}
}