Skip to content

Improve Example documentation. #610

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
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
34 changes: 33 additions & 1 deletion hypixel-api-example/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
# HypixelAPI Java Examples

This codebase serves as examples for how to integrate the HypixelAPI into your project.
This codebase serves as an example of how to integrate the HypixelAPI into your project.

## A small overview of where to find things

- The main/shared API initalization and global constant defention are in [ExampleUtil](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/ExampleUtil.java)

ExampleUtil also defines the `getTestConsumer` an often seen error handler, that prints out the response if sucess, and throws if failure.
Note: A stringified version of the response object will be printed on sucess
- An example of getting the list of active and qued boosters is in [GetBoostersExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetBoostersExample.java)t

Stringfied response can be found [here](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-core/src/main/java/net/hypixel/api/reply/BoostersReply.java#L87C1-L99C6)
- An example of getting the current player count is in [GetCountsExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetCountsExample.java)
- An example of getting information about a guild is in [GetGuildExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetGuildExample.java)

Response data includes the guild's name,tag, gexp breakdown, level and more!
- An example of getting the current leaderboards is in [GetLeaderboardsExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetLeaderboardsExample.java)

A stringfied response can be found [here](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-core/src/main/java/net/hypixel/api/reply/LeaderboardsReply.java#L55C1-L63C10)
- An example of getting pet information can be found [here, in GetPetsExample](https://github.com/firetrqck/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetPetsExample.java)

Response data includes pet rarity, rarity colors, whether a player posses that pet, and more!
- An example of getting player information can be found in [GetPlayerExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetPlayerExample.java)

Response data includes the players: UUID, network level(exact), rank, mc version, and more!
- An example of getting the current punishment stats can be found in [GetPunishmentStatsExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetPunishmentStatsExample.java)
- An example of getting recent games of a UUID(using hypixel's as an example) can be found in [GetRecentGamesExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetRecentGamesExample.java)
<!-- in development and not much information available, done to my understanding -->
- An example of getting a games challenges can be found in [GetResourceExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetResourceExample.java)
- An example of getting a player's status can be found in [GetStatusExample](https://github.com/HypixelDev/PublicAPI/blob/master/hypixel-api-example/src/main/java/net/hypixel/api/example/GetStatusExample.java)

Note: this is not a perfectc indicator of online status, as in game a player can run `/status offline` to set their status to offline

<!-- I have not the slightest clue what KeyInfoExample even is -->
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ public class GetGuildExample {

public static void main(String[] args) {
/*
* Make sure you have a HypixelAPI object set up. You can see how this is done by going to
* the ExampleUtil class.
* Make sure you have a HypixelAPI object set up. You can see how this is done in the ExampleUtil class.
*
* See the finally{} block below for how to shutdown this API once you're all done.
*/
Expand All @@ -36,17 +35,17 @@ public static void main(String[] args) {
try {
/*
* We'll be fetching the guild's stats using its ID for this example, but guilds can
* also be looked up using their name, or one of their members' Minecraft UUIDs.
* also be looked up by their name, or one of their members' Minecraft UUIDs.
* - HypixelAPI.getGuildByName(String)
* - HypixelAPI.getGuildByPlayer(UUID)
*/
String guildId = ExampleUtil.GUILD_ID;

/*
* Here, we store the response from the API in our variable.
* Here, we store the response from the API.
*
* We call `.get()` at the end so that we can use the reply in the same thread.
* The downside is that the current thread freezes (or "blocks") until the API responds.
* The downside is that this is synchronous, and blocks the thread untill the API responds.
* If this is a problem for you, instead use:
*
* .whenComplete((apiReply, error) -> {
Expand All @@ -61,7 +60,7 @@ public static void main(String[] args) {
System.err.println("Oh no, our API request failed!");

/*
* If an ExecutionException is thrown, it's typically because of an API error.
* If an ExecutionException is an arbitary error, typically because of an API error.
* Use `getCause()` to determine what the actual problem is.
*/
e.getCause().printStackTrace();
Expand Down Expand Up @@ -126,9 +125,8 @@ public static void main(String[] args) {

/*
* Finally, we'll print some information about each member in the guild.
*
* This might print out A LOT, so you may want to comment the following line out if you're
* focusing on some of the guild's other info.
* This could potentially potentially print out A LOT(depending on the guild's size)
* You may want to comment this out if you're focusing on other information.
*/
printGuildMembers(guild.getMembers());
}
Expand Down