Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. package fr.hidozia.api.fireworkmanager;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.bukkit.Color;
  7. import org.bukkit.FireworkEffect;
  8. import org.bukkit.FireworkEffect.Builder;
  9. import org.bukkit.FireworkEffect.Type;
  10. import org.bukkit.Location;
  11. import org.bukkit.World;
  12. import org.bukkit.entity.Entity;
  13. import org.bukkit.entity.EntityType;
  14. import org.bukkit.entity.Firework;
  15. import org.bukkit.inventory.meta.FireworkMeta;
  16.  
  17. public class FireworkManager {
  18.  
  19. private boolean flicker;
  20. private boolean trail;
  21. private Type type;
  22. private Color color;
  23. private Color fade;
  24. private int power;
  25.  
  26. public FireworkManager(boolean flicker, boolean trail, Type type, Color color, Color fade, int power) {
  27. this.flicker = flicker;
  28. this.trail = trail;
  29. this.type = type;
  30. this.color = color;
  31. this.fade = fade;
  32. this.power = power;
  33. }
  34.  
  35. public void spawn(Location location) {
  36. Firework firework = (Firework) location.getWorld().spawnEntity(location, EntityType.FIREWORK);
  37. firework.detonate();
  38.  
  39. firework.setFireworkMeta(buildFireworkMeta(firework));
  40. }
  41.  
  42. public void kill(World world) {
  43. for (Firework firework : find(world)) {
  44. firework.remove();
  45. }
  46. }
  47.  
  48. public List<Firework> find(World world) {
  49. List<Firework> fireworkList = new ArrayList<Firework>();
  50. for (Entity entity : world.getEntities()) {
  51. if(entity instanceof Firework) {
  52. Firework firework = (Firework) entity;
  53. if(firework.getFireworkMeta().getEffects().contains(buildFireworkEffect())) {
  54. fireworkList.add(firework);
  55. }
  56. }
  57. }
  58. return fireworkList;
  59. }
  60.  
  61. private FireworkMeta buildFireworkMeta(Firework firework) {
  62. FireworkMeta fireworkMeta = firework.getFireworkMeta();
  63.  
  64. FireworkEffect effect = buildFireworkEffect();
  65. fireworkMeta.setPower(power);
  66.  
  67. fireworkMeta.addEffect(effect);
  68. return fireworkMeta;
  69. }
  70.  
  71. private FireworkEffect buildFireworkEffect() {
  72. Builder builder = FireworkEffect.builder();
  73. if(type != null) {
  74. builder.with(type);
  75. }
  76. if(color != null) {
  77. builder.withColor(color);
  78. }
  79. if(fade != null) {
  80. builder.withFade(fade);
  81. }
  82. builder.flicker(flicker);
  83. builder.trail(trail);
  84. FireworkEffect effect = builder.build();
  85. return effect;
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement