Added Curse of Inaccuracy
Changed default curse obtaining values
This commit is contained in:
@@ -225,6 +225,7 @@ public class EcoEnchants {
|
||||
public static final EcoEnchant BLOCK_BREATHER = new BlockBreather();
|
||||
public static final EcoEnchant VOLTAGE = new Voltage();
|
||||
public static final EcoEnchant TRANSFUSE = new Transfuse();
|
||||
public static final EcoEnchant INACCURACY_CURSE = new InaccuracyCurse();
|
||||
|
||||
/**
|
||||
* Get all registered {@link EcoEnchant}s
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.willfp.ecoenchants.enchantments.ecoenchants.curse;
|
||||
|
||||
import com.willfp.ecoenchants.enchantments.EcoEnchant;
|
||||
import com.willfp.ecoenchants.enchantments.EcoEnchantBuilder;
|
||||
import com.willfp.ecoenchants.enchantments.EcoEnchants;
|
||||
import com.willfp.ecoenchants.enchantments.util.checks.EnchantChecks;
|
||||
import com.willfp.ecoenchants.nms.Target;
|
||||
import com.willfp.ecoenchants.util.Rand;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.SoundCategory;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.entity.AbstractArrow;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
public class InaccuracyCurse extends EcoEnchant {
|
||||
public InaccuracyCurse() {
|
||||
super(
|
||||
new EcoEnchantBuilder("inaccuracy_curse", EnchantmentType.CURSE, Target.Applicable.BOW, 4.0)
|
||||
);
|
||||
}
|
||||
|
||||
// START OF LISTENERS
|
||||
|
||||
@EventHandler
|
||||
public void onShoot(EntityShootBowEvent event) {
|
||||
if (event.getProjectile().getType() != EntityType.ARROW)
|
||||
return;
|
||||
|
||||
if (!(event.getEntity() instanceof Player))
|
||||
return;
|
||||
|
||||
Player player = (Player) event.getEntity();
|
||||
|
||||
if (!EnchantChecks.mainhand(player, this)) return;
|
||||
|
||||
double spread = this.getConfig().getDouble(EcoEnchants.CONFIG_LOCATION + "spread");
|
||||
|
||||
Vector velocity = event.getProjectile().getVelocity().clone();
|
||||
|
||||
velocity.add(new Vector(Rand.randFloat(-spread, spread), Rand.randFloat(-spread, spread), Rand.randFloat(-spread, spread)));
|
||||
event.getProjectile().setVelocity(velocity);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user