package com.nisovin.magicspells.volatilecode;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.FallingBlock;
import org.bukkit.entity.Fireball;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector;
import com.nisovin.magicspells.util.DisguiseManager;
import com.nisovin.magicspells.util.MagicConfig;
public interface VolatileCodeHandle {
public void addPotionGraphicalEffect(LivingEntity entity, int color, int duration);
public void entityPathTo(LivingEntity entity, LivingEntity target);
public void sendFakeSlotUpdate(Player player, int slot, ItemStack item);
public void toggleLeverOrButton(Block block);
public void pressPressurePlate(Block block);
public boolean simulateTnt(Location target, LivingEntity source, float explosionSize, boolean fire);
public boolean createExplosionByPlayer(Player player, Location location, float size, boolean fire, boolean breakBlocks);
public void playExplosionEffect(Location location, float size);
public void setExperienceBar(Player player, int level, float percent);
public Fireball shootSmallFireball(Player player);
public void setTarget(LivingEntity entity, LivingEntity target);
public void playSound(Location location, String sound, float volume, float pitch);
public void playSound(Player player, String sound, float volume, float pitch);
public ItemStack addFakeEnchantment(ItemStack item);
public void setFallingBlockHurtEntities(FallingBlock block, float damage, int max);
//public void addPotionEffect(LivingEntity entity, PotionEffect effect, boolean ambient);
public void playEntityAnimation(Location location, EntityType entityType, int animationId, boolean instant);
public void createFireworksExplosion(Location location, boolean flicker, boolean trail, int type, int[] colors, int[] fadeColors, int flightDuration);
//public void setHeldItemSlot(Player player, int slot);
public void playParticleEffect(Location location, String name, float spreadHoriz, float spreadVert, float speed, int count, int radius, float yOffset);
public void playParticleEffect(Location location, String name, float spreadX, float spreadY, float spreadZ, float speed, int count, int radius, float yOffset);
public void setKiller(LivingEntity entity, Player killer);
public DisguiseManager getDisguiseManager(MagicConfig config);
public void playDragonDeathEffect(Location location);
public ItemStack addAttributes(ItemStack item, String[] names, String[] types, double[] amounts, int[] operations);
public ItemStack hideTooltipCrap(ItemStack item);
public void addEntityAttribute(LivingEntity entity, String attribute, double amount, int operation);
public void resetEntityAttributes(LivingEntity entity);
public void removeAI(LivingEntity entity);
public void setNoAIFlag(LivingEntity entity);
public void addAILookAtPlayer(LivingEntity entity, int range);
public void setBossBar(Player player, String title, double percent);
public void updateBossBar(Player player, String title, double percent);
public void removeBossBar(Player player);
public void saveSkinData(Player player, String name);
public ItemStack setUnbreakable(ItemStack item);
public void setArrowsStuck(LivingEntity entity, int count);
public void sendTitleToPlayer(Player player, String title, String subtitle, int fadeIn, int stay, int fadeOut);
public void sendActionBarMessage(Player player, String message);
public void setTabMenuHeaderFooter(Player player, String header, String footer);
public void setClientVelocity(Player player, Vector velocity);
public double getAbsorptionHearts(LivingEntity entity);
public void setOffhand(Player player, ItemStack item);
public ItemStack getOffhand(Player player);
public void showItemCooldown(Player player, ItemStack item, int duration);
}