diff --git a/src/main/java/moe/sdg/PluginSDG/GameManager.java b/src/main/java/moe/sdg/PluginSDG/GameManager.java index 63a4d8c..a3721ef 100644 --- a/src/main/java/moe/sdg/PluginSDG/GameManager.java +++ b/src/main/java/moe/sdg/PluginSDG/GameManager.java @@ -1,5 +1,7 @@ package moe.sdg.PluginSDG; +import org.apache.commons.lang.NotImplementedException; +import org.bukkit.Location; import org.bukkit.plugin.java.JavaPlugin; public class GameManager extends JavaPlugin @@ -9,4 +11,9 @@ public class GameManager extends JavaPlugin { getLogger().info("Game manager loaded."); } + + public Location getHubLocation() + { + throw new NotImplementedException(); + } } diff --git a/src/main/java/moe/sdg/PluginSDG/MiniGame.java b/src/main/java/moe/sdg/PluginSDG/MiniGame.java index e177b92..41a8079 100644 --- a/src/main/java/moe/sdg/PluginSDG/MiniGame.java +++ b/src/main/java/moe/sdg/PluginSDG/MiniGame.java @@ -1,15 +1,20 @@ package moe.sdg.PluginSDG; +import org.bukkit.Location; import org.bukkit.entity.Player; - import java.util.ArrayList; public abstract class MiniGame { private final ArrayList _players; + private final GameManager _manager; + private final Location _lobbyLocation; - public MiniGame() + + public MiniGame(GameManager manager) { + this._manager = manager; + this._lobbyLocation = null; this._players = new ArrayList(); } @@ -23,18 +28,24 @@ public abstract class MiniGame public abstract int getMaxPlayers(); ///! @brief Method called when a player wants to join the game. - //! @param player The player who will join + //! @param player The player who will join. //! @return True if the player has joined the game, false otherwise. public boolean join(Player player) { if (this.getMaxPlayers() < this.getCurrentPlayers() + 1) return false; this._players.add(player); + player.teleport(this._lobbyLocation); return true; } //! @brief Method called when a player wants to leave the game. - public abstract void leave(); + //! @param player The player who will leave. + public void leave(Player player) + { + this._players.remove(player); + player.teleport(_manager.getHubLocation()); + } //! @brief Start the game. public abstract void start(); diff --git a/src/main/java/moe/sdg/PluginSDG/TeamMiniGame.java b/src/main/java/moe/sdg/PluginSDG/TeamMiniGame.java index 346eb05..da4aad3 100644 --- a/src/main/java/moe/sdg/PluginSDG/TeamMiniGame.java +++ b/src/main/java/moe/sdg/PluginSDG/TeamMiniGame.java @@ -11,6 +11,7 @@ class Team public Team(String name, int maxPlayer) { + super(); this.name = name; this.maxPlayer = maxPlayer; this._players = new ArrayList(); @@ -36,8 +37,10 @@ public abstract class TeamMiniGame extends MiniGame { private final ArrayList _teams; - public TeamMiniGame() + + public TeamMiniGame(GameManager manager) { + super(manager); this._teams = new ArrayList(); }