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}