Class TeamBattleMiniGame

java.lang.Object
com.minigameworld.frames.MiniGame
com.minigameworld.frames.TeamBattleMiniGame
All Implemented Interfaces:
GameEventListener

public abstract class TeamBattleMiniGame extends MiniGame
[Info]
- Minigame frame players battle with each teams
- min team count: 2 or more
- all teams have the same score
- team util class, methods

[Custom Option]
- group-chat: If true, send message only to team members (default: true)
- team-pvp: If true, team members can not attack each other(pvp option have to be set to true), (default: false)
- team-size: Related with MiniGameSetting.getMaxPlayers(), if "max-players" is 12 and "team-size" is 4 then 3 teams will be created. (default: 2)

[Team Register Mode]
- Participants divied into teams when game starts with mode
- See TeamBattleMiniGame.TeamRegisterMode

[Rule]
- Create Teams with createTeams()
- When use initGame(), must call super.initGame()
- If need different team types, override createTeams() without "super.createTeams()" and create custom teams (e.g. Boss player team vs challengers team) (recommended creating teams with teamSize())
- If use TeamRegisterMode.NONE, should register players to team with registerPlayersToTeam()
  • Constructor Details

    • TeamBattleMiniGame

      public TeamBattleMiniGame(String title, int minPlayers, int maxPlayers, int playTime, int waitingTime)
      maxPlayers is sum of all teams member size
  • Method Details

    • registerPlayersToTeam

      protected void registerPlayersToTeam()
      Registers players to team if TeamRegisterMode is NONE
    • createTeam

      protected void createTeam(TeamBattleMiniGame.Team team)
      Registers team to list
      Parameters:
      team - Team to register
    • createTeam

      protected void createTeam(TeamBattleMiniGame.Team... teams)
      Registers teams to list
      Parameters:
      teams - Teams to register
    • removeTeam

      protected void removeTeam(TeamBattleMiniGame.Team team)
      Remove team from playing minigame
      Parameters:
      team - Team to remove
    • getTeam

      protected TeamBattleMiniGame.Team getTeam(int teamNumber)
      Gets team
      Parameters:
      teamNumber - Index of list
      Returns:
      Team
    • getTeam

      protected TeamBattleMiniGame.Team getTeam(String teamName)
      Gets team
      Parameters:
      teamName - Team name
      Returns:
      Team
    • getTeam

      protected TeamBattleMiniGame.Team getTeam(org.bukkit.entity.Player p)
      Gets player's team
      Parameters:
      p - Target player
      Returns:
      Player team
    • hasTeam

      protected boolean hasTeam(org.bukkit.entity.Player p)
      Check player has team or not
      Parameters:
      p - Player to check
      Returns:
      True if player has a team
    • isSameTeam

      protected boolean isSameTeam(org.bukkit.entity.Player p1, org.bukkit.entity.Player p2)
      Check two team is the same team
      Parameters:
      p1 - Player of first team
      p2 - Player of second team
      Returns:
      True if two team is the same
    • getRandomTeam

      protected TeamBattleMiniGame.Team getRandomTeam()
      Gets random team
      Returns:
      Random team
    • getRandomTeam

      protected TeamBattleMiniGame.Team getRandomTeam(List<TeamBattleMiniGame.Team> teams)
      Gets random team in given list
      Parameters:
      teams - Teams to randomize
      Returns:
      Random Team
    • notEmptyTeamList

      protected List<TeamBattleMiniGame.Team> notEmptyTeamList()
      Returns not empty(exist one or more players) team list
      Returns:
      Not empty team list
    • getMinPlayerCountTeam

      protected TeamBattleMiniGame.Team getMinPlayerCountTeam()
      Gets team which has minimum player count
      Returns:
      Min player count team
    • getMaxPlayerCountTeam

      protected TeamBattleMiniGame.Team getMaxPlayerCountTeam()
      Gets team which has maximum team player count
      Returns:
      Max player count team
    • registerPlayerToMinPlayerCountTeam

      protected void registerPlayerToMinPlayerCountTeam(org.bukkit.entity.Player p)
      Registers player to team which has minimum player count
      Parameters:
      p - Player to join team
    • registerPlayerToMaxPlayerCountTeam

      protected void registerPlayerToMaxPlayerCountTeam(org.bukkit.entity.Player p)
      Registers player to team which has maximum player count
      Parameters:
      p - Player to join team
    • registerPlayerToRandomTeam

      protected void registerPlayerToRandomTeam(org.bukkit.entity.Player p)
      Registers player to random team
      Parameters:
      p - Player to join team
    • registerPlayerToTeam

      protected boolean registerPlayerToTeam(org.bukkit.entity.Player p, int teamNumber)
      Registers player to team with index
      Parameters:
      p - Player to join team
      teamNumber - Team index of list
      Returns:
      True if player join team, or false
    • registerPlayerToTeam

      protected boolean registerPlayerToTeam(org.bukkit.entity.Player p, String teamName)
      Registers player to team with name
      Parameters:
      p - Player to join team
      teamName - Team index of list
      Returns:
      True if player join team, or false
    • registerPlayerToTeam

      protected boolean registerPlayerToTeam(org.bukkit.entity.Player p, TeamBattleMiniGame.Team team)
      Registers player to team with team instance
      Parameters:
      p - Player to join team
      team - Team index of list
      Returns:
      True if player join team, or false
    • unregisterPlayerFromTeam

      protected boolean unregisterPlayerFromTeam(org.bukkit.entity.Player p)
      Unregisters player from team
      Parameters:
      p - Player to unregister from team
      Returns:
      True if player is in any team, or false
    • setTeamRegisterMode

      protected void setTeamRegisterMode(TeamBattleMiniGame.TeamRegisterMode teamRegisterMode)
      Sets team register mode
      Parameters:
      teamRegisterMode - TeamRegisterMode
    • getTeamRegisterMode

      public TeamBattleMiniGame.TeamRegisterMode getTeamRegisterMode()
      Gets team register mode
      Returns:
      TeamRegisterMode
    • setGroupChat

      protected void setGroupChat(boolean groupChat)
      Sets group chat
      Parameters:
      groupChat - groupChat
    • isGroupChat

      protected boolean isGroupChat()
      Check group chat is enabled
      Returns:
      True if enabled
    • setTeamPVP

      protected void setTeamPVP(boolean teamPvp)
      Sets team pvp (contains projectile damage)
      If true, team members can damage each other
      If false, team members can NOT damage each other
      Parameters:
      teamPvp - groupChat
    • isTeamPvp

      protected boolean isTeamPvp()
      Check team pvp is enabled
      Returns:
      True if enabled
    • setTeamSize

      protected void setTeamSize(int teamSize)
      Set team size
      Example) max-players: 10, team-size: 2 -> There are 5 teams
      Parameters:
      teamSize - Team size
    • getTeamSize

      public int getTeamSize()
      Get team size
      Returns:
      Team size
    • getTeamCountLimit

      public int getTeamCountLimit()
    • getTeams

      public List<TeamBattleMiniGame.Team> getTeams()
      Gets all team list
      Returns:
      Team list
    • getTeamCount

      protected int getTeamCount()
      Gets all team count
      Returns:
      Team count
    • getLiveTeams

      protected List<TeamBattleMiniGame.Team> getLiveTeams()
      Gets live teams
      Returns:
      Live teams
    • getLiveTeamCount

      protected int getLiveTeamCount()
      Gets live teams count
      Returns:
      Live teams count
    • plusTeamScore

      protected void plusTeamScore(int teamNumber, int amount)
      Plus team score with team index
      Parameters:
      teamNumber - Team index
      amount - Amount to plus
    • plusTeamScore

      protected void plusTeamScore(String teamName, int amount)
      Plus team score with team name
      Parameters:
      teamName - Team name
      amount - Amount to plus
    • plusTeamScore

      protected void plusTeamScore(org.bukkit.entity.Player p, int amount)
      Plus score of the team which player belongs
      Parameters:
      p - Team of Player
      amount - Amount to plus
    • minusTeamScore

      protected void minusTeamScore(int teamNumber, int amount)
      Minus team score with team index
      Parameters:
      teamNumber - Team index
      amount - Amount to minus
    • minusTeamScore

      protected void minusTeamScore(String teamName, int amount)
      Minus team score with team name
      Parameters:
      teamName - Team name
      amount - Amount to minus
    • minusTeamScore

      protected void minusTeamScore(org.bukkit.entity.Player p, int amount)
      Minus score of the team which player belongs
      Parameters:
      p - Team of Player
      amount - Amount to minus
    • getTeamScore

      protected int getTeamScore(int teamNumber)
      Gets team score with index
      Parameters:
      teamNumber - Team index
      Returns:
      Team score
    • getTeamScore

      protected int getTeamScore(String teamName)
      Gets team score with team name
      Parameters:
      teamName - Team name
      Returns:
      Team score
    • getTeamScore

      protected int getTeamScore(org.bukkit.entity.Player p)
      Gets score of team which player belongs
      Parameters:
      p - Team of player
      Returns:
      Team score
    • isLessThanPlayersLive

      protected boolean isLessThanPlayersLive()
      Counting unit changed: "player" to "team"
      [IMPORTANT] Must override MiniGame.isLessThanPlayersLive(), because will be checked in MiniGame.checkGameFinishCondition() and MiniGamePlayer.setLive(boolean)
      Overrides:
      isLessThanPlayersLive in class MiniGame
      Returns:
      True if MiniGame.livePlayersCount() is less than MiniGameSetting.getGameFinishConditionPlayerCount()
    • isLessThanTeamsLive

      protected boolean isLessThanTeamsLive()
      Returns:
      True if live teams are less than MiniGameSetting.getGameFinishConditionPlayerCount()
    • isMoreThanPlayersLive

      protected boolean isMoreThanPlayersLive()
      Counting unit changed: "player" to "team"
      [IMPORTANT] Must override MiniGame.isMoreThanPlayersLive(), because will be checked in MiniGame.checkGameFinishCondition() and MiniGamePlayer.setLive(boolean)
      Overrides:
      isMoreThanPlayersLive in class MiniGame
      Returns:
      True if MiniGame.livePlayersCount() is more than MiniGameSetting.getGameFinishConditionPlayerCount()
    • isMoreThanTeamsLive

      protected boolean isMoreThanTeamsLive()
      Returns:
      True if live teams are more than MiniGameSetting.getGameFinishConditionPlayerCount()
    • isLessThanPlayersLeft

      protected boolean isLessThanPlayersLeft()
      Counting unit changed: "player" to "team"
      [IMPORTANT] Must override MiniGame.isLessThanPlayersLeft(), because will be checked in MiniGame.checkGameFinishCondition() and MiniGamePlayer.setLive(boolean)
      Overrides:
      isLessThanPlayersLeft in class MiniGame
      Returns:
      True if MiniGame.playerCount() is less than MiniGameSetting.getGameFinishConditionPlayerCount()
    • isLessThanTeamsLeft

      protected boolean isLessThanTeamsLeft()
      Returns:
      True if left teams are less than MiniGameSetting.getGameFinishConditionPlayerCount()
    • initGame

      protected void initGame()
      Description copied from class: MiniGame
      Executed every time when game starts
      Overrides:
      initGame in class MiniGame
    • createTeams

      protected void createTeams()
      Creates team with overriding this method
    • onStart

      protected void onStart()
      Description copied from class: MiniGame
      Executed immediately after game started
      Overrides:
      onStart in class MiniGame
    • onTeamPvp

      protected void onTeamPvp(org.bukkit.event.entity.EntityDamageByEntityEvent e)
    • onChat

      protected void onChat(org.bukkit.event.player.AsyncPlayerChatEvent e)
    • printScores

      protected void printScores()
      Description copied from class: MiniGame
      Print scores to all players
      Can print format differently depending on game type
      Overrides:
      printScores in class MiniGame
    • rank

      public List<? extends MiniGameRank> rank()
      Gets team rank
      Overrides:
      rank in class MiniGame
      Returns:
      Ordered team list by score
    • onException

      protected void onException(MiniGameExceptionEvent exception)
      Description copied from class: MiniGame
      Called only in play state and when exception is passed
      Exception
      Overrides:
      onException in class MiniGame
    • frameType

      public String frameType()
      Description copied from class: MiniGame
      Gets minigame frame type (e.g. "Solo", "SoloBattle", "Team", "TeamBattle")
      Override this method for custom frame minigame class
      Overrides:
      frameType in class MiniGame
      Returns:
      Minigame frame type
      See Also:
      SoloMiniGame, SoloBattleMiniGame, TeamMiniGame, TeamBattleMiniGame