aboutsummaryrefslogtreecommitdiff
path: root/build/hypixelCached.js
diff options
context:
space:
mode:
Diffstat (limited to 'build/hypixelCached.js')
-rw-r--r--build/hypixelCached.js78
1 files changed, 39 insertions, 39 deletions
diff --git a/build/hypixelCached.js b/build/hypixelCached.js
index 8a35482..8693032 100644
--- a/build/hypixelCached.js
+++ b/build/hypixelCached.js
@@ -25,7 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
-exports.fetchProfileName = exports.fetchProfile = exports.fetchProfileUuid = exports.fetchSkyblockProfiles = exports.fetchBasicPlayer = exports.fetchPlayer = exports.usernameFromUser = exports.uuidFromUser = void 0;
+exports.fetchProfileName = exports.fetchProfile = exports.fetchProfileUuid = exports.fetchSkyblockProfiles = exports.fetchBasicPlayer = exports.fetchPlayer = exports.usernameFromUser = exports.uuidFromUser = exports.profileNameCache = exports.profilesCache = exports.profileCache = exports.basicPlayerCache = exports.playerCache = exports.basicProfilesCache = exports.usernameCache = void 0;
const node_cache_1 = __importDefault(require("node-cache"));
const mojang = __importStar(require("./mojang"));
const hypixel = __importStar(require("./hypixel"));
@@ -33,38 +33,38 @@ const util_1 = require("./util");
const _1 = require(".");
// cache usernames for 4 hours
/** uuid: username */
-const usernameCache = new node_cache_1.default({
+exports.usernameCache = new node_cache_1.default({
stdTTL: 60 * 60 * 4,
checkperiod: 60,
useClones: false,
});
-const basicProfilesCache = new node_cache_1.default({
+exports.basicProfilesCache = new node_cache_1.default({
stdTTL: 60 * 10,
checkperiod: 60,
useClones: true,
});
-const playerCache = new node_cache_1.default({
+exports.playerCache = new node_cache_1.default({
stdTTL: 60,
checkperiod: 10,
useClones: true,
});
// cache "basic players" (players without profiles) for 4 hours
-const basicPlayerCache = new node_cache_1.default({
+exports.basicPlayerCache = new node_cache_1.default({
stdTTL: 60 * 60 * 4,
checkperiod: 60 * 10,
useClones: true
});
-const profileCache = new node_cache_1.default({
+exports.profileCache = new node_cache_1.default({
stdTTL: 30,
checkperiod: 10,
useClones: true,
});
-const profilesCache = new node_cache_1.default({
+exports.profilesCache = new node_cache_1.default({
stdTTL: 60 * 3,
checkperiod: 10,
useClones: false,
});
-const profileNameCache = new node_cache_1.default({
+exports.profileNameCache = new node_cache_1.default({
stdTTL: 60 * 60,
checkperiod: 60,
useClones: false,
@@ -88,23 +88,23 @@ async function uuidFromUser(user) {
// if the user is 32 characters long, it has to be a uuid
if (util_1.isUuid(user))
return util_1.undashUuid(user);
- if (usernameCache.has(util_1.undashUuid(user))) {
+ if (exports.usernameCache.has(util_1.undashUuid(user))) {
// check if the uuid is a key
- const username = usernameCache.get(util_1.undashUuid(user));
+ const username = exports.usernameCache.get(util_1.undashUuid(user));
// sometimes the username will be null, return that
if (username === null)
return username;
// if it has .then, then that means its a waitForCacheSet promise. This is done to prevent requests made while it is already requesting
if (username.then) {
const { key: uuid, value: _username } = await username;
- usernameCache.set(uuid, _username);
+ exports.usernameCache.set(uuid, _username);
return uuid;
}
else
return util_1.undashUuid(user);
}
// check if the username is a value
- const uuidToUsername = usernameCache.mget(usernameCache.keys());
+ const uuidToUsername = exports.usernameCache.mget(exports.usernameCache.keys());
for (const [uuid, username] of Object.entries(uuidToUsername)) {
if (username && username.toLowerCase && user.toLowerCase() === username.toLowerCase())
return uuid;
@@ -112,18 +112,18 @@ async function uuidFromUser(user) {
if (_1.debug)
console.log('Cache miss: uuidFromUser', user);
// set it as waitForCacheSet (a promise) in case uuidFromUser gets called while its fetching mojang
- usernameCache.set(util_1.undashUuid(user), waitForCacheSet(usernameCache, user, user));
+ exports.usernameCache.set(util_1.undashUuid(user), waitForCacheSet(exports.usernameCache, user, user));
// not cached, actually fetch mojang api now
let { uuid, username } = await mojang.profileFromUser(user);
if (!uuid) {
- usernameCache.set(user, null);
+ exports.usernameCache.set(user, null);
return;
}
// remove dashes from the uuid so its more normal
uuid = util_1.undashUuid(uuid);
if (user !== uuid)
- usernameCache.del(user);
- usernameCache.set(uuid, username);
+ exports.usernameCache.del(user);
+ exports.usernameCache.set(uuid, username);
return uuid;
}
exports.uuidFromUser = uuidFromUser;
@@ -132,24 +132,24 @@ exports.uuidFromUser = uuidFromUser;
* @param user A user can be either a uuid or a username
*/
async function usernameFromUser(user) {
- if (usernameCache.has(util_1.undashUuid(user))) {
+ if (exports.usernameCache.has(util_1.undashUuid(user))) {
if (_1.debug)
console.log('Cache hit! usernameFromUser', user);
- return usernameCache.get(util_1.undashUuid(user));
+ return exports.usernameCache.get(util_1.undashUuid(user));
}
if (_1.debug)
console.log('Cache miss: usernameFromUser', user);
let { uuid, username } = await mojang.profileFromUser(user);
uuid = util_1.undashUuid(uuid);
- usernameCache.set(uuid, username);
+ exports.usernameCache.set(uuid, username);
return username;
}
exports.usernameFromUser = usernameFromUser;
let fetchingPlayers = new Set();
async function fetchPlayer(user) {
const playerUuid = await uuidFromUser(user);
- if (playerCache.has(playerUuid))
- return playerCache.get(playerUuid);
+ if (exports.playerCache.has(playerUuid))
+ return exports.playerCache.get(playerUuid);
// if it's already in the process of fetching, check every 100ms until it's not fetching the player anymore and fetch it again, since it'll be cached now
if (fetchingPlayers.has(playerUuid)) {
while (fetchingPlayers.has(playerUuid)) {
@@ -166,29 +166,29 @@ async function fetchPlayer(user) {
if (!cleanPlayer)
return;
// clone in case it gets modified somehow later
- playerCache.set(playerUuid, cleanPlayer);
- usernameCache.set(playerUuid, cleanPlayer.username);
+ exports.playerCache.set(playerUuid, cleanPlayer);
+ exports.usernameCache.set(playerUuid, cleanPlayer.username);
const cleanBasicPlayer = Object.assign({}, cleanPlayer);
delete cleanBasicPlayer.profiles;
- basicPlayerCache.set(playerUuid, cleanBasicPlayer);
+ exports.basicPlayerCache.set(playerUuid, cleanBasicPlayer);
return cleanPlayer;
}
exports.fetchPlayer = fetchPlayer;
/** Fetch a player without their profiles. This is heavily cached. */
async function fetchBasicPlayer(user) {
const playerUuid = await uuidFromUser(user);
- if (basicPlayerCache.has(playerUuid))
- return basicPlayerCache.get(playerUuid);
+ if (exports.basicPlayerCache.has(playerUuid))
+ return exports.basicPlayerCache.get(playerUuid);
const player = await fetchPlayer(playerUuid);
delete player.profiles;
return player;
}
exports.fetchBasicPlayer = fetchBasicPlayer;
async function fetchSkyblockProfiles(playerUuid) {
- if (profilesCache.has(playerUuid)) {
+ if (exports.profilesCache.has(playerUuid)) {
if (_1.debug)
console.log('Cache hit! fetchSkyblockProfiles', playerUuid);
- return profilesCache.get(playerUuid);
+ return exports.profilesCache.get(playerUuid);
}
if (_1.debug)
console.log('Cache miss: fetchSkyblockProfiles', playerUuid);
@@ -212,7 +212,7 @@ async function fetchSkyblockProfiles(playerUuid) {
basicProfiles.push(basicProfile);
}
// cache the profiles
- profilesCache.set(playerUuid, basicProfiles);
+ exports.profilesCache.set(playerUuid, basicProfiles);
return basicProfiles;
}
exports.fetchSkyblockProfiles = fetchSkyblockProfiles;
@@ -221,19 +221,19 @@ async function fetchBasicProfiles(user) {
const playerUuid = await uuidFromUser(user);
if (!playerUuid)
return; // invalid player, just return
- if (basicProfilesCache.has(playerUuid)) {
+ if (exports.basicProfilesCache.has(playerUuid)) {
if (_1.debug)
console.log('Cache hit! fetchBasicProfiles', playerUuid);
- return basicProfilesCache.get(playerUuid);
+ return exports.basicProfilesCache.get(playerUuid);
}
if (_1.debug)
console.log('Cache miss: fetchBasicProfiles', user);
const player = await fetchPlayer(playerUuid);
const profiles = player.profiles;
- basicProfilesCache.set(playerUuid, profiles);
+ exports.basicProfilesCache.set(playerUuid, profiles);
// cache the profile names and uuids to profileNameCache because we can
for (const profile of profiles)
- profileNameCache.set(`${playerUuid}.${profile.uuid}`, profile.name);
+ exports.profileNameCache.set(`${playerUuid}.${profile.uuid}`, profile.name);
return profiles;
}
/**
@@ -270,11 +270,11 @@ exports.fetchProfileUuid = fetchProfileUuid;
async function fetchProfile(user, profile) {
const playerUuid = await uuidFromUser(user);
const profileUuid = await fetchProfileUuid(playerUuid, profile);
- if (profileCache.has(profileUuid)) {
+ if (exports.profileCache.has(profileUuid)) {
// we have the profile cached, return it :)
if (_1.debug)
console.log('Cache hit! fetchProfile', profileUuid);
- return profileCache.get(profileUuid);
+ return exports.profileCache.get(profileUuid);
}
if (_1.debug)
console.log('Cache miss: fetchProfile', user, profile);
@@ -282,7 +282,7 @@ async function fetchProfile(user, profile) {
const cleanProfile = await hypixel.fetchMemberProfileUncached(playerUuid, profileUuid);
// we know the name from fetchProfileName, so set it here
cleanProfile.name = profileName;
- profileCache.set(profileUuid, cleanProfile);
+ exports.profileCache.set(profileUuid, cleanProfile);
return cleanProfile;
}
exports.fetchProfile = fetchProfile;
@@ -295,11 +295,11 @@ async function fetchProfileName(user, profile) {
// we're fetching the profile and player uuid again in case we were given a name, but it's cached so it's not much of a problem
const profileUuid = await fetchProfileUuid(user, profile);
const playerUuid = await uuidFromUser(user);
- if (profileNameCache.has(`${playerUuid}.${profileUuid}`)) {
+ if (exports.profileNameCache.has(`${playerUuid}.${profileUuid}`)) {
// Return the profile name if it's cached
if (_1.debug)
console.log('Cache hit! fetchProfileName', profileUuid);
- return profileNameCache.get(`${playerUuid}.${profileUuid}`);
+ return exports.profileNameCache.get(`${playerUuid}.${profileUuid}`);
}
if (_1.debug)
console.log('Cache miss: fetchProfileName', user, profile);
@@ -308,7 +308,7 @@ async function fetchProfileName(user, profile) {
for (const basicProfile of basicProfiles)
if (basicProfile.uuid === playerUuid)
profileName = basicProfile.name;
- profileNameCache.set(`${playerUuid}.${profileUuid}`, profileName);
+ exports.profileNameCache.set(`${playerUuid}.${profileUuid}`, profileName);
return profileName;
}
exports.fetchProfileName = fetchProfileName;