types(skyblock): add skill_tree, foraging, shards, attributes, and other API additions to ProfileMember - #474
Conversation
|
I put "feat(skyblock)" instead of "types(skyblock)" for most of them... whoops, sorry |
You can actually do a rebase on that one. An interactive rebase from the starting commit, then tell it you want to update the commit messages. Finally, you can force push those changes to "overwrite" your branch. Force pushing is something that you don't do on the main branches, but is fine on feature branches (generally speaking, YMMV depending on the project and it's requirements). |
|
You can also update your description to do something like "Resolves #473" to get the automation aspect. |
All search results show a CLI solution... and I've never used the CLI for Git before, sorry |
|
Unfortunately the automate release tooling will bump the minor version if there are feat(ure) commits. In semver, a minor version should introduce a new feature, whereas I don't personally qualify adding more type definitions as a feature. That being said, I can just squash the merge, which I would probably do anyway. I'll want to review this in more depth when I'm more awake, it's 5AM and I've been on side quest after side quest - all because I wanted to update the Vitepress documentation 😓 |
|
In conventional commits fix implies a bugfix. A formatting fix would fall under style. https://gist.github.com/pmutua/7008c22908f89eb8bd21b36e4f92b04f But like I said - that doesn't exactly matter ultimately, since I'll squash the PR and it'll just get turned into one commit. |
np lol |
It's very much the same when working on a team at a company as well - whether you use GitHub, Gitlab, BitBucket, etc. the paradigms can mostly be mapped to eachother. A valuable skill for any SWE! |
|
Can this be merged and updated? Could really use the types in my code |
|
I checked these types against a few live profiles. Most of it verifies exactly, including the full Four things need fixing before merge - and if you have a profile that contradicts my findings, let me know: 1. "skill_tree": {
"nodes": { "mining": {...}, "mining_2": {...}, ..."mining_5", "foraging": {...}, ..."foraging_5" },
"experience": { "mining": 428950, "foraging": 60 },
"tokens_spent": { "mountain": 15, "mountain_2": 15, "forest_2": 0, ... },
"selected_ability": { "mining_2": "pickobulus" },
"last_reset": { "mining": 1783429005097 },
"selected_skill_tree_slot": { "mining": 2 },
"refund_ability_free": true,
"mining": { "custom_name": "Gemstone Grind" },
"mining_2": { "custom_name": "Mithril Grind" }
}The per-node lists you wrote are correct and worth keeping. They just need to sit under a slot-keyed 2. 3. 4. Since I can't commit changes to your own branch, here is a diff capturing my suggested changes: diff --git a/src/types/Augmented/SkyBlock/ProfileMember.ts b/src/types/Augmented/SkyBlock/ProfileMember.ts
index d598b2f6..e0d5e210 100644
--- a/src/types/Augmented/SkyBlock/ProfileMember.ts
+++ b/src/types/Augmented/SkyBlock/ProfileMember.ts
@@ -157,7 +157,7 @@ export type SkyBlockProfileMember = NonNullable<
shared_inventory: SkyBlockProfileMemberSharedInventory;
slayer?: SkyBlockProfileMemberSlayer;
trophy_fish?: SkyBlockProfileMemberTrophyFish;
- skill_trees?: SkyBlockProfileMemberSkillTrees;
+ skill_tree?: SkyBlockProfileMemberSkillTree;
foraging?: SkyBlockProfileMemberForaging;
foraging_core?: SkyBlockProfileMemberForagingCore;
shards?: SkyBlockProfileMemberShards;
@@ -273,7 +273,7 @@ export type SkyBlockProfileMemberPlayerData = {
rarefinder?: number;
synthesis?: number;
evergreen?: number;
- vermin_vaporize?: number;
+ vermin_vaporizer?: number;
[key: string]: number | undefined;
};
reaper_peppers_eaten?: number;
@@ -1109,7 +1109,7 @@ export type SkyBlockProfileMemberRift = {
[key: string]: unknown;
};
-export type SkyBlockProfileMemberSkillTrees = {
+export type SkyBlockProfileMemberSkillTree = {
nodes?: {
mining?: {
core_of_the_mountain?: number;
@@ -1259,12 +1259,22 @@ export type SkyBlockProfileMemberSkillTrees = {
} & {
[key: string]: number | boolean;
};
+ [key: string]:
+ | {
+ [key: string]: number | boolean;
+ }
+ | undefined;
};
selected_ability?: {
mining?: string;
foraging?: string;
[key: string]: string | undefined;
};
+ selected_skill_tree_slot?: {
+ mining?: number;
+ foraging?: number;
+ [key: string]: number | undefined;
+ };
tokens_spent?: {
mountain?: number;
forest?: number;
@@ -1281,6 +1291,11 @@ export type SkyBlockProfileMemberSkillTrees = {
[key: string]: number | undefined;
};
refund_ability_free?: boolean;
+ [key: `mining${string}` | `foraging${string}`]:
+ | {
+ custom_name?: string;
+ }
+ | undefined;
};
export type SkyBlockProfileMemberForaging = {
@@ -1396,6 +1411,16 @@ export type SkyBlockProfileMemberForagingCore = {
forests_whispers_spent?: number;
current_daily_effect?: string;
current_daily_effect_last_changed?: number;
+ whispers?: {
+ [key: string]:
+ | {
+ total?: number;
+ [key: `${number}`]: {
+ spent?: number;
+ };
+ }
+ | undefined;
+ };
};
export type SkyBlockProfileMemberShards = {
@@ -1408,6 +1433,7 @@ export type SkyBlockProfileMemberShards = {
placed_at?: number;
shard?: string;
captured?: boolean;
+ museum?: boolean;
uuid?: string;
hunting_toolkit?: boolean;
hunting_toolkit_index?: number; |
|
The main bit that's different on my own profile is Which just isn't there and is instead "selected_ability" Also, I think I've added all of what you suggested, but a double check would be awesome, thanks |
|
I sampled the user It appears Second, the branch doesn't compile right now.
The pattern that compiles is named keys plus a Patch attached that applies on top of your current head and does all of the above. Patch: pr474fixontop.patch git apply pr474-fix-on-top.patch |
|
I have no idea what the issue is, CoPilot says this: Solution for failing job 97405519409: The failure is in dependency installation (npm ci), not in your source code lint/tests. Error: spawnSync .../node_modules/esbuild/bin/esbuild ETXTBSY Fix # .github/workflows/test.yml
jobs:
test_lint:
runs-on: ubuntu-latest
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22.x # was: latest
cache: npm
- run: npm ci
- name: Don't continue if lint fails.
run: npm run test:lintWhy this works env:
CI_NODE_VERSION: 22.xThen use ${{ env.CI_NODE_VERSION }} in setup-node for non-matrix jobs. |
## [4.1.11](v4.1.10...v4.1.11) (2026-08-24) ### API Type Coverage * **skyblock:** add skill_tree, foraging, shards, attributes, and other API additions to ProfileMember ([#474](#474)) ([3c114cb](3c114cb))
|
🎉 This PR is included in version 4.1.11 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Added all the new API data shown in "skyblock_profile_v2.json" here: HypixelDatabase/HypixelTracking@74e6777
Resolves: #473