Skip to content

Commit

Permalink
Convert src/utils into typescript
Browse files Browse the repository at this point in the history
  • Loading branch information
Kathund committed Jul 27, 2024
1 parent f22e50e commit 3d34b20
Show file tree
Hide file tree
Showing 14 changed files with 4,000 additions and 2,042 deletions.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
"author": "Kathund",
"dependencies": {
"axios": "^1.7.2",
"node-cache": "^5.1.2"
"node-cache": "^5.1.2",
"prismarine-nbt": "^2.5.0"
},
"license": "MIT",
"readme": "https://github.com/Hypixel-API-Reborn/hypixel-api-reborn?tab=readme-ov-file#hypixel-api--reborn",
Expand Down
109 changes: 109 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 9 additions & 3 deletions src/Private/uuidCache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@ import NodeCache from 'node-cache';
const cache = new NodeCache();
import axios from 'axios';

export default async (url: string, query: string, cacheTime: number) => {
if (cache.has(query.toLowerCase())) return cache.get(query.toLowerCase());
export interface CacheData {
status: number;
id: string | null;
name: string | null;
}

export default async function (url: string, query: string, cacheTime: number): Promise<CacheData> {
if (cache.has(query.toLowerCase())) return cache.get(query.toLowerCase()) as CacheData;
const res = await axios.get(url);
const data = await res.data.json();
// Don't cache 4xx
Expand All @@ -23,4 +29,4 @@ export default async (url: string, query: string, cacheTime: number) => {
id: data.id,
name: data.name
};
};
}
134 changes: 134 additions & 0 deletions src/typings/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,3 +145,137 @@ export type GameID =
| -4
| -5
| -6;

export interface LevelProgress {
xpToNext: number;
remainingXP: number;
currentXP: number;
percent: number;
percentRemaining: number;
}

export interface PlayerSocialMedia {
name: string;
link: string;
id: string;
}

export interface SkyblockSkillLevel {
xp: number;
level: number;
maxLevel: number;
xpCurrent: number;
xpForNext: number;
progress: number;
cosmetic: boolean;
}
export interface SkyblockMemberSkills {
combat: SkyblockSkillLevel;
farming: SkyblockSkillLevel;
fishing: SkyblockSkillLevel;
mining: SkyblockSkillLevel;
foraging: SkyblockSkillLevel;
enchanting: SkyblockSkillLevel;
alchemy: SkyblockSkillLevel;
carpentry: SkyblockSkillLevel;
runecrafting: SkyblockSkillLevel;
taming: SkyblockSkillLevel;
social: SkyblockSkillLevel;
average: number;
}

export interface SkyblockMemberSlayerLevel {
xp: number;
tier1: number;
tier2: number;
tier3: number;
tier4: number;
tier5: number;
level: number;
}

export interface SkyblockMemberSlayer {
zombie: SkyblockMemberSlayerLevel;
spider: SkyblockMemberSlayerLevel;
wolf: SkyblockMemberSlayerLevel;
enderman: SkyblockMemberSlayerLevel;
blaze: SkyblockMemberSlayerLevel;
vampire: SkyblockMemberSlayerLevel;
}

export interface SkyblockMemberDungeonsTypes {
catacombs: SkyblockSkillLevel;
}

export interface SkyblockMemberDungeonsClasses {
healer: SkyblockSkillLevel;
mage: SkyblockSkillLevel;
berserk: SkyblockSkillLevel;
archer: SkyblockSkillLevel;
tank: SkyblockSkillLevel;
}

export interface SkyblockMemberDungeons {
types: SkyblockMemberDungeonsTypes;
classes: SkyblockMemberDungeonsClasses;
}

export interface SkyblockMemberJacobDataMedals {
gold: number;
silver: number;
bronze: number;
}

export interface SkyblockMemberJacobDataPerks {
doubleDrops: number;
farmingLevelCap: number;
personalBests: boolean;
}

export interface SkyblockMemberJacobData {
medals: SkyblockMemberJacobDataMedals;
perks: SkyblockMemberJacobDataPerks;
contests: Record<string, any>;
}

export interface SkyblockMemberChocolateFactoryDataEmployees {
bro: number;
cousin: number;
sis: number;
father: number;
grandma: number;
dog: number;
uncle: number;
}

export interface SkyblockMemberChocolateFactoryDataChocolate {
current: number;
total: number;
sincePrestige: number;
}

export interface SkyblockMemberChocolateFactoryDataTimeTower {
charges: number;
level: number;
}

export interface SkyblockMemberChocolateFactoryDataUpgrades {
click: number;
multiplier: number;
rabbitRarity: number;
}

export interface SkyblockMemberChocolateFactoryDataGoldenClick {
amount: number;
year: number;
}

export interface SkyblockMemberChocolateFactoryData {
employees: SkyblockMemberChocolateFactoryDataEmployees;
chocolate: SkyblockMemberChocolateFactoryDataChocolate;
timeTower: SkyblockMemberChocolateFactoryDataTimeTower;
upgrades: SkyblockMemberChocolateFactoryDataUpgrades;
goldenClick: SkyblockMemberChocolateFactoryDataGoldenClick;
barnCapacity: number;
prestige: number;
}
Loading

0 comments on commit 3d34b20

Please sign in to comment.