Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 33 additions & 26 deletions hypixel-api-core/src/main/java/net/hypixel/api/HypixelAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import net.hypixel.api.reply.*;
import net.hypixel.api.reply.skyblock.*;
import net.hypixel.api.reply.skyblock.bingo.SkyBlockBingoDataReply;
import net.hypixel.api.reply.skyblock.firesales.SkyBlockFireSalesReply;
import net.hypixel.api.util.PropertyFilter;
import net.hypixel.api.util.ResourceType;
import net.hypixel.api.util.Utilities;
Expand Down Expand Up @@ -37,23 +38,23 @@ public void shutdown() {
}

public CompletableFuture<BoostersReply> getBoosters() {
return get(BoostersReply.class, "boosters");
return get(true, BoostersReply.class, "boosters");
}

public CompletableFuture<LeaderboardsReply> getLeaderboards() {
return get(LeaderboardsReply.class, "leaderboards");
return get(true, LeaderboardsReply.class, "leaderboards");
}

public CompletableFuture<PunishmentStatsReply> getPunishmentStats() {
return get(PunishmentStatsReply.class, "punishmentstats");
return get(true, PunishmentStatsReply.class, "punishmentstats");
}

/**
* @param player uuid of a player
* @return {@link CompletableFuture} containing {@link PlayerReply}
*/
public CompletableFuture<PlayerReply> getPlayerByUuid(UUID player) {
return get(PlayerReply.class, "player",
return get(true, PlayerReply.class, "player",
HTTPQueryParams.create()
.add("uuid", player)
);
Expand All @@ -64,7 +65,7 @@ public CompletableFuture<PlayerReply> getPlayerByUuid(UUID player) {
* @return {@link CompletableFuture} containing {@link PlayerReply}
*/
public CompletableFuture<PlayerReply> getPlayerByUuid(String player) {
return get(PlayerReply.class, "player",
return get(true, PlayerReply.class, "player",
HTTPQueryParams.create()
.add("uuid", player)
);
Expand Down Expand Up @@ -104,7 +105,7 @@ public CompletableFuture<PlayerReply> getPlayerByName(String player, PropertyFil
*/
@Deprecated
public CompletableFuture<PlayerReply> getPlayerByName(String player) {
return get(PlayerReply.class, "player",
return get(true, PlayerReply.class, "player",
HTTPQueryParams.create()
.add("name", player)
);
Expand All @@ -115,7 +116,7 @@ public CompletableFuture<PlayerReply> getPlayerByName(String player) {
* @return {@link CompletableFuture} containing {@link GuildReply}
*/
public CompletableFuture<GuildReply> getGuildByPlayer(UUID player) {
return get(GuildReply.class, "guild",
return get(true, GuildReply.class, "guild",
HTTPQueryParams.create()
.add("player", player)
);
Expand All @@ -126,7 +127,7 @@ public CompletableFuture<GuildReply> getGuildByPlayer(UUID player) {
* @return {@link CompletableFuture} containing {@link GuildReply}
*/
public CompletableFuture<GuildReply> getGuildByPlayer(String player) {
return get(GuildReply.class, "guild",
return get(true, GuildReply.class, "guild",
HTTPQueryParams.create()
.add("player", player)
);
Expand All @@ -137,7 +138,7 @@ public CompletableFuture<GuildReply> getGuildByPlayer(String player) {
* @return {@link CompletableFuture} containing {@link GuildReply}
*/
public CompletableFuture<GuildReply> getGuildByName(String name) {
return get(GuildReply.class, "guild",
return get(true, GuildReply.class, "guild",
HTTPQueryParams.create()
.add("name", name)
);
Expand All @@ -148,18 +149,18 @@ public CompletableFuture<GuildReply> getGuildByName(String name) {
* @return {@link CompletableFuture} containing {@link GuildReply}
*/
public CompletableFuture<GuildReply> getGuildById(String id) {
return get(GuildReply.class, "guild",
return get(true, GuildReply.class, "guild",
HTTPQueryParams.create()
.add("id", id)
);
}

public CompletableFuture<KeyReply> getKey() {
return get(KeyReply.class, "key");
return get(true, KeyReply.class, "key");
}

public CompletableFuture<CountsReply> getCounts() {
return get(CountsReply.class, "counts");
return get(true, CountsReply.class, "counts");
}

/**
Expand All @@ -171,7 +172,7 @@ public CompletableFuture<CountsReply> getCounts() {
* @return {@link CompletableFuture} containing {@link StatusReply}
*/
public CompletableFuture<StatusReply> getStatus(UUID uuid) {
return get(StatusReply.class, "status",
return get(true, StatusReply.class, "status",
HTTPQueryParams.create()
.add("uuid", uuid)
);
Expand All @@ -184,7 +185,7 @@ public CompletableFuture<StatusReply> getStatus(UUID uuid) {
* @return {@link CompletableFuture} containing {@link RecentGamesReply}
*/
public CompletableFuture<RecentGamesReply> getRecentGames(UUID uuid) {
return get(RecentGamesReply.class, "recentGames",
return get(true, RecentGamesReply.class, "recentGames",
HTTPQueryParams.create()
.add("uuid", uuid)
);
Expand All @@ -205,7 +206,7 @@ public CompletableFuture<ResourceReply> getResource(String resource) {
}

public CompletableFuture<SkyBlockProfileReply> getSkyBlockProfile(String profile) {
return get(SkyBlockProfileReply.class, "skyblock/profile",
return get(true, SkyBlockProfileReply.class, "skyblock/profile",
HTTPQueryParams.create()
.add("profile", profile)
);
Expand All @@ -216,7 +217,7 @@ public CompletableFuture<SkyBlockProfileReply> getSkyBlockProfile(String profile
* @return the future
*/
public CompletableFuture<SkyBlockProfilesReply> getSkyBlockProfiles(UUID player) {
return get(SkyBlockProfilesReply.class, "skyblock/profiles",
return get(true, SkyBlockProfilesReply.class, "skyblock/profiles",
HTTPQueryParams.create()
.add("uuid", player)
);
Expand All @@ -227,7 +228,7 @@ public CompletableFuture<SkyBlockProfilesReply> getSkyBlockProfiles(UUID player)
* @return the future
*/
public CompletableFuture<SkyBlockProfilesReply> getSkyBlockProfiles(String player) {
return get(SkyBlockProfilesReply.class, "skyblock/profiles",
return get(true, SkyBlockProfilesReply.class, "skyblock/profiles",
HTTPQueryParams.create()
.add("uuid", player)
);
Expand All @@ -240,7 +241,7 @@ public CompletableFuture<SkyBlockProfilesReply> getSkyBlockProfiles(String playe
* @return CompletableFuture containing a {@link SkyBlockBingoDataReply}
*/
public CompletableFuture<SkyBlockBingoDataReply> getSkyblockBingoData(UUID player) {
return get(SkyBlockBingoDataReply.class, "skyblock/bingo",
return get(true, SkyBlockBingoDataReply.class, "skyblock/bingo",
HTTPQueryParams.create()
.add("uuid", player)
);
Expand All @@ -253,18 +254,18 @@ public CompletableFuture<SkyBlockBingoDataReply> getSkyblockBingoData(UUID playe
* @return CompletableFuture containing a {@link SkyBlockBingoDataReply}
*/
public CompletableFuture<SkyBlockBingoDataReply> getSkyblockBingoData(String player) {
return get(SkyBlockBingoDataReply.class, "skyblock/bingo",
return get(true, SkyBlockBingoDataReply.class, "skyblock/bingo",
HTTPQueryParams.create()
.add("uuid", player)
);
}

public CompletableFuture<SkyBlockNewsReply> getSkyBlockNews() {
return get(SkyBlockNewsReply.class, "skyblock/news");
return get(true, SkyBlockNewsReply.class, "skyblock/news");
}

public CompletableFuture<SkyBlockAuctionsReply> getSkyBlockAuctions(int page) {
return get(SkyBlockAuctionsReply.class, "skyblock/auctions",
return get(false, SkyBlockAuctionsReply.class, "skyblock/auctions",
HTTPQueryParams.create()
.add("page", page)
);
Expand All @@ -276,7 +277,11 @@ public CompletableFuture<SkyBlockAuctionsReply> getSkyBlockAuctions(int page) {
* @return {@link CompletableFuture} containing {@link SkyBlockBazaarReply}
*/
public CompletableFuture<SkyBlockBazaarReply> getSkyBlockBazaar() {
return get(SkyBlockBazaarReply.class, "skyblock/bazaar");
return get(false, SkyBlockBazaarReply.class, "skyblock/bazaar");
}

public CompletableFuture<SkyBlockFireSalesReply> getSkyBlockFireSales() {
return get(false, SkyBlockFireSalesReply.class, "skyblock/firesales");
}

/**
Expand All @@ -289,16 +294,18 @@ private CompletableFuture<PlayerReply> applyFilterFuture(CompletableFuture<Playe
});
}

private <R extends AbstractReply> CompletableFuture<R> get(Class<R> clazz, String request) {
return get(clazz, request, null);
private <R extends AbstractReply> CompletableFuture<R> get(boolean authenticated, Class<R> clazz, String request) {
return get(authenticated, clazz, request, null);
}

private <R extends AbstractReply> CompletableFuture<R> get(Class<R> clazz, String request, HTTPQueryParams params) {
private <R extends AbstractReply> CompletableFuture<R> get(boolean authenticated, Class<R> clazz, String request, HTTPQueryParams params) {
String url = BASE_URL + request;
if (params != null) {
url = params.getAsQueryString(url);
}
return httpClient.makeAuthenticatedRequest(url)

CompletableFuture<HypixelHttpResponse> future = authenticated ? httpClient.makeAuthenticatedRequest(url) : httpClient.makeRequest(url);
return future
.thenApply(this::checkResponse)
.thenApply(response -> {
if (clazz == ResourceReply.class) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package net.hypixel.api.reply.skyblock.firesales;

import com.google.gson.annotations.SerializedName;

import java.time.ZonedDateTime;

public class FireSaleItem {
@SerializedName("item_id")
private String itemId;
private ZonedDateTime start;
private ZonedDateTime end;
private int amount;
private int price;

public String getItemId() {
return itemId;
}

public ZonedDateTime getStart() {
return start;
}

public ZonedDateTime getEnd() {
return end;
}

public int getAmount() {
return amount;
}

public int getPrice() {
return price;
}

@Override
public String toString() {
return "FireSaleItem{" +
"itemId='" + itemId + '\'' +
", start=" + start +
", end=" + end +
", amount=" + amount +
", price=" + price +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package net.hypixel.api.reply.skyblock.firesales;

import net.hypixel.api.reply.AbstractReply;

import java.util.List;

public class SkyBlockFireSalesReply extends AbstractReply {
private List<FireSaleItem> sales;

public List<FireSaleItem> getSales() {
return sales;
}

@Override
public String toString() {
return "SkyBlockFireSalesReply{" +
"sales=" + sales +
"} " + super.toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.hypixel.api.example.ExampleUtil;

public class GetSkyBlockAuctionsExample {
public class GetAuctionsExample {
public static void main(String[] args) {
ExampleUtil.API.getSkyBlockAuctions(0).whenComplete((page0, throwable) -> {
if (throwable != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.hypixel.api.example.ExampleUtil;

public class GetSkyBlockBingoDataExample {
public class GetBingoDataExample {
public static void main(String[] args) {
ExampleUtil.API.getSkyblockBingoData(ExampleUtil.HYPIXEL).whenComplete(ExampleUtil.getTestConsumer());
ExampleUtil.await();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package net.hypixel.api.example.skyblock;

import net.hypixel.api.example.ExampleUtil;

public class GetFireSalesExample {
public static void main(String[] args) {
ExampleUtil.API.getSkyBlockFireSales().whenComplete(ExampleUtil.getTestConsumer());
ExampleUtil.await();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.hypixel.api.example.ExampleUtil;

public class GetSkyBlockNewsExample {
public class GetNewsExample {
public static void main(String[] args) {
ExampleUtil.API.getSkyBlockNews().whenComplete(ExampleUtil.getTestConsumer());
ExampleUtil.await();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import java.util.Set;
import java.util.concurrent.CompletableFuture;

public class GetSkyBlockProfileExample {
public class GetProfileExample {

public static void main(String[] args) {
ExampleUtil.API.getPlayerByUuid(ExampleUtil.HYPIXEL).whenComplete((reply, error) -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import net.hypixel.api.example.ExampleUtil;

public class GetSkyBlockProfilesExample {
public class GetProfilesExample {
public static void main(String[] args) {
ExampleUtil.API.getSkyBlockProfiles(ExampleUtil.HYPIXEL).whenComplete(ExampleUtil.getTestConsumer());
ExampleUtil.await();
Expand Down