package com.nisovin.magicspells.volatilecode; import org.bukkit.Color; import org.bukkit.EntityEffect; import org.bukkit.FireworkEffect; import org.bukkit.FireworkEffect.Type; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.entity.Creature; import org.bukkit.entity.EntityType; import org.bukkit.entity.FallingBlock; import org.bukkit.entity.Fireball; import org.bukkit.entity.Firework; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Ocelot; import org.bukkit.entity.Player; import org.bukkit.entity.SmallFireball; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.FireworkMeta; import org.bukkit.material.Button; import org.bukkit.material.Lever; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.util.Vector; import com.nisovin.magicspells.util.DisguiseManager; import com.nisovin.magicspells.util.MagicConfig; public class VolatileCodeDisabled implements VolatileCodeHandle { @Override public void addPotionGraphicalEffect(LivingEntity entity, int color, int duration) { } @Override public void entityPathTo(LivingEntity entity, LivingEntity target) { } @Override public void sendFakeSlotUpdate(Player player, int slot, ItemStack item) { } @Override public void toggleLeverOrButton(Block block) { if (block.getType() == Material.STONE_BUTTON || block.getType() == Material.WOOD_BUTTON) { BlockState state = block.getState(); Button button = (Button)state.getData(); button.setPowered(true); state.update(); } else if (block.getType() == Material.LEVER) { BlockState state = block.getState(); Lever lever = (Lever)state.getData(); lever.setPowered(!lever.isPowered()); state.update(); } } @Override public void pressPressurePlate(Block block) { block.setData((byte) (block.getData() ^ 0x1)); } @Override public boolean simulateTnt(Location target, LivingEntity source, float explosionSize, boolean fire) { return false; } @Override public boolean createExplosionByPlayer(Player player, Location location, float size, boolean fire, boolean breakBlocks) { return location.getWorld().createExplosion(location, size, fire); } @Override public void playExplosionEffect(Location location, float size) { location.getWorld().createExplosion(location, 0F); } @Override public void setExperienceBar(Player player, int level, float percent) { } @Override public Fireball shootSmallFireball(Player player) { return player.launchProjectile(SmallFireball.class); } @Override public void setTarget(LivingEntity entity, LivingEntity target) { if (entity instanceof Creature) { ((Creature)entity).setTarget(target); } } @Override public void playSound(Location location, String sound, float volume, float pitch) { } @SuppressWarnings("deprecation") @Override public void playSound(Player player, String sound, float volume, float pitch) { player.playSound(player.getLocation(), sound, volume, pitch); } @Override public ItemStack addFakeEnchantment(ItemStack item) { return item; } @Override public void setFallingBlockHurtEntities(FallingBlock block, float damage, int max) { } @Override public void playEntityAnimation(Location location, EntityType entityType, int animationId, boolean instant) { if (entityType == EntityType.OCELOT && animationId == 7) { Ocelot entity = (Ocelot)location.getWorld().spawnEntity(location, entityType); entity.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 10, 0)); entity.playEffect(EntityEffect.WOLF_HEARTS); entity.remove(); } } @Override public void createFireworksExplosion(Location location, boolean flicker, boolean trail, int type, int[] colors, int[] fadeColors, int flightDuration) { FireworkEffect.Type t = Type.BALL; if (type == 1) { t = Type.BALL_LARGE; } else if (type == 2) { t = Type.STAR; } else if (type == 3) { t = Type.CREEPER; } else if (type == 4) { t = Type.BURST; } Color[] c1 = new Color[colors.length]; for (int i = 0; i < colors.length; i++) { c1[i] = Color.fromRGB(colors[i]); } Color[] c2 = new Color[fadeColors.length]; for (int i = 0; i < fadeColors.length; i++) { c2[i] = Color.fromRGB(fadeColors[i]); } FireworkEffect effect = FireworkEffect.builder() .flicker(flicker) .trail(trail) .with(t) .withColor(c1) .withFade(c2) .build(); Firework firework = location.getWorld().spawn(location, Firework.class); FireworkMeta meta = firework.getFireworkMeta(); meta.addEffect(effect); meta.setPower(flightDuration < 1 ? 1 : flightDuration); firework.setFireworkMeta(meta); } @Override public void playParticleEffect(Location location, String name, float spreadHoriz, float spreadVert, float speed, int count, int radius, float yOffset) { } @Override public void playParticleEffect(Location location, String name, float spreadX, float spreadY, float spreadZ, float speed, int count, int radius, float yOffset) { } @Override public void playDragonDeathEffect(Location location) { } @Override public void setKiller(LivingEntity entity, Player killer) { } @Override public DisguiseManager getDisguiseManager(MagicConfig config) { return null; } @Override public ItemStack addAttributes(ItemStack item, String[] names, String[] types, double[] amounts, int[] operations) { return item; } @Override public void removeAI(LivingEntity entity) { } @Override public void setNoAIFlag(LivingEntity entity) { } @Override public void addEntityAttribute(LivingEntity entity, String attribute, double amount, int operation) { } @Override public void resetEntityAttributes(LivingEntity entity) { } @Override public void addAILookAtPlayer(LivingEntity entity, int range) { } @Override public void setBossBar(Player player, String title, double percent) { } @Override public void updateBossBar(Player player, String title, double percent) { } @Override public void removeBossBar(Player player) { } @Override public void saveSkinData(Player player, String name) { } @Override public ItemStack setUnbreakable(ItemStack item) { return item; } @Override public void setArrowsStuck(LivingEntity entity, int count) { } @Override public void sendTitleToPlayer(Player player, String title, String subtitle, int fadeIn, int stay, int fadeOut) { } @Override public void sendActionBarMessage(Player player, String message) { } @Override public void setTabMenuHeaderFooter(Player player, String header, String footer) { } @Override public ItemStack hideTooltipCrap(ItemStack item) { return item; } @Override public void setClientVelocity(Player player, Vector velocity) { player.setVelocity(velocity); } @Override public double getAbsorptionHearts(LivingEntity entity) { return 0; } @Override public void setOffhand(Player player, ItemStack item) { } @Override public ItemStack getOffhand(Player player) { // TODO Auto-generated method stub return null; } @Override public void showItemCooldown(Player player, ItemStack item, int duration) { // TODO Auto-generated method stub } }