From 0c83052d2725d9d63db1a51ee80d48f35414a915 Mon Sep 17 00:00:00 2001
From: Anonymus Raccoon
Date: Fri, 30 Oct 2020 19:47:31 +0100
Subject: [PATCH] Starting to create lobby management
---
.../java/moe/sdg/PluginSDG/GameManager.java | 7 +++++++
src/main/java/moe/sdg/PluginSDG/MiniGame.java | 19 +++++++++++++++----
.../java/moe/sdg/PluginSDG/TeamMiniGame.java | 5 ++++-
3 files changed, 26 insertions(+), 5 deletions(-)
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();
}