/** * Creates an instance by copying from the given {@link ItemMeta}. If that item is another * {@link FireworkMeta}, its effects and power are copied; otherwise, the new firework has no * effects and zero power. * @param meta the {@link ItemMeta} to copy */ public GlowMetaFirework(ItemMeta meta) { super(meta); if (!(meta instanceof FireworkMeta)) { return; } FireworkMeta firework = (FireworkMeta) meta; effects.addAll(firework instanceof GlowMetaFirework ? ((GlowMetaFirework) firework).effects : firework.getEffects()); power = firework.getPower(); }
fireworkMeta.addEffects(firework.getEffects()); fireworkMeta.setPower(firework.getPower());
if (fireworkMeta.hasEffects()) { StringBuilder builder = new StringBuilder(); builder.append(" firework:"); for (FireworkEffect effect: fireworkMeta.getEffects()) { builder.append(effect.getType() + ":"); for (Color c: effect.getColors()) { builder.append(" power:" + fireworkMeta.getPower()); firework = builder.toString();
@Override public void setStrength(int strength) { fm.setPower(strength); }
/** * Creates an instance. * * @param location the location * @param spawningEntity TODO: document this parameter * @param boostedEntity TODO: document this parameter * @param item the firework rocket as an item */ public GlowFirework(Location location, UUID spawningEntity, LivingEntity boostedEntity, ItemStack item) { super(location); this.spawningEntity = spawningEntity; setBoostedEntity(boostedEntity); setSize(0.25f, 0.25f); ThreadLocalRandom random = ThreadLocalRandom.current(); setVelocity(new Vector(random.nextGaussian() * 0.001, 0.05, random.nextGaussian() * 0.001)); setFireworkItem(item); int power = getFireworkMeta().getPower(); lifeTime = calculateLifeTime(power); }
@Override public void addEffect(MCFireworkEffect effect) { fm.addEffect((FireworkEffect) effect.getHandle()); }
@Override public List<MCFireworkEffect> getEffects() { List<MCFireworkEffect> effects = new ArrayList<>(); for(FireworkEffect effect : fm.getEffects()) { effects.add(new BukkitMCFireworkEffect(effect)); } return effects; }
.with(getFireworkType()) .build(); fireworkMeta.addEffects(fireworkEffect); firework.setFireworkMeta(fireworkMeta); firework.setVelocity(location.getDirection().multiply(0));
@Override public int getStrength() { return fm.getPower(); }
@Override public MCFirework launchFirework(MCLocation l, int strength, List<MCFireworkEffect> effects) { Firework firework = (Firework) w.spawnEntity(((BukkitMCLocation) l).asLocation(), EntityType.FIREWORK); FireworkMeta meta = firework.getFireworkMeta(); meta.setPower(strength); for(MCFireworkEffect effect : effects) { meta.addEffect((FireworkEffect) effect.getHandle()); } firework.setFireworkMeta(meta); return new BukkitMCFirework(firework); }
FireworkMeta firework = (FireworkMeta) meta; int i = 0; for (FireworkEffect effect : firework.getEffects()) { serialiseFireworkEffect(key.getRelative("firework.effects." + i), effect); i++; key.setInt("firework.power", firework.getPower()); } else { key.removeKey("firework");
/** * Get the power for a firework(s) item (stack). * * @param item * @return The power. Should be between 0 and 127 including edges, in case * of valid items, according to javadocs (Spigot MC 1.11.2). In case * the item is null or can't be judged, -1 is returned. */ public static int getFireworksPower(final ItemStack item) { if (item == null || item.getType() != BridgeMaterial.FIREWORK_ROCKET) { return 0; } final ItemMeta meta = item.getItemMeta(); if (!(meta instanceof FireworkMeta)) { // INDIRECT: With elytra, this already exists. return 0; } final FireworkMeta fwMeta = (FireworkMeta) meta; return fwMeta.getPower(); }
protected void detonate(Location location, Vector v) { final Firework fw = (Firework) location.getWorld().spawnEntity(location.add(v), EntityType.FIREWORK); location.subtract(v); FireworkMeta meta = fw.getFireworkMeta(); meta.setPower(0); for (int i = 0; i < intensity; i++) { meta.addEffect(firework); } fw.setFireworkMeta(meta); fw.detonate(); } }
if (!firework.checkEffects(fireworkMeta.getEffects())) { return false; if (!firework.checkPower(fireworkMeta.getPower())) { return false;
public void partyMode(MinigamePlayer player){ if(onPartyMode()){ Location loc = player.getPlayer().getLocation(); Firework firework = (Firework) player.getPlayer().getWorld().spawnEntity(loc, EntityType.FIREWORK); FireworkMeta fwm = firework.getFireworkMeta(); Random chance = new Random(); Type type = Type.BALL_LARGE; if(chance.nextInt(100) < 50){ type = Type.BALL; } Color col = Color.fromRGB(chance.nextInt(255), chance.nextInt(255), chance.nextInt(255)); FireworkEffect effect = FireworkEffect.builder().with(type).withColor(col).flicker(chance.nextBoolean()).trail(chance.nextBoolean()).build(); fwm.addEffect(effect); fwm.setPower(1); firework.setFireworkMeta(fwm); } }
public void spawnFireworks(Player player) { int power = Misc.getRandom().nextInt(3) + 1; Type fireworkType = Type.values()[Misc.getRandom().nextInt(Type.values().length)]; double varX = Misc.getRandom().nextGaussian() * 3; double varZ = Misc.getRandom().nextGaussian() * 3; Firework fireworks = (Firework) player.getWorld().spawnEntity(player.getLocation().add(varX, 0, varZ), EntityType.FIREWORK); FireworkMeta fireworkmeta = fireworks.getFireworkMeta(); FireworkEffect effect = FireworkEffect.builder().flicker(Misc.getRandom().nextBoolean()).withColor(colorChoose()).withFade(colorChoose()).with(fireworkType).trail(Misc.getRandom().nextBoolean()).build(); fireworkmeta.addEffect(effect); fireworkmeta.setPower(power); fireworks.setFireworkMeta(fireworkmeta); }
public static void fireworkParticleShower(Player player, Color color) { Location location = player.getLocation(); location.setY(location.getY() + (player.isInsideVehicle() ? 1.0 : -1.0)); location.setPitch(-90); Firework firework = (Firework) player.getWorld().spawnEntity(location, EntityType.FIREWORK); firework.setMetadata(mcMMO.funfettiMetadataKey, new FixedMetadataValue(mcMMO.p, null)); FireworkMeta fireworkMeta = firework.getFireworkMeta(); FireworkEffect effect = FireworkEffect.builder().flicker(false).withColor(color).with((Config.getInstance().getLargeFireworks() ? Type.BALL_LARGE : Type.BALL)).trail(true).build(); fireworkMeta.addEffect(effect); fireworkMeta.addEffect(effect); fireworkMeta.setPower(0); firework.setFireworkMeta(fireworkMeta); }