From c8562e0018caba3e70a44562ef8aa9dc8bbf1ed5 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Fri, 2 Jul 2021 10:53:09 -0700 Subject: [PATCH] should finish api --- .../us/ajg0702/queue/api/AliasManager.java | 17 +++++++++++++ .../main/java/us/ajg0702/queue/api/Logic.java | 22 +++++++++++++++++ .../us/ajg0702/queue/api/QueueManager.java | 24 ++++++++++++++++++- .../queue/api/players/QueuePlayer.java | 15 ++++++++++++ .../ajg0702/queue/api/queues/QueueServer.java | 16 +++++++++++++ common/build.gradle.kts | 2 ++ 6 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 api/src/main/java/us/ajg0702/queue/api/AliasManager.java create mode 100644 api/src/main/java/us/ajg0702/queue/api/Logic.java diff --git a/api/src/main/java/us/ajg0702/queue/api/AliasManager.java b/api/src/main/java/us/ajg0702/queue/api/AliasManager.java new file mode 100644 index 0000000..4ca19c7 --- /dev/null +++ b/api/src/main/java/us/ajg0702/queue/api/AliasManager.java @@ -0,0 +1,17 @@ +package us.ajg0702.queue.api; + +public interface AliasManager { + /** + * Gets an alias from the server/group's name + * @param server The original name of the server + * @return The set alias (set in the config) + */ + String getAlias(String server); + + /** + * Gets the name of the server/group from an alias + * @param alias The alias + * @return The name of the server/group + */ + String getServer(String alias); +} diff --git a/api/src/main/java/us/ajg0702/queue/api/Logic.java b/api/src/main/java/us/ajg0702/queue/api/Logic.java new file mode 100644 index 0000000..aea8b29 --- /dev/null +++ b/api/src/main/java/us/ajg0702/queue/api/Logic.java @@ -0,0 +1,22 @@ +package us.ajg0702.queue.api; + +import us.ajg0702.queue.api.players.AdaptedPlayer; +import us.ajg0702.queue.api.players.QueuePlayer; + +import java.util.List; + +public interface Logic { + /** + * Returns if the plugin is premium or not + * @return True if premium, false if not + */ + boolean isPremium(); + + /** + * The priority logic that is executed if the plugin is premium. + * @param list The current queue + * @param server The server/group name that is being queued for + * @param player The player that is being queued + */ + void priorityLogic(List list, String server, AdaptedPlayer player); +} diff --git a/api/src/main/java/us/ajg0702/queue/api/QueueManager.java b/api/src/main/java/us/ajg0702/queue/api/QueueManager.java index 4b46e37..c9d4bc7 100644 --- a/api/src/main/java/us/ajg0702/queue/api/QueueManager.java +++ b/api/src/main/java/us/ajg0702/queue/api/QueueManager.java @@ -1,5 +1,6 @@ package us.ajg0702.queue.api; +import com.google.common.collect.ImmutableList; import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.queues.QueueServer; @@ -11,6 +12,27 @@ public interface QueueManager { * @param server The server or group to add the player to * @return True if adding was successfull, false if not. */ - public boolean addToQueue(AdaptedPlayer player, QueueServer server); + boolean addToQueue(AdaptedPlayer player, QueueServer server); + + /** + * Adds a player to a queue + * @param player The player to be added + * @param serverName The name of the server or group to add the player too + * @return True if adding was successfull, false if not. + */ + boolean addToQueue(AdaptedPlayer player, String serverName); + + /** + * Gets a list of QueueServers (servers and groups) + * @return A list of QueueServerss + */ + ImmutableList getServers(); + + /** + * Gets a list of QueueServer (servers and groups) names + * @return A list of QueueServer names + */ + ImmutableList getServerNames(); + } diff --git a/api/src/main/java/us/ajg0702/queue/api/players/QueuePlayer.java b/api/src/main/java/us/ajg0702/queue/api/players/QueuePlayer.java index 937cf83..1c73a6c 100644 --- a/api/src/main/java/us/ajg0702/queue/api/players/QueuePlayer.java +++ b/api/src/main/java/us/ajg0702/queue/api/players/QueuePlayer.java @@ -1,4 +1,19 @@ package us.ajg0702.queue.api.players; +import javax.annotation.Nullable; +import java.util.UUID; + public interface QueuePlayer { + /** + * Returns the player's UUID + * @return the player's UUID + */ + UUID getUniqueId(); + + /** + * Get the player this represents. + * Can be null because the player could not be online + * @return The player if they are online, null otherwise + */ + @Nullable AdaptedPlayer getPlayer(); } diff --git a/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java b/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java index dd11580..43bfdcc 100644 --- a/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java +++ b/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java @@ -110,6 +110,22 @@ public interface QueueServer { */ boolean isFull(); + /** + * Removes a player from the queue + * @param player The player to remove + */ + void removePlayer(QueuePlayer player); + + /** + * Adds a player to a queue + * NOTE: It is reccomended to use QueueManager#addToQueue + * @param player The QueuePlayer that is being added + */ + void addPlayer(QueuePlayer player); + + + + /** * elliot is bad * @return true because elliot is bad diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 4d3b28f..501b3db 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -11,6 +11,8 @@ repositories { dependencies { compileOnly("net.kyori:adventure-api:4.8.1") + + implementation("us.ajg0702:ajQueue:") } publishing {