Replies: 1 comment 1 reply
-
Unfortunately, we have no plans to expose the worlds for SkyBlock islands in the API. There are two primary reasons for this:
While we understand there are usecases for the SkyBlock worlds, it's just not something we plan to add to the API at this time. |
Beta Was this translation helpful? Give feedback.
-
The SkyBlock API allows third-party developers to access most of the data on a profile member, with only a few minor exception (e.g. settings). The major exception to this is island/garden worlds. In what follows, I will list a few reasons such an API would be useful, followed by some limitations, and finally an idea of how this API could be implemented.
Usefulness
Networth Checkers
Currently, minions, chest items, and items in displays on your island cannot be taken into account in a player's networth as computed through the API. Further, depending on the amount of information returned from this endpoint, it may even be possible to include minion upgrades and drops (though only the drops generated before island was last unloaded).
Searching for items/blocks/etc.
Misplacing items in chests on your island is fairly easy, finding them, however, is not. The same holds for, say, a repelling candle. A world API would allow for tools that search the entire island for these.
Island Viewer
3D web viewers for Minecraft worlds have been around for a while, it would be a cool thing to see, especially for the people who use SkyBlock as a place to create beautiful builds.
Minion Information
While minion drops are probabilistic, knowing the last timestamp at which a minion was loaded, and the information on upgrades in it, would allow a tool to use a single API request to compute the average time at which minions will be full.
Further information such as the coins per hour of minion can be more accurately calculated (especially in the case of the inferno minion, which becomes more efficient with nearby inferno minions).
Limitations
Format
While the slime format used for saving SkyBlock islands has previously been publicly documented (see https://hypixel.net/threads/dev-blog-5-storing-your-skyblock-island.2190753/), other data, such as minions and furniture, are completely undocumented. This is likely not a big issue, as most of the API responses are undocumented
Private Data
The JSON format of most API responses, and the versatility of MongoDB query syntax, allows for easy redaction of certain paths without heavy processing on the API servers. The world format is much different, so different that it uses a completely different database, the binary format makes it more difficult to redact certain information without putting a lot of load on the API servers.
Player Privacy
The API setting for worlds needs to be similar to the one for banking, i.e. all players on the island must have it turned on. The big difference between the two is that worlds are stored in a separate database, so MongoDB's aggregation cannot be used. This means either two database requests are required, first a call to the profile database to determine whether the world API is enabled, and then one to the island database. This leads to longer response times. The alternative to this is to "mark" the worlds in some way to determine whether they should be returned by the API. This point especially requires great care if this endpoint is to be added.
Note: It is not sufficient to only redact the FID of worlds in the profile endpoint if the setting is turned off, as the FID does not change.
Implementation
Currently the FID of the worlds is redacted from profile information, if world API is enabled, this information would be included with the responses to
/v2/skyblock/profile
and/v2/skyblock/profiles
. This can then be used to get world data from/v2/skyblock/world
which returns the island data as binary in the slime format.Beta Was this translation helpful? Give feedback.
All reactions