001package com.ericlam.mc.minigames.core.manager;
002
003import org.bukkit.Color;
004import org.bukkit.Location;
005import org.bukkit.entity.Firework;
006import org.bukkit.entity.Player;
007import org.bukkit.inventory.meta.FireworkMeta;
008
009import java.util.List;
010import java.util.Random;
011
012/**
013 * 煙火管理器
014 */
015public interface FireWorkManager {
016
017    /**
018     * 獲取煙火設定
019     *
020     * @param firework 煙火
021     * @return 煙火設定
022     */
023    FireworkMeta getFirework(Firework firework);
024
025    /**
026     * 獲取小煙火設定
027     *
028     * @param firework 煙火
029     * @return 煙火設定
030     */
031    FireworkMeta getQuickFirework(Firework firework);
032
033    /**
034     * 獲取隨機顏色
035     *
036     * @param random 隨機
037     * @return 顏色
038     */
039    Color getRandomColor(Random random);
040
041    /**
042     * 生成煙火
043     *
044     * @param player 生成位置
045     */
046    void spawnFireWork(Player player);
047
048    /**
049     * 生成一連串煙火
050     *
051     * @param locations 一連串的位置
052     */
053    void spawnFireWork(List<Location> locations);
054
055}