001package com.ericlam.mc.minigames.core.event.section;
002
003import com.ericlam.mc.minigames.core.character.GamePlayer;
004import com.ericlam.mc.minigames.core.game.GameState;
005import com.ericlam.mc.minigames.core.game.GameTeam;
006import com.ericlam.mc.minigames.core.game.InGameState;
007import com.ericlam.mc.minigames.core.manager.PlayerManager;
008import com.google.common.collect.ImmutableList;
009
010import javax.annotation.Nonnull;
011import javax.annotation.Nullable;
012
013/**
014 * 遊戲結束事件,當遊戲結束後被觸發
015 */
016public final class GamePreEndEvent extends GameSectionEvent {
017
018    private final ImmutableList<GamePlayer> winners;
019
020    private final GameTeam winnerTeam;
021
022    public GamePreEndEvent(@Nonnull PlayerManager playerManager, ImmutableList<GamePlayer> winners, @Nullable GameTeam winnerTeam, @Nullable InGameState inGameState, GameState gameState) {
023        super(playerManager, inGameState, gameState);
024        this.winners = winners;
025        this.winnerTeam = winnerTeam;
026    }
027
028    /**
029     * 獲取勝利者
030     *
031     * @return 勝利者
032     */
033    public ImmutableList<GamePlayer> getWinners() {
034        return winners;
035    }
036
037    /**
038     * 獲取勝利隊伍,若果沒有隊伍,則為 null
039     *
040     * @return 勝利隊伍
041     */
042    @Nullable
043    public GameTeam getWinnerTeam() {
044        return winnerTeam;
045    }
046}