Advertisement
Guest User

Rede_Galak_Hulk_Win_Animation

a guest
Feb 28th, 2020
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.62 KB | None | 0 0
  1. public static String hulk = "http://textures.minecraft.net/texture/56786ff975920a7655df02068967ab137dfa5950a7e836a24d1cbb11eaaa6e";
  2.    
  3.     public static ItemStack getSkull(String url) {
  4.         ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
  5.         if (url == null || url.isEmpty()) return skull;
  6.        
  7.         SkullMeta skullMeta = (SkullMeta) skull.getItemMeta();
  8.         GameProfile profile = new GameProfile(UUID.randomUUID(), null);
  9.         byte[] encodedData = Base64.encodeBase64(String.format("{textures:{SKIN:{url:\"%s\"}}}", url).getBytes());
  10.         profile.getProperties().put("textures", new Property("textures", new String(encodedData)));
  11.         Field profileField = null;
  12.    
  13.         try {
  14.             profileField = skullMeta.getClass().getDeclaredField("profile");
  15.         }catch (NoSuchFieldException | SecurityException e) {
  16.             e.printStackTrace();
  17.         }
  18.    
  19.         profileField.setAccessible(true);
  20.    
  21.         try {
  22.             profileField.set(skullMeta, profile);
  23.         }catch (IllegalArgumentException | IllegalAccessException e) {
  24.             e.printStackTrace();
  25.         }
  26.    
  27.         skull.setItemMeta(skullMeta);
  28.         return skull;
  29.     }
  30.    
  31.     public static int trail;
  32.    
  33.     @SuppressWarnings("deprecation")
  34.     public static void iniciar(Player jogador) {
  35.         jogador.getInventory().setArmorContents(null);
  36.         jogador.getInventory().setHelmet(getSkull(hulk));
  37.         jogador.getWorld().playSound(jogador.getLocation(), Sound.CHICKEN_EGG_POP, 2F, 1F);
  38.         ParticleEffect.EXPLOSION_NORMAL.display(jogador.getEyeLocation(), 0, 0, 0, 5, 0, 15);
  39.        
  40.         new BukkitRunnable() {
  41.             public void run() {
  42.                 jogador.setVelocity(new Vector(0.0D, 3.0D, 0.0D));
  43.                 jogador.getWorld().playSound(jogador.getLocation(), Sound.ENDERDRAGON_WINGS, 2F, 1F);
  44.                 trail = new BukkitRunnable() {
  45.                     public void run() {
  46.                         ParticleEffect.CLOUD.display(jogador.getLocation(), 0, 0, 0, 3, 0, 10);
  47.                     }
  48.                 }.runTaskTimerAsynchronously(Main.plugin, 1L, 1L).getTaskId();
  49.             }
  50.         }.runTaskLaterAsynchronously(Main.plugin, 25);
  51.        
  52.         new BukkitRunnable() {
  53.             public void run() {
  54.                 Bukkit.getScheduler().cancelTask(trail);
  55.                 jogador.setVelocity(new Vector(0, -3, 0));
  56.             }
  57.         }.runTaskLaterAsynchronously(Main.plugin, 50);
  58.        
  59.         Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> {
  60.             jogador.getWorld().playSound(jogador.getLocation(), Sound.EXPLODE, 2F, 1F);
  61.             ParticleEffect.LAVA.display(jogador.getLocation(), 0, 0, 0, 5, 0, 15);
  62.             ParticleEffect.EXPLOSION_LARGE.display(jogador.getLocation(), 0, 0, 0, 5, 0, 15);
  63.             for (Block blocos : verificador(jogador.getLocation().add(0, -1, 0), 1)) {
  64.                 if (blocos.getType().isSolid()) {
  65.                     FallingBlock fb = blocos.getWorld().spawnFallingBlock(blocos.getLocation().add(0, 1.1, 0), blocos.getType(), blocos.getData());
  66.                     fb.setDropItem(false);
  67.                     fb.setVelocity(new Vector(0, 0.1, 0));
  68.                     fb.setMetadata("hulk_block", new FixedMetadataValue(Main.plugin, new Object()));
  69.                     ParticleEffect.SMOKE_LARGE.display(fb.getLocation(), 0, 0, 0, 1, 0, 15);
  70.                 }
  71.             }
  72.         }, 64L);
  73.        
  74.         Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> {
  75.             for (Block blocos : verificador(jogador.getLocation().add(0, -1, 0), 2)) {
  76.                 if (blocos.getType().isSolid()) {
  77.                     FallingBlock fb = blocos.getWorld().spawnFallingBlock(blocos.getLocation().add(0, 1.1, 0), blocos.getType(), blocos.getData());
  78.                     fb.setDropItem(false);
  79.                     fb.setVelocity(new Vector(0, 0.2, 0));
  80.                     fb.setMetadata("hulk_block", new FixedMetadataValue(Main.plugin, new Object()));
  81.                     ParticleEffect.SMOKE_LARGE.display(fb.getLocation(), 0, 0, 0, 1, 0, 15);
  82.                 }
  83.             }
  84.         }, 67L);
  85.        
  86.         Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> {
  87.             for (Block blocos : verificador(jogador.getLocation().add(0, -1, 0), 3)) {
  88.                 if (blocos.getType().isSolid()) {
  89.                     FallingBlock fb = blocos.getWorld().spawnFallingBlock(blocos.getLocation().add(0, 1.1, 0), blocos.getType(), blocos.getData());
  90.                     fb.setDropItem(false);
  91.                     fb.setVelocity(new Vector(0, 0.2, 0));
  92.                     fb.setMetadata("hulk_block", new FixedMetadataValue(Main.plugin, new Object()));
  93.                     ParticleEffect.SMOKE_LARGE.display(fb.getLocation(), 0, 0, 0, 1, 0, 15);
  94.                 }
  95.             }
  96.         }, 70L);
  97.        
  98.         Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> {
  99.             for (Block blocos : verificador(jogador.getLocation().add(0, -1, 0), 4)) {
  100.                 if (blocos.getType().isSolid()) {
  101.                     FallingBlock fb = blocos.getWorld().spawnFallingBlock(blocos.getLocation().add(0, 1.1, 0), blocos.getType(), blocos.getData());
  102.                     fb.setDropItem(false);
  103.                     fb.setVelocity(new Vector(0, 0.2, 0));
  104.                     fb.setMetadata("hulk_block", new FixedMetadataValue(Main.plugin, new Object()));
  105.                     ParticleEffect.SMOKE_LARGE.display(fb.getLocation(), 0, 0, 0, 1, 0, 15);
  106.                 }
  107.             }
  108.         }, 73L);
  109.        
  110.         Bukkit.getScheduler().scheduleSyncDelayedTask(Main.plugin, () -> {
  111.             for (Block blocos : verificador(jogador.getLocation().add(0, -1, 0), 5)) {
  112.                 if (blocos.getType().isSolid()) {
  113.                     FallingBlock fb = blocos.getWorld().spawnFallingBlock(blocos.getLocation().add(0, 1.1, 0), blocos.getType(), blocos.getData());
  114.                     fb.setDropItem(false);
  115.                     fb.setVelocity(new Vector(0, 0.2, 0));
  116.                     fb.setMetadata("hulk_block", new FixedMetadataValue(Main.plugin, new Object()));
  117.                     ParticleEffect.SMOKE_LARGE.display(fb.getLocation(), 0, 0, 0, 1, 0, 15);
  118.                 }
  119.             }
  120.         }, 76L);
  121.        
  122.         new BukkitRunnable() {
  123.             public void run() {
  124.                 jogador.getInventory().setArmorContents(null);
  125.                 jogador.getWorld().playSound(jogador.getLocation(), Sound.CHICKEN_EGG_POP, 2F, 1F);
  126.                 ParticleEffect.EXPLOSION_NORMAL.display(jogador.getEyeLocation(), 0, 0, 0, 5, 0, 15);
  127.             }
  128.         }.runTaskLaterAsynchronously(Main.plugin, 91);
  129.     }
  130.    
  131.     public static List<Block> verificador(Location local, int raio) {
  132.         List<Block> blocos = new ArrayList<Block>();
  133.         for (int x = local.getBlockX() - raio; x <= local.getBlockX() + raio; x++) {
  134.             for (int z = local.getBlockZ() - raio; z <= local.getBlockZ() + raio; z++) {
  135.                 if(Math.round(Math.sqrt(Math.pow(local.getBlockX() - x, 2) + Math.pow(local.getBlockZ() - z, 2))) == raio) {
  136.                     blocos.add(local.getWorld().getBlockAt(x, local.getBlockY(), z));
  137.                 }
  138.             }
  139.         }
  140.         return blocos;
  141.     }
  142.    
  143.     @SuppressWarnings("deprecation")
  144.     @EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true)
  145.     public static void aoTrocar(EntityChangeBlockEvent e) {
  146.         Entity block = e.getEntity();
  147.         if (block.hasMetadata("hulk_block")) {
  148.             FallingBlock fb = (FallingBlock) block;
  149.             e.setCancelled(true);
  150.             ParticleEffect.BLOCK_CRACK.display(new ParticleEffect.BlockData(fb.getMaterial(), e.getBlock().getData()), 0, 0, 0, 0.4F, 25, fb.getLocation(), 64);
  151.             block.getWorld().playSound(block.getLocation(), Sound.STEP_STONE, 1F, 1F);
  152.             block.remove();
  153.         }
  154.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement