- public class TestFirework {
- //获取一个烟火之星的ItemStack实例
- static ItemStack firework = new ItemStack(Material.FIREWORK_CHARGE);
- public static void load(){
- //强制类型转换为FireworkEffectMeta
- //注意,这里只能使用烟火之星,请不要使用烟花
- FireworkEffectMeta effectMeta = (FireworkEffectMeta) firework.getItemMeta();
- //为了自定义烟花样式,我们要使用FireworkEffect.Bulider内部类
- //使用builder()方法获取内部类FireworkEffect.Bulider
- //这个类用于链式设置烟花的各种属性
- //什么是链式?这就是链式
- FireworkEffect fe = FireworkEffect.builder()
- .withColor(Color.RED,Color.YELLOW)
- .withFade(Color.GREEN,Color.BLUE)
- .withFlicker()
- .withTrail()
- .with(FireworkEffect.Type.BALL)
- .build();
- //设置烟花样式
- effectMeta.setEffect(fe);
- //最后设置为我们的Meta
- firework.setItemMeta(effectMeta);
- }
- }
复制代码
- public class TestFireworkNew {
- //实例化烟花的ItemStack
- static ItemStack fff = new ItemStack(Material.FIREWORK);
- public static void load(){
- //只有烟花才可以强制类型转换为FireworkMeta
- FireworkMeta f = (FireworkMeta) fff.getItemMeta();
- //定义两个FireworkEffect
- FireworkEffect f1 = FireworkEffect.builder()
- .withColor(Color.RED,Color.YELLOW)
- .withFade(Color.GREEN,Color.BLUE)
- .withFlicker()
- .withTrail()
- .with(FireworkEffect.Type.CREEPER)
- .build();
- FireworkEffect f2 = FireworkEffect.builder()
- .withColor(Color.RED,Color.YELLOW)
- .withFade(Color.GREEN,Color.BLUE)
- .withFlicker()
- .withTrail()
- .with(FireworkEffect.Type.STAR)
- .build();
- //为烟花添加Effect
- //可以使用addEffects()方法添加多个FireworkEffect
- f.addEffects(f1,f2);
- //设置烟花飞行时间,1就够了
- f.setPower(1);
- fff.setItemMeta(f);
- }
- }
复制代码 |