From 5ed57cabcb8db9687d659bee73daeada53ecc376 Mon Sep 17 00:00:00 2001 From: Connor Linfoot Date: Wed, 2 Mar 2022 04:43:08 +0000 Subject: [PATCH] Add support for the bingo data endpoint (#520) --- .../main/java/net/hypixel/api/HypixelAPI.java | 27 +++++++++++++++ .../reply/skyblock/bingo/BingoEventData.java | 33 +++++++++++++++++++ .../bingo/SkyBlockBingoDataReply.java | 20 +++++++++++ .../skyblock/GetSkyBlockBingoDataExample.java | 10 ++++++ 4 files changed, 90 insertions(+) create mode 100644 hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/BingoEventData.java create mode 100644 hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/SkyBlockBingoDataReply.java create mode 100644 hypixel-api-example/src/main/java/net/hypixel/api/example/skyblock/GetSkyBlockBingoDataExample.java diff --git a/hypixel-api-core/src/main/java/net/hypixel/api/HypixelAPI.java b/hypixel-api-core/src/main/java/net/hypixel/api/HypixelAPI.java index a38fea9c..99bb2e78 100644 --- a/hypixel-api-core/src/main/java/net/hypixel/api/HypixelAPI.java +++ b/hypixel-api-core/src/main/java/net/hypixel/api/HypixelAPI.java @@ -9,6 +9,7 @@ import net.hypixel.api.http.HypixelHttpResponse; import net.hypixel.api.reply.*; import net.hypixel.api.reply.skyblock.*; +import net.hypixel.api.reply.skyblock.bingo.SkyBlockBingoDataReply; import net.hypixel.api.util.PropertyFilter; import net.hypixel.api.util.ResourceType; import net.hypixel.api.util.Utilities; @@ -250,6 +251,32 @@ public CompletableFuture getSkyBlockProfiles(String playe ); } + /** + * Request the bingo data of a provided player. See /skyblock/bingo + * + * @param player uuid of a player. + * @return CompletableFuture containing a {@link SkyBlockBingoDataReply} + */ + public CompletableFuture getSkyblockBingoData(UUID player) { + return get(SkyBlockBingoDataReply.class, "skyblock/bingo", + HTTPQueryParams.create() + .add("uuid", player) + ); + } + + /** + * Request the bingo data of a provided player. See /skyblock/bingo + * + * @param player uuid of a player in string format, can be both dashed or undashed. + * @return CompletableFuture containing a {@link SkyBlockBingoDataReply} + */ + public CompletableFuture getSkyblockBingoData(String player) { + return get(SkyBlockBingoDataReply.class, "skyblock/bingo", + HTTPQueryParams.create() + .add("uuid", player) + ); + } + public CompletableFuture getSkyBlockNews() { return get(SkyBlockNewsReply.class, "skyblock/news"); } diff --git a/hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/BingoEventData.java b/hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/BingoEventData.java new file mode 100644 index 00000000..f52ea1d5 --- /dev/null +++ b/hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/BingoEventData.java @@ -0,0 +1,33 @@ +package net.hypixel.api.reply.skyblock.bingo; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class BingoEventData { + private int key; + private int points; + @SerializedName("completed_goals") + private List completedGoals; + + public int getKey() { + return key; + } + + public int getPoints() { + return points; + } + + public List getCompletedGoals() { + return completedGoals; + } + + @Override + public String toString() { + return "BingoEventData{" + + "key=" + key + + ", points=" + points + + ", completedGoals=" + completedGoals + + '}'; + } +} diff --git a/hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/SkyBlockBingoDataReply.java b/hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/SkyBlockBingoDataReply.java new file mode 100644 index 00000000..983c18a2 --- /dev/null +++ b/hypixel-api-core/src/main/java/net/hypixel/api/reply/skyblock/bingo/SkyBlockBingoDataReply.java @@ -0,0 +1,20 @@ +package net.hypixel.api.reply.skyblock.bingo; + +import net.hypixel.api.reply.AbstractReply; + +import java.util.List; + +public class SkyBlockBingoDataReply extends AbstractReply { + private List events; + + public List getEvents() { + return events; + } + + @Override + public String toString() { + return "SkyBlockBingoPlayerDataReply{" + + "events=" + events + + "} " + super.toString(); + } +} diff --git a/hypixel-api-example/src/main/java/net/hypixel/api/example/skyblock/GetSkyBlockBingoDataExample.java b/hypixel-api-example/src/main/java/net/hypixel/api/example/skyblock/GetSkyBlockBingoDataExample.java new file mode 100644 index 00000000..a9395217 --- /dev/null +++ b/hypixel-api-example/src/main/java/net/hypixel/api/example/skyblock/GetSkyBlockBingoDataExample.java @@ -0,0 +1,10 @@ +package net.hypixel.api.example.skyblock; + +import net.hypixel.api.example.ExampleUtil; + +public class GetSkyBlockBingoDataExample { + public static void main(String[] args) { + ExampleUtil.API.getSkyblockBingoData(ExampleUtil.HYPIXEL).whenComplete(ExampleUtil.getTestConsumer()); + ExampleUtil.await(); + } +}