Package com.minigameworld.frames
Class MiniGame
java.lang.Object
com.minigameworld.frames.MiniGame
- All Implemented Interfaces:
GameEventListener
- Direct Known Subclasses:
FakeMiniGame
,SoloBattleMiniGame
,SoloMiniGame
,TeamBattleMiniGame
,TeamMiniGame
MiniGame class of all minigames
- Custom minigame frame can be made with extending this class
- Message only send to same minigame players
- Custom minigame frame can be made with extending this class
- Message only send to same minigame players
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Check game finish conditionGet just class nameShortcut methodboolean
containsPlayer(org.bukkit.entity.Player p)
Check player is playing this minigame (not check player is viewing)
To check player is viewing this minigame, getviewManager()
and useMiniGameViewManager.isViewing(Player)
Shortcut methodGet custom optionGet data managerboolean
Compare withisSameTemplate(MiniGame)
andMiniGameSetting.getId()
void
[IMPORTANT] Use finishGame() for endpoint of a minigame, never run anything after finishGame()
Finish minigame
Notify FINISH to observers
Execute "onFinish()" at firstGets minigame frame type (e.g.gamePlayer(org.bukkit.entity.Player p)
Get PlayerDataGet all player data listvoid
handleException(MiniGameExceptionEvent exception)
- Handle exception
- If player exception
- callsonException(MiniGameExceptionEvent)
- player will leave the game
- checksMiniGameSetting.GameFinishCondition
- If server exception
- minigame will be finishedid()
Shortcut methodprotected void
Init custom data with this methodprotected void
initGame()
Executed every time when game startsvoid
Init(reset) minigame settings
[IMPORTANT]
- Initialize settings on every startGet inventory managerboolean
isActive()
Shortcut methodboolean
isEmpty()
Check minigame has playersboolean
isFull()
Check minigame is full of playersprotected boolean
CheckplayerCount()
is less thanMiniGameSetting.getGameFinishConditionPlayerCount()
protected boolean
ChecklivePlayersCount()
is less thanMiniGameSetting.getGameFinishConditionPlayerCount()
protected boolean
isLive(org.bukkit.entity.Player p)
Check player is liveprotected boolean
ChecklivePlayersCount()
is more thanMiniGameSetting.getGameFinishConditionPlayerCount()
boolean
isSameTemplate(MiniGame game)
Check two games drived from the same template game or notboolean
Shortcut methodboolean
joinGame(org.bukkit.entity.Player p)
Join player to minigameboolean
leaveGame(org.bukkit.entity.Player p)
When a player tries to leave minigame before start
[IMPORTANT] This method must be called by theMiniGameManager.leaveGame(Player)
ONLY.int
Get left play time (sec)int
Get left waiting time (sec)protected List<org.bukkit.entity.Player>
Get live players listprotected int
Get live players countvoid
Load custom data with this methodorg.bukkit.Location
location()
Shortcut methodGet location managerint
Shortcut methodminigame()
int
Shortcut methodprotected void
minusEveryoneScore(int amount)
Minus everyone's scoreprotected void
minusScore(org.bukkit.entity.Player p, int amount)
Minus player scoreprotected void
onException(MiniGameExceptionEvent exception)
Called only in play state and when exception is passed
Exception
protected void
onFinish()
Executed after finish delay end and before the game finished (players remains)protected void
Executed when finish delay startsvoid
onJoin(org.bukkit.entity.Player p)
Called after the player joined after isolated from the outside
[IMPORTANT] Player state is already saved and now pure statevoid
onLeave(org.bukkit.entity.Player p)
Called when the player leave this game before start
[IMPORTANT] Player state is still isolated from the outside (player state will be restored after this method)
[IMPORTANT] Only called before the game startsprotected void
onStart()
Executed immediately after game startedvoid
onUnview(org.bukkit.entity.Player p)
Called before the player unview this game
[IMPORTANT] Player state is still isolated from the outside (player state will be restored after this method)void
onView(org.bukkit.entity.Player p)
Called after the player enter viewing after isolated from the outside
[IMPORTANT] Player state is already saved and now pure statevoid
particle(org.bukkit.entity.Player p, org.bukkit.Particle particle, int count, double speed)
Spawn particle around of the playervoid
particle(org.bukkit.Location loc, org.bukkit.Particle particle, int count, double speed)
Spawn particles around of the locationvoid
particles(org.bukkit.Particle particle, int count, double speed)
Spawn particle around of all the playersint
Get playing players countList<org.bukkit.entity.Player>
players()
Get copied player listvoid
playSound(org.bukkit.entity.Player p, org.bukkit.Sound sound)
Play sound to a playervoid
playSounds(org.bukkit.Sound sound)
Play sound to all playersint
playTime()
Shortcut methodprotected void
plusEveryoneScore(int amount)
Plus everyone's scoreprotected void
plusScore(org.bukkit.entity.Player p, int amount)
Plus player scoreprotected void
Print scores to all players
Can print format differently depending on game typeprotected org.bukkit.entity.Player
Get random player of all playersList<? extends MiniGameRank>
rank()
Get rank dataint
score(org.bukkit.entity.Player p)
Get score of playerGet scoreboard managervoid
sendMessage(org.bukkit.entity.Player p, String msg)
Send message to player with minigame title prefixvoid
sendMessage(org.bukkit.entity.Player p, String msg, boolean prefix)
void
sendMessages(String msg)
Send message to all players with minigame title prefixvoid
sendMessages(String msg, boolean prefix)
void
Send title with minigame title prefix with default time settingsvoid
sendTitle(org.bukkit.entity.Player p, String title, String subTitle, int fadeIn, int stay, int fadeOut)
Send title with minigame title prefixvoid
sendTitles(String title, String subTitle)
Send title to all players with minigame title prefix with default time settingsvoid
sendTitles(String title, String subTitle, int fadeIn, int stay, int fadeOut)
Send title to all players with minigame title prefixprotected void
setLive(org.bukkit.entity.Player p, boolean live)
Mark player's livesetting()
Get Minigame settingboolean
Start minigame after check min player count
Notify START to observers
Execute "onStart()"com.wbm.plugin.util.instance.TaskManager
Get task managertitle()
Shortcut methodGet minigame title with class nameprotected org.bukkit.entity.Player
Get player who has the highest score of alltutorial()
Register minigame tutorialShortcut methodvoid
Update(fix) scoreboard
Hook methodGet view managerint
Shortcut method
-
Field Details
-
messenger
Language messenger
-
-
Constructor Details
-
MiniGame
protected MiniGame(String title, org.bukkit.Location location, int minPlayers, int maxPlayers, int playTime, int waitingTime)Constructor with location- Parameters:
title
- Used title in the server (different with class name)location
- Playing locationminPlayers
- Minimum player count to playmaxPlayers
- Maximum player count to playplayTime
- Minigame playing timewaitingTime
- Waiting time before join minigame
-
MiniGame
Base constructor
Location set to default (Bukkit.getWorld("world"))- Parameters:
title
- Used title in the server (different with class name)minPlayers
- Minimum player count to playmaxPlayers
- Maximum player count to playplayTime
- Minigame playing timewaitingTime
- Waiting time before join minigame
-
-
Method Details
-
tutorial
Register minigame tutorial -
initGame
protected void initGame()Executed every time when game starts -
onStart
protected void onStart()Executed immediately after game started -
onFinishDelay
protected void onFinishDelay()Executed when finish delay starts -
onFinish
protected void onFinish()Executed after finish delay end and before the game finished (players remains) -
onJoin
public void onJoin(org.bukkit.entity.Player p)Called after the player joined after isolated from the outside
[IMPORTANT] Player state is already saved and now pure state- Parameters:
p
- Joined player
-
onLeave
public void onLeave(org.bukkit.entity.Player p)Called when the player leave this game before start
[IMPORTANT] Player state is still isolated from the outside (player state will be restored after this method)
[IMPORTANT] Only called before the game starts- Parameters:
p
- Leaving player
-
onView
public void onView(org.bukkit.entity.Player p)Called after the player enter viewing after isolated from the outside
[IMPORTANT] Player state is already saved and now pure state- Parameters:
p
- Viewing player
-
onUnview
public void onUnview(org.bukkit.entity.Player p)Called before the player unview this game
[IMPORTANT] Player state is still isolated from the outside (player state will be restored after this method)- Parameters:
p
- Unviewing player
-
onException
Called only in play state and when exception is passed
Exception
-
initCustomData
protected void initCustomData()Init custom data with this method -
loadCustomData
public void loadCustomData()Load custom data with this method -
updateScoreboard
public void updateScoreboard()Update(fix) scoreboard
Hook method -
initSettings
public void initSettings()Init(reset) minigame settings
[IMPORTANT]
- Initialize settings on every start -
joinGame
public boolean joinGame(org.bukkit.entity.Player p)Join player to minigame- Parameters:
p
- Player who tries to join- Returns:
- Result of try to join
-
leaveGame
public boolean leaveGame(org.bukkit.entity.Player p)When a player tries to leave minigame before start
[IMPORTANT] This method must be called by theMiniGameManager.leaveGame(Player)
ONLY. (If player needs to be left in this MiniGame class, useonPlayerLeave(Player, String)
)- Parameters:
p
- leaving player- Returns:
- Result of try to leave
-
startGame
public boolean startGame()Start minigame after check min player count
Notify START to observers
Execute "onStart()" -
finishGame
public void finishGame()[IMPORTANT] Use finishGame() for endpoint of a minigame, never run anything after finishGame()
Finish minigame
Notify FINISH to observers
Execute "onFinish()" at first -
printScores
protected void printScores()Print scores to all players
Can print format differently depending on game type -
rank
Get rank data- Returns:
- Ordered data
-
handleException
- Handle exception
- If player exception
- callsonException(MiniGameExceptionEvent)
- player will leave the game
- checksMiniGameSetting.GameFinishCondition
- If server exception
- minigame will be finished- Parameters:
exception
- Minigame exception- See Also:
MiniGameExceptionEvent
-
checkGameFinishCondition
public void checkGameFinishCondition()Check game finish condition -
isEmpty
public boolean isEmpty()Check minigame has players- Returns:
- True if no players in minigame
-
isFull
public boolean isFull()Check minigame is full of players- Returns:
- True if players = max player count
-
containsPlayer
public boolean containsPlayer(org.bukkit.entity.Player p)Check player is playing this minigame (not check player is viewing)
To check player is viewing this minigame, getviewManager()
and useMiniGameViewManager.isViewing(Player)
- Parameters:
p
- Target player- Returns:
- True if player is playing minigame
-
players
Get copied player list- Returns:
- Copied Player list
-
playerCount
public int playerCount()Get playing players count- Returns:
- playing players count
-
sendMessage
Send message to player with minigame title prefix- Parameters:
p
- Audiencemsg
- message
-
sendMessage
-
sendMessages
Send message to all players with minigame title prefix- Parameters:
msg
- message
-
sendMessages
-
sendTitle
public void sendTitle(org.bukkit.entity.Player p, String title, String subTitle, int fadeIn, int stay, int fadeOut)Send title with minigame title prefix- Parameters:
p
- Audiencetitle
- Title stringsubTitle
- Subtitle stringfadeIn
- Fade in time (tick)stay
- Stay time (tick)fadeOut
- Fade out time (tick)
-
sendTitle
Send title with minigame title prefix with default time settings- Parameters:
p
- Audiencetitle
- Title stringsubTitle
- Subtitle string
-
sendTitles
Send title to all players with minigame title prefix- Parameters:
title
- Title stringsubTitle
- Subtitle stringfadeIn
- Fade in time (tick)stay
- Stay time (tick)fadeOut
- Fade out time (tick)
-
sendTitles
Send title to all players with minigame title prefix with default time settings- Parameters:
title
- Title stringsubTitle
- Subtitle string
-
playSound
public void playSound(org.bukkit.entity.Player p, org.bukkit.Sound sound)Play sound to a player- Parameters:
p
- Listenersound
- to play
-
playSounds
public void playSounds(org.bukkit.Sound sound)Play sound to all players- Parameters:
sound
- to play
-
particle
public void particle(org.bukkit.entity.Player p, org.bukkit.Particle particle, int count, double speed)Spawn particle around of the player- Parameters:
p
- Playerparticle
- Particle typecount
- particle countspeed
- particle spreading speed
-
particles
public void particles(org.bukkit.Particle particle, int count, double speed)Spawn particle around of all the players- Parameters:
particle
- Particle typecount
- particle countspeed
- particle spreading speed
-
particle
public void particle(org.bukkit.Location loc, org.bukkit.Particle particle, int count, double speed)Spawn particles around of the location- Parameters:
loc
- Particle spawn locationparticle
- Particle typecount
- particle countspeed
- particle spreading speed
-
gamePlayer
Get PlayerData- Parameters:
p
- Target player- Returns:
- PlayerData of p
-
gamePlayers
Get all player data list- Returns:
- PlayerData list
-
score
public int score(org.bukkit.entity.Player p)Get score of player- Parameters:
p
- Target player- Returns:
- Player's score
-
plusScore
protected void plusScore(org.bukkit.entity.Player p, int amount)Plus player score- Parameters:
p
- Target playeramount
- Score amount
-
plusEveryoneScore
protected void plusEveryoneScore(int amount)Plus everyone's score- Parameters:
amount
- Score amount
-
minusScore
protected void minusScore(org.bukkit.entity.Player p, int amount)Minus player score- Parameters:
p
- Target playeramount
- Score amount
-
minusEveryoneScore
protected void minusEveryoneScore(int amount)Minus everyone's score- Parameters:
amount
- Score amount
-
setLive
protected void setLive(org.bukkit.entity.Player p, boolean live)Mark player's live- Parameters:
p
- Target playerlive
- False to mark death
-
isLive
protected boolean isLive(org.bukkit.entity.Player p)Check player is live- Parameters:
p
- Target player- Returns:
- True if player is live
-
livePlayers
Get live players list- Returns:
- Live players list
-
livePlayersCount
protected int livePlayersCount()Get live players count- Returns:
- Live players count
-
isLessThanPlayersLive
protected boolean isLessThanPlayersLive()ChecklivePlayersCount()
is less thanMiniGameSetting.getGameFinishConditionPlayerCount()
- Returns:
- True if
livePlayersCount()
is less thanMiniGameSetting.getGameFinishConditionPlayerCount()
-
isMoreThanPlayersLive
protected boolean isMoreThanPlayersLive()ChecklivePlayersCount()
is more thanMiniGameSetting.getGameFinishConditionPlayerCount()
- Returns:
- True if
livePlayersCount()
is more thanMiniGameSetting.getGameFinishConditionPlayerCount()
-
isLessThanPlayersLeft
protected boolean isLessThanPlayersLeft()CheckplayerCount()
is less thanMiniGameSetting.getGameFinishConditionPlayerCount()
- Returns:
- True if
playerCount()
is less thanMiniGameSetting.getGameFinishConditionPlayerCount()
-
title
Shortcut method- Returns:
- Minigame title
-
coloredTitle
Shortcut method- Returns:
- Colored minigame title
-
location
public org.bukkit.Location location()Shortcut method- Returns:
- Minigame playing location
-
waitingTime
public int waitingTime()Shortcut method- Returns:
- Minigame waiting time
-
playTime
public int playTime()Shortcut method- Returns:
- Minigame play time
-
minPlayers
public int minPlayers()Shortcut method- Returns:
- Minigame max player count
-
maxPlayers
public int maxPlayers()Shortcut method- Returns:
- Minigame min player count
-
isActive
public boolean isActive()Shortcut method- Returns:
- True if minigame is active
-
id
Shortcut method- Returns:
- minigame id
-
isStarted
public boolean isStarted()Shortcut method- Returns:
- True if minigame has started
-
tutorials
Shortcut method- Returns:
- Minigame tutorial list
-
customData
Shortcut method- Returns:
- Minigame custom data map
-
titleWithClassName
Get minigame title with class name- Returns:
- title with class name
-
className
Get just class name- Returns:
- Simple class name
-
setting
Get Minigame setting- Returns:
- setting
-
leftWaitingTime
public int leftWaitingTime()Get left waiting time (sec)- Returns:
- Left waiting time
-
leftPlayTime
public int leftPlayTime()Get left play time (sec)- Returns:
- Left play time
-
taskManager
public com.wbm.plugin.util.instance.TaskManager taskManager()Get task manager- Returns:
- Task manager
-
dataManager
Get data manager- Returns:
- Data manager
-
locationManager
Get location manager- Returns:
- Location manager
-
customOption
Get custom option- Returns:
- Custom option
-
viewManager
Get view manager- Returns:
- View manager
-
scoreboardManager
Get scoreboard manager- Returns:
- Scoreboard manager
-
inventoryManager
Get inventory manager- Returns:
- Inventory manager
-
randomPlayer
protected org.bukkit.entity.Player randomPlayer()Get random player of all players- Returns:
- Random player
-
topPlayer
protected org.bukkit.entity.Player topPlayer()Get player who has the highest score of all- Returns:
- Null if there are no players
-
frameType
Gets minigame frame type (e.g. "Solo", "SoloBattle", "Team", "TeamBattle")
Override this method for custom frame minigame class- Returns:
- Minigame frame type
- See Also:
SoloMiniGame
,SoloBattleMiniGame
,TeamMiniGame
,TeamBattleMiniGame
-
isSameTemplate
Check two games drived from the same template game or not- Parameters:
game
- Checking game- Returns:
- True if two games are derived from the same template game
-
equals
Compare withisSameTemplate(MiniGame)
andMiniGameSetting.getId()
-
minigame
- Specified by:
minigame
in interfaceGameEventListener
-