diff --git a/README.md b/README.md
index 91e032f..4484cc5 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ Made by [The Asgard](https://asgrad.fun/) with love 💙
[discord]: https://img.shields.io/badge/Our-discord-blue?style=for-the-badge&logo=discord
-[version]: https://img.shields.io/badge/Version-v1.2.0-success?style=for-the-badge&logo=wiki
+[version]: https://img.shields.io/badge/Version-v1.3.0-success?style=for-the-badge&logo=wiki
[download]: #how-to-use
[wiki]: https://img.shields.io/badge/-Our%20wiki-yellow?style=for-the-badge&logo=wiki
@@ -18,7 +18,7 @@ Made by [The Asgard](https://asgrad.fun/) with love 💙
[docs]: https://img.shields.io/badge/Our%20documentation-v1.2.0-important?style=for-the-badge&logo=wiki
[docs-url]: https://github.com/TheAsgard/TAGA/wiki/Documentation
-[minecraft]: https://img.shields.io/badge/Minecraft-1.16.5-red?style=for-the-badge&logo=mojang-studios
+[minecraft]: https://img.shields.io/badge/Minecraft-1.17-red?style=for-the-badge&logo=mojang-studios
[minecraft-url]: https://www.minecraft.net/
[![version][]][download]
@@ -34,7 +34,7 @@ Made by [The Asgard](https://asgrad.fun/) with love 💙
## How to use
-Requires [**Minecraft 1.16.5**][minecraft-url] or **higher**.
+Requires [**Minecraft 1.17**][minecraft-url]
Works with [PaperMC][papermc-url], [SpigotMC][spigotmc-url], [MohistMC][mohist-url], [CraftBukkit][bukkit-url] etc.
> #### For Maven
@@ -43,7 +43,7 @@ Works with [PaperMC][papermc-url], [SpigotMC][spigotmc-url], [MohistMC][mohist-u
fun.asgard
TAGA
- v1.2.0
+ v1.3.0
```
@@ -58,7 +58,7 @@ repositories {
```
```gradle
dependencies {
- implementation 'fun.asgard:TAGA:v1.2.0'
+ implementation 'fun.asgard:TAGA:v1.3.0'
}
```
diff --git a/pom.xml b/pom.xml
index 97821f4..7673a3b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,82 +1,88 @@
-
-
- 4.0.0
-
- fun.asgard
- TAGA
- v1.2.0
- jar
-
- TAGA
-
-
- 11
- UTF-8
-
-
-
-
- github
- GitHub TheAsgard Apache Maven Packages
- https://maven.pkg.github.com/TheAsgard/TAGA
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.1
-
- ${java.version}
- ${java.version}
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.2.4
-
-
- package
-
- shade
-
-
- false
-
-
-
-
-
-
-
- src/main/resources
- true
-
-
-
-
-
-
- papermc-repo
- https://papermc.io/repo/repository/maven-public/
-
-
- sonatype
- https://oss.sonatype.org/content/groups/public/
-
-
-
-
-
- com.destroystokyo.paper
- paper-api
- 1.16.5-R0.1-SNAPSHOT
- provided
-
-
-
+
+
+ 4.0.0
+
+ fun.asgard
+ TAGA
+ v1.2.0
+ jar
+
+ TAGA
+
+
+ 16
+ UTF-8
+
+
+
+
+
+ maven-assembly-plugin
+
+
+
+ fun.asgard.TAGA
+
+
+
+ jar-with-dependencies
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.4
+
+
+ package
+
+ shade
+
+
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 15
+ 15
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ papermc-repo
+ https://papermc.io/repo/repository/maven-public/
+
+
+ sonatype
+ https://oss.sonatype.org/content/groups/public/
+
+
+
+
+
+ com.destroystokyo.paper
+ paper-api
+ 1.16.5-R0.1-SNAPSHOT
+ provided
+
+
+
+
diff --git a/src/main/java/fun/asgard/Handler.java b/src/main/java/fun/asgard/Handler.java
deleted file mode 100644
index 8ea6b05..0000000
--- a/src/main/java/fun/asgard/Handler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package fun.asgard;
-
-import fun.asgard.api.events.GamePlayerDeathEvent;
-import fun.asgard.api.objects.GamePlayer;
-
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.entity.PlayerDeathEvent;
-import org.bukkit.event.player.PlayerKickEvent;
-import org.bukkit.plugin.Plugin;
-
-public class Handler implements Listener {
-
- private final TAGA pl;
- private final Plugin client;
-
- protected Handler(TAGA taga, Plugin client) {
- this.pl = taga;
- this.client = client;
- }
-
- @EventHandler
- public void onPlayerKick(PlayerKickEvent event) {
- this.pl.getGameManager().getGames().forEach((name, game) -> {
- if (game.isLeaveOnKick()
- && game.getPlayers().containsKey(event.getPlayer())) {
- game.disconnectPlayer(game.getPlayers().get(event.getPlayer()));
- }
- });
- }
-
- @EventHandler
- public void onPlayerDeath(PlayerDeathEvent event) {
- this.pl.getGameManager().getGames().forEach((name, game) -> {
- if (game.getPlayers().containsKey(event.getEntity())) {
- GamePlayer gp = game.getPlayers().get(event.getEntity());
- gp.setDied(true);
- this.client.getServer().getPluginManager()
- .callEvent(new GamePlayerDeathEvent(game, gp));
- }
- });
- }
-
-}
diff --git a/src/main/java/fun/asgard/TAGA.java b/src/main/java/fun/asgard/TAGA.java
deleted file mode 100644
index 2f1e7c7..0000000
--- a/src/main/java/fun/asgard/TAGA.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package fun.asgard;
-
-import fun.asgard.internal.managers.GameManager;
-import fun.asgard.internal.managers.TaskManager;
-
-import org.bukkit.event.Listener;
-import org.bukkit.plugin.Plugin;
-
-public final class TAGA implements Listener {
-
- private final GameManager gm;
- private final TaskManager tm;
-
- private static final String VERSION = "v1.2.0";
-
- public TAGA (Plugin client) {
- if (client == null)
- throw new IllegalArgumentException("Plugin must be valid");
-
- client.getServer().getLogger().info("[TAGA] Starting TAGA-" + getVersion() + " on " + client.getServer().getVersion());
-
- this.gm = new GameManager(this, client);
- this.tm = new TaskManager(this, client);
- client.getServer().getPluginManager().registerEvents(new Handler(this, client), client);
- }
-
- public GameManager getGameManager() {
- return gm;
- }
-
- public TaskManager getTaskManager() {
- return tm;
- }
-
- public static String getVersion() {
- return VERSION;
- }
-
-}
diff --git a/src/main/java/fun/asgard/api/events/GamePlayerDeathEvent.java b/src/main/java/fun/asgard/api/events/GamePlayerDeathEvent.java
deleted file mode 100644
index 95e2a35..0000000
--- a/src/main/java/fun/asgard/api/events/GamePlayerDeathEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package fun.asgard.api.events;
-
-import fun.asgard.api.objects.Game;
-
-import fun.asgard.api.objects.GamePlayer;
-import org.bukkit.event.Event;
-import org.bukkit.event.HandlerList;
-
-import org.jetbrains.annotations.NotNull;
-
-public class GamePlayerDeathEvent extends Event {
-
- private static final HandlerList handlers = new HandlerList();
-
- private final GamePlayer player;
- private final Game game;
-
- /**
- *
- * @param game Game
- * @param player Game player
- */
- public GamePlayerDeathEvent(Game game, GamePlayer player) {
- this.player = player;
- this.game = game;
- }
-
- public GamePlayer getPlayer() {
- return player;
- }
-
- public Game getGame() {
- return game;
- }
-
- public @NotNull HandlerList getHandlers() {
- return handlers;
- }
-
- public static HandlerList getHandlerList() {
- return handlers;
- }
-
-}
diff --git a/src/main/java/fun/asgard/api/events/GameStartEvent.java b/src/main/java/fun/asgard/api/events/GameStartEvent.java
deleted file mode 100644
index 8d740b7..0000000
--- a/src/main/java/fun/asgard/api/events/GameStartEvent.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package fun.asgard.api.events;
-
-import fun.asgard.api.objects.Game;
-
-import fun.asgard.api.objects.GamePlayer;
-import org.bukkit.event.Event;
-import org.bukkit.event.HandlerList;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Arrays;
-import java.util.HashSet;
-
-public class GameStartEvent extends Event {
-
- private static final HandlerList handlers = new HandlerList();
-
- private final HashSet players = new HashSet<>();
- private final Game game;
-
- /**
- *
- * @param game Game
- * @param players Game players
- */
- public GameStartEvent(Game game, GamePlayer[] players) {
- this.players.addAll(Arrays.asList(players));
- this.game = game;
- }
-
- /**
- *
- * @param game Game
- * @param players Game players
- */
- public GameStartEvent(Game game, HashSet players) {
- this.players.addAll(players);
- this.game = game;
- }
-
- public HashSet getPlayers() {
- return players;
- }
-
- public Game getGame() {
- return game;
- }
-
- public @NotNull HandlerList getHandlers() {
- return handlers;
- }
-
- public static HandlerList getHandlerList() {
- return handlers;
- }
-
-}
diff --git a/src/main/java/fun/asgard/api/events/GameStopEvent.java b/src/main/java/fun/asgard/api/events/GameStopEvent.java
deleted file mode 100644
index 141dcd3..0000000
--- a/src/main/java/fun/asgard/api/events/GameStopEvent.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package fun.asgard.api.events;
-
-import fun.asgard.api.objects.Game;
-
-import fun.asgard.api.objects.GamePlayer;
-import org.bukkit.event.Event;
-import org.bukkit.event.HandlerList;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Arrays;
-import java.util.HashSet;
-
-public class GameStopEvent extends Event {
-
- private static final HandlerList handlers = new HandlerList();
-
- private final Game game;
- private final HashSet winners = new HashSet<>();
- private final HashSet losers = new HashSet<>();
- private final HashSet players = new HashSet<>();
-
- /**
- *
- * @param game Game
- * @param players Game players
- */
- public GameStopEvent(Game game, GamePlayer[] players) {
- this.players.addAll(Arrays.asList(players));
- this.game = game;
- }
-
- /**
- *
- * @param game Game
- * @param players Game players
- * @param winner Winner of the game
- * @param loser Loser of the game
- */
- public GameStopEvent(Game game, GamePlayer[] players, GamePlayer winner, GamePlayer loser) {
- this.players.addAll(Arrays.asList(players));
- this.game = game;
- this.winners.add(winner);
- this.losers.add(loser);
- }
-
- /**
- *
- * @param game Game
- * @param players Game players
- * @param winners Winners of the game
- * @param losers Losers of the game
- */
- public GameStopEvent(Game game, GamePlayer[] players, GamePlayer[] winners, GamePlayer[] losers) {
- this.players.addAll(Arrays.asList(players));
- this.game = game;
-
- this.winners.addAll(Arrays.asList(winners));
- this.losers.addAll(Arrays.asList(losers));
- }
-
- /**
- *
- * @param game Game
- * @param players Game players
- * @param winners Winners of the game
- * @param losers Losers of the game
- */
- public GameStopEvent(Game game, HashSet players, HashSet winners, HashSet losers) {
- this.players.addAll(players);
- this.game = game;
-
- this.winners.addAll(winners);
- this.losers.addAll(losers);
- }
-
- public HashSet getLosers() {
- return losers;
- }
-
- public HashSet getWinners() {
- return winners;
- }
-
- public HashSet getPlayers() {
- return players;
- }
-
- public Game getGame() {
- return game;
- }
-
- public @NotNull HandlerList getHandlers() {
- return handlers;
- }
-
- public static HandlerList getHandlerList() {
- return handlers;
- }
-
-}
diff --git a/src/main/java/fun/asgard/api/events/PlayerConnectEvent.java b/src/main/java/fun/asgard/api/events/PlayerConnectEvent.java
deleted file mode 100644
index 9702030..0000000
--- a/src/main/java/fun/asgard/api/events/PlayerConnectEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package fun.asgard.api.events;
-
-import fun.asgard.api.objects.Game;
-
-import org.bukkit.entity.Player;
-import org.bukkit.event.Event;
-import org.bukkit.event.HandlerList;
-
-import org.jetbrains.annotations.NotNull;
-
-public class PlayerConnectEvent extends Event {
-
- private static final HandlerList handlers = new HandlerList();
-
- private final Player player;
- private final Game game;
-
- /**
- *
- * @param game Game
- * @param player Game player
- */
- public PlayerConnectEvent(Game game, Player player) {
- this.player = player;
- this.game = game;
- }
-
- public Player getPlayer() {
- return player;
- }
-
- public Game getGame() {
- return game;
- }
-
- public @NotNull HandlerList getHandlers() {
- return handlers;
- }
-
- public static HandlerList getHandlerList() {
- return handlers;
- }
-
-}
diff --git a/src/main/java/fun/asgard/api/events/PlayerDisconnectEvent.java b/src/main/java/fun/asgard/api/events/PlayerDisconnectEvent.java
deleted file mode 100644
index de4ce21..0000000
--- a/src/main/java/fun/asgard/api/events/PlayerDisconnectEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package fun.asgard.api.events;
-
-import fun.asgard.api.objects.Game;
-
-import org.bukkit.entity.Player;
-import org.bukkit.event.Event;
-import org.bukkit.event.HandlerList;
-
-import org.jetbrains.annotations.NotNull;
-
-public class PlayerDisconnectEvent extends Event {
-
- private static final HandlerList handlers = new HandlerList();
-
- private final Player player;
- private final Game game;
-
- /**
- *
- * @param game Game
- * @param player Game player
- */
- public PlayerDisconnectEvent(Game game, Player player) {
- this.player = player;
- this.game = game;
- }
-
- public Player getPlayer() {
- return player;
- }
-
- public Game getGame() {
- return game;
- }
-
- public @NotNull HandlerList getHandlers() {
- return handlers;
- }
-
- public static HandlerList getHandlerList() {
- return handlers;
- }
-
-}
diff --git a/src/main/java/fun/asgard/api/objects/Game.java b/src/main/java/fun/asgard/api/objects/Game.java
deleted file mode 100644
index 7267cf4..0000000
--- a/src/main/java/fun/asgard/api/objects/Game.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package fun.asgard.api.objects;
-
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-public interface Game {
-
- /**
- * After calling the method, GameStartEvent will be triggered
- */
- void start();
-
- /**
- * After calling the method, GameEndEvent will be triggered
- */
- void stop(boolean saveWorld);
-
- /**
- * After calling the method, GameEndEvent will be triggered
- */
- void stop(GamePlayer winner, GamePlayer loser, boolean saveWorld);
-
- /**
- * After calling the method, GameEndEvent will be triggered
- */
- void stop(GamePlayer[] winners, GamePlayer[] losers, boolean saveWorld);
-
- /**
- * After calling the method, GameEndEvent will be triggered
- */
- void stop(HashSet winners, HashSet losers, boolean saveWorld);
-
- /**
- * After calling the method, no event will be triggered
- */
- void shutdown(boolean saveWorld);
-
- void connectPlayer(Player player);
-
- void connectPlayer(Player player, Location location);
-
- void connectPlayer(Player player, double x, double y, double z);
-
- void disconnectPlayer(GamePlayer player);
-
- void disconnectPlayer(GamePlayer player, Location location);
-
- void disconnectPlayer(GamePlayer player, double x, double y, double z);
-
- HashSet getTasks();
-
- long getWhenStarted();
-
- HashMap getPlayers();
-
- long getTime();
-
- String getGameName();
-
- World getWorld();
-
- GameTask getTask();
-
- void setTime(long time);
-
- void setKickOnLeave(boolean kickOnLeave);
-
- boolean isLeaveOnKick();
-
-}
diff --git a/src/main/java/fun/asgard/api/objects/GamePlayer.java b/src/main/java/fun/asgard/api/objects/GamePlayer.java
deleted file mode 100644
index f4d1c7a..0000000
--- a/src/main/java/fun/asgard/api/objects/GamePlayer.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fun.asgard.api.objects;
-
-import org.bukkit.entity.Player;
-
-public interface GamePlayer {
-
- Player getPlayer();
-
- Game getGame();
-
- int getScore();
-
- boolean isDied();
-
- void setScore(int score);
-
- void setDied(boolean isDied);
-
-}
diff --git a/src/main/java/fun/asgard/api/objects/GameTask.java b/src/main/java/fun/asgard/api/objects/GameTask.java
deleted file mode 100644
index 6998231..0000000
--- a/src/main/java/fun/asgard/api/objects/GameTask.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package fun.asgard.api.objects;
-
-public interface GameTask {
-
- void cancel();
-
- Game getGame();
-
-}
diff --git a/src/main/java/fun/asgard/internal/Utils.java b/src/main/java/fun/asgard/internal/Utils.java
deleted file mode 100644
index 6f7b0f4..0000000
--- a/src/main/java/fun/asgard/internal/Utils.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package fun.asgard.internal;
-
-import fun.asgard.api.objects.GamePlayer;
-
-import org.bukkit.entity.Player;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-public class Utils {
-
- public static HashSet getValuesFromHashMap(HashMap map) {
- HashSet res = new HashSet<>();
- map.forEach((k, a) -> res.add(a));
- return res;
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/managers/GameManager.java b/src/main/java/fun/asgard/internal/managers/GameManager.java
deleted file mode 100644
index b255177..0000000
--- a/src/main/java/fun/asgard/internal/managers/GameManager.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package fun.asgard.internal.managers;
-
-import fun.asgard.TAGA;
-import fun.asgard.api.objects.Game;
-import fun.asgard.internal.objects.Game.EGame;
-
-import org.bukkit.World;
-import org.bukkit.plugin.Plugin;
-
-import java.util.HashMap;
-
-public class GameManager {
-
- private final HashMap games = new HashMap<>();
- private final TAGA taga;
- private final Plugin client;
-
- public GameManager(TAGA taga, Plugin client) {
- this.taga = taga;
- this.client = client;
- }
-
- public Game createGame(World world, String gameName, long timer) {
- EGame game = new EGame(this.taga, this.client, world, gameName, timer);
- this.games.put(gameName, game);
- return game;
- }
-
- public Game createGame(World world, String gameName) {
- return this.createGame(world, gameName, -1);
- }
-
- public Game getGame(String gameName) {
- return this.getGames().get(gameName);
- }
-
- public HashMap getGames() {
- return this.games;
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/managers/TaskManager.java b/src/main/java/fun/asgard/internal/managers/TaskManager.java
deleted file mode 100644
index 74c985d..0000000
--- a/src/main/java/fun/asgard/internal/managers/TaskManager.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package fun.asgard.internal.managers;
-
-import fun.asgard.TAGA;
-import fun.asgard.api.objects.Game;
-import fun.asgard.api.objects.GameTask;
-import fun.asgard.internal.objects.GameTask.EGameTask;
-
-import org.bukkit.plugin.Plugin;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.util.HashMap;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-public class TaskManager {
-
- private final TAGA taga;
- private final Plugin client;
- private final HashMap tasks = new HashMap<>();
-
- public TaskManager(TAGA taga, Plugin client) {
- this.taga = taga;
- this.client = client;
- }
-
- public GameTask createGameTask(@NotNull Runnable task, Game game, long delay, long period){
- if (this.tasks.containsKey(game))
- throw new IllegalArgumentException("GameTask has already been created for this game");
- if (delay < 0)
- throw new IllegalArgumentException("Negative delay.");
- if (period <= 0)
- throw new IllegalArgumentException("Non-positive period.");
-
- ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
- service.scheduleWithFixedDelay(task, delay, period, TimeUnit.MILLISECONDS);
-
- GameTask gt = new EGameTask(game, service);
- this.getAllTasks().put(game, gt);
- return gt;
- }
-
- public GameTask getTask(Game game) {
- return this.getAllTasks().get(game);
- }
-
- public HashMap getAllTasks() {
- return tasks;
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/objects/Game/AGame.java b/src/main/java/fun/asgard/internal/objects/Game/AGame.java
deleted file mode 100644
index 2ce5a69..0000000
--- a/src/main/java/fun/asgard/internal/objects/Game/AGame.java
+++ /dev/null
@@ -1,196 +0,0 @@
-package fun.asgard.internal.objects.Game;
-
-import fun.asgard.TAGA;
-import fun.asgard.api.events.GameStartEvent;
-import fun.asgard.api.events.GameStopEvent;
-import fun.asgard.api.events.PlayerConnectEvent;
-import fun.asgard.api.events.PlayerDisconnectEvent;
-import fun.asgard.api.objects.Game;
-import fun.asgard.api.objects.GamePlayer;
-import fun.asgard.api.objects.GameTask;
-import fun.asgard.internal.Utils;
-import fun.asgard.internal.objects.GamePlayer.EGamePlayer;
-
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-
-import java.util.HashMap;
-import java.util.HashSet;
-
-public abstract class AGame implements Game {
-
- private final World world;
- private final String gameName;
- private final TAGA taga;
- private final Plugin client;
-
- private final HashMap players = new HashMap<>();
- private final HashSet tasks = new HashSet<>();
-
- private long started;
- private long time;
- private boolean leaveOnKick = false;
-
- /**
- * @param client The one who uses the api
- * @param world World of the game
- * @param gameName Name of the game
- * @param time Game time
- */
- public AGame(TAGA taga, Plugin client, World world, String gameName, long time) {
- this.taga = taga;
- this.client = client;
- this.gameName = gameName;
- this.world = world;
- this.time = time;
- }
-
- @Override
- public void start() {
- if (this.world.getLoadedChunks().length <= 0
- || !this.client.getServer().getWorlds().contains(this.world)) {
- this.client.getServer().getWorlds().add(this.world);
- }
-
- this.started = System.currentTimeMillis();
- Bukkit.getPluginManager().callEvent(new GameStartEvent(this, Utils.getValuesFromHashMap(this.players)));
- }
-
- @Override
- public void stop(boolean saveWorld) {
- this.client.getServer().getPluginManager().callEvent(new GameStopEvent(this, (GamePlayer[]) Utils.getValuesFromHashMap(this.players).toArray()));
- this.shutdown(saveWorld);
- }
-
-
- @Override
- public void stop(GamePlayer winner, GamePlayer loser, boolean saveWorld) {
- this.client.getServer().getPluginManager().callEvent(new GameStopEvent(this, (GamePlayer[]) Utils.getValuesFromHashMap(this.players).toArray(), winner, loser));
- this.shutdown(saveWorld);
- }
-
- @Override
- public void stop(GamePlayer[] winners, GamePlayer[] losers, boolean saveWorld) {
- this.client.getServer().getPluginManager().callEvent(new GameStopEvent(this, (GamePlayer[]) Utils.getValuesFromHashMap(this.players).toArray(), winners, losers));
- this.shutdown(saveWorld);
- }
-
-
- @Override
- public void stop(HashSet winners, HashSet losers, boolean saveWorld) {
- this.client.getServer().getPluginManager().callEvent(new GameStopEvent(this, Utils.getValuesFromHashMap(this.players), winners, losers));
- this.shutdown(saveWorld);
- }
-
- @Override
- public void shutdown(boolean saveWorld) {
- this.time = 0;
- this.getTasks().forEach(GameTask::cancel);
- this.players.forEach((pl, gp) -> this.disconnectPlayer(gp));
- Bukkit.unloadWorld(this.world, saveWorld);
- }
-
- @Override
- public void connectPlayer(Player player) {
- this.players.put(player, new EGamePlayer(this.taga, player, this));
- this.client.getServer().getPluginManager().callEvent(new PlayerConnectEvent(this, player));
- }
-
- @Override
- public void connectPlayer(Player player, Location location) {
- this.players.put(player, new EGamePlayer(this.taga, player, this));
- player.teleport(location);
- this.client.getServer().getPluginManager().callEvent(new PlayerConnectEvent(this, player));
- }
-
- @Override
- public void connectPlayer(Player player, double x, double y, double z) {
- this.players.put(player, (new EGamePlayer(this.taga, player, this)));
- player.teleport(new Location(this.world, x, y, z));
- this.client.getServer().getPluginManager().callEvent(new PlayerConnectEvent(this, player));
- }
-
- @Override
- public void disconnectPlayer(GamePlayer player) {
- this.players.remove(player);
- this.client.getServer().getPluginManager().callEvent(new PlayerDisconnectEvent(this, player.getPlayer()));
- }
-
- @Override
- public void disconnectPlayer(GamePlayer player, Location location) {
- this.players.remove(player);
- player.getPlayer().teleport(location);
- this.client.getServer().getPluginManager().callEvent(new PlayerDisconnectEvent(this, player.getPlayer()));
- }
-
- @Override
- public void disconnectPlayer(GamePlayer player, double x, double y, double z) {
- this.players.remove(player);
- player.getPlayer().teleport(new Location(this.world, x, y, z));
- this.client.getServer().getPluginManager().callEvent(new PlayerDisconnectEvent(this, player.getPlayer()));
- }
-
- @Override
- public HashSet getTasks() {
- return tasks;
- }
-
- @Override
- public long getWhenStarted() {
- return started;
- }
-
- @Override
- public HashMap getPlayers() {
- return players;
- }
-
- @Override
- public long getTime() {
- return time;
- }
-
- @Override
- public String getGameName() {
- return gameName;
- }
-
- @Override
- public World getWorld() {
- return world;
- }
-
- @Override
- public GameTask getTask() {
- return this.taga.getTaskManager().getTask(this);
- }
-
- @Override
- public void setTime(long time) {
- this.time = time;
- }
-
- @Override
- public void setKickOnLeave(boolean kickOnLeave) {
- this.leaveOnKick = kickOnLeave;
- }
-
- @Override
- public boolean isLeaveOnKick() {
- return leaveOnKick;
- }
-
- @Override
- public String toString() {
- return "Game { " +
- "world = " + world.getName() +
- ", gameName = '" + gameName + '\'' +
- ", time = " + time +
- ", players = " + players +
- '}';
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/objects/Game/EGame.java b/src/main/java/fun/asgard/internal/objects/Game/EGame.java
deleted file mode 100644
index a17ff9e..0000000
--- a/src/main/java/fun/asgard/internal/objects/Game/EGame.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fun.asgard.internal.objects.Game;
-
-import fun.asgard.TAGA;
-import org.bukkit.World;
-import org.bukkit.plugin.Plugin;
-
-public class EGame extends AGame {
-
- /**
- * @param client The one who uses the api
- * @param world World of the game
- * @param gameName Name of the game
- * @param time Game time
- */
- public EGame(TAGA taga, Plugin client, World world, String gameName, long time) {
- super(taga, client, world, gameName, time);
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/objects/GamePlayer/AGamePlayer.java b/src/main/java/fun/asgard/internal/objects/GamePlayer/AGamePlayer.java
deleted file mode 100644
index 28f9dd1..0000000
--- a/src/main/java/fun/asgard/internal/objects/GamePlayer/AGamePlayer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package fun.asgard.internal.objects.GamePlayer;
-
-import fun.asgard.TAGA;
-import fun.asgard.api.objects.Game;
-import fun.asgard.api.objects.GamePlayer;
-
-import org.bukkit.entity.Player;
-
-public abstract class AGamePlayer implements GamePlayer {
-
- private final TAGA taga;
- private final Player player;
- private final Game game;
- private int score = 0;
- private boolean isDied = false;
-
- public AGamePlayer(TAGA taga, Player player, Game game) {
- this.taga = taga;
- this.player = player;
- this.game = game;
- }
-
- @Override
- public Player getPlayer() {
- return this.player;
- }
-
- @Override
- public Game getGame() {
- return this.game;
- }
-
- @Override
- public int getScore() {
- return this.score;
- }
-
- @Override
- public boolean isDied() {
- return this.isDied;
- }
-
- @Override
- public void setScore(int score) {
- this.score = score;
- }
-
- @Override
- public void setDied(boolean isDied) {
- this.isDied = isDied;
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/objects/GamePlayer/EGamePlayer.java b/src/main/java/fun/asgard/internal/objects/GamePlayer/EGamePlayer.java
deleted file mode 100644
index c606a03..0000000
--- a/src/main/java/fun/asgard/internal/objects/GamePlayer/EGamePlayer.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package fun.asgard.internal.objects.GamePlayer;
-
-import fun.asgard.TAGA;
-import fun.asgard.api.objects.Game;
-
-import org.bukkit.entity.Player;
-
-public class EGamePlayer extends AGamePlayer {
-
- public EGamePlayer(TAGA taga, Player player, Game game) {
- super(taga, player, game);
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/objects/GameTask/AGameTask.java b/src/main/java/fun/asgard/internal/objects/GameTask/AGameTask.java
deleted file mode 100644
index 9ad5043..0000000
--- a/src/main/java/fun/asgard/internal/objects/GameTask/AGameTask.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package fun.asgard.internal.objects.GameTask;
-
-import fun.asgard.api.objects.Game;
-import fun.asgard.api.objects.GameTask;
-
-import java.util.concurrent.ScheduledExecutorService;
-
-public abstract class AGameTask implements GameTask {
-
- private final ScheduledExecutorService service;
- private final Game game;
-
- public AGameTask(Game game, ScheduledExecutorService service) {
- this.game = game;
- this.service = service;
- }
-
- @Override
- public void cancel() {
- this.game.getTasks().remove(this);
- this.service.shutdown();
- }
-
- @Override
- public Game getGame() {
- return this.game;
- }
-
-}
diff --git a/src/main/java/fun/asgard/internal/objects/GameTask/EGameTask.java b/src/main/java/fun/asgard/internal/objects/GameTask/EGameTask.java
deleted file mode 100644
index 050ee44..0000000
--- a/src/main/java/fun/asgard/internal/objects/GameTask/EGameTask.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package fun.asgard.internal.objects.GameTask;
-
-import fun.asgard.api.objects.Game;
-
-import java.util.concurrent.ScheduledExecutorService;
-
-public class EGameTask extends AGameTask {
-
- public EGameTask(Game game, ScheduledExecutorService service) {
- super(game, service);
- }
-
-}
diff --git a/src/test/java/SamplePlugin.java b/src/test/java/SamplePlugin.java
deleted file mode 100644
index 3940640..0000000
--- a/src/test/java/SamplePlugin.java
+++ /dev/null
@@ -1,56 +0,0 @@
-import fun.asgard.TAGA;
-import fun.asgard.api.events.GameStartEvent;
-import fun.asgard.api.events.GameStopEvent;
-import fun.asgard.api.objects.Game;
-import org.bukkit.Bukkit;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.plugin.java.JavaPlugin;
-
-public class SamplePlugin extends JavaPlugin implements Listener {
-
- public static TAGA taga;
-
- @Override
- public void onEnable() {
- taga = new TAGA(this);
-
- Game game1 = taga.getGameManager().createGame(Bukkit.getWorld("world"), "SampleGame", 5 * 1000);
- Game game2 = taga.getGameManager().createGame(Bukkit.getWorld("world"), "SampleGame2", 5 * 1000);
- game2.setKickOnLeave(true);
- }
-
- @Override
- public void onDisable() {
- taga.getGameManager().getGames().forEach((name, game) -> game.shutdown(false));
- }
-
- @EventHandler
- public void onPlayerJoined(PlayerJoinEvent event) {
- Game game = taga.getGameManager().getGames().get("ABOBA");
- game.connectPlayer(event.getPlayer());
- if (game.getPlayers().size() >= 1) {
- game.start();
- }
- }
-
- @EventHandler
- public void onGameStart(GameStartEvent event) {
- event.getPlayers().forEach(player -> {
- player.getPlayer().sendMessage("Game is started!");
- });
- taga.getTaskManager().createGameTask(() ->
- event.getPlayers().forEach(player ->
- player.getPlayer().sendMessage("5 minutes of the game has passed!")),
- event.getGame(), 5 * 60 * 1000, 5 * 60 * 1000);
- }
-
- @EventHandler
- public void onGameStop(GameStopEvent event) {
- event.getPlayers().forEach(player -> {
- player.getPlayer().sendMessage("The game is stopped");
- });
- }
-
-}
diff --git a/src/test/resources/plugin.yml b/src/test/resources/plugin.yml
deleted file mode 100644
index 2713f17..0000000
--- a/src/test/resources/plugin.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-name: SamplePlugin
-version: ${project.version}
-main: SamplePlugin
-api-version: 1.16
-authors: [ Volan4ik ]