diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-08-15 14:14:19 +0200 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-08-15 14:14:19 +0200 |
commit | ceef1d3be403db7ee5f8cbda8c49f3370d35df78 (patch) | |
tree | f271d2b943e37331a6f87b352dd3e670af65b7c6 /src/main/java/at/hannibal2/skyhanni/data | |
parent | ecb40c801ab44118059c1ef07438dfacd75e3927 (diff) | |
download | skyhanni-ceef1d3be403db7ee5f8cbda8c49f3370d35df78.tar.gz skyhanni-ceef1d3be403db7ee5f8cbda8c49f3370d35df78.tar.bz2 skyhanni-ceef1d3be403db7ee5f8cbda8c49f3370d35df78.zip |
removed hypixel api
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
3 files changed, 4 insertions, 179 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt b/src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt deleted file mode 100644 index c77210ce6..000000000 --- a/src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt +++ /dev/null @@ -1,154 +0,0 @@ -package at.hannibal2.skyhanni.data - -import at.hannibal2.skyhanni.SkyHanniMod -import at.hannibal2.skyhanni.events.LorenzTickEvent -import at.hannibal2.skyhanni.events.ProfileApiDataLoadedEvent -import at.hannibal2.skyhanni.events.ProfileJoinEvent -import at.hannibal2.skyhanni.events.RepositoryReloadEvent -import at.hannibal2.skyhanni.utils.APIUtil -import at.hannibal2.skyhanni.utils.LorenzUtils -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -import net.minecraft.client.Minecraft -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -import java.io.File -import java.util.* - -class ApiDataLoader { - private var currentProfileName = "" - private var currentProfileId = "" - - private var usePlayerApiKey = false - - @SubscribeEvent - fun onRepositoryReload(event: RepositoryReloadEvent) { - usePlayerApiKey = false - event.getConstant("DisabledFeatures")?.let { - if (it.asJsonObject["user_api_keys"]?.asBoolean == true) { - usePlayerApiKey = true - } - } - } - - @SubscribeEvent - fun onTick(event: LorenzTickEvent) { - val thePlayer = Minecraft.getMinecraft().thePlayer ?: return - thePlayer.worldObj ?: return - if (!usePlayerApiKey) return - - if (nextApiCallTime != -1L && System.currentTimeMillis() > nextApiCallTime) { - nextApiCallTime = System.currentTimeMillis() + 60_000 * 5 - SkyHanniMod.coroutineScope.launch { - val apiKey = SkyHanniMod.feature.storage.apiKey - val uuid = LorenzUtils.getPlayerUuid() - loadProfileData(apiKey, uuid, currentProfileId) - } - } - } - - @SubscribeEvent - fun onProfileJoin(event: ProfileJoinEvent) { - currentProfileName = event.name - if (!usePlayerApiKey) return - updateApiData() - } - - private suspend fun tryUpdateProfileDataAndVerifyKey(apiKey: String): Boolean { - val uuid = LorenzUtils.getPlayerUuid() - val url = "https://api.hypixel.net/player?key=$apiKey&uuid=$uuid" - val jsonObject = withContext(Dispatchers.IO) { APIUtil.getJSONResponse(url) } - - if (jsonObject["success"]?.asBoolean == false) { - if (jsonObject["throttle"]?.asBoolean == true) return true // 429 Too Many Requests doesn't make an invalid key. - val cause = jsonObject["cause"].asString - if (cause == "Invalid API key") { - return false - } else { - throw RuntimeException("API error for url '$url': $cause") - } - } - val player = jsonObject["player"].asJsonObject - val stats = player["stats"].asJsonObject - val skyBlock = stats["SkyBlock"].asJsonObject - val profiles = skyBlock["profiles"].asJsonObject - for (entry in profiles.entrySet()) { - val asJsonObject = entry.value.asJsonObject - val name = asJsonObject["cute_name"].asString - if (currentProfileName == name.lowercase()) { - currentProfileId = asJsonObject["profile_id"].asString - loadProfileData(apiKey, uuid, currentProfileId) - } - } - return true - } - - private fun updateApiData() { - nextApiCallTime = -1 - SkyHanniMod.coroutineScope.launch { - val oldApiKey = SkyHanniMod.feature.storage.apiKey - if (oldApiKey.isNotEmpty() && tryUpdateProfileDataAndVerifyKey(oldApiKey)) { - return@launch - } - findApiCandidatesFromOtherMods().forEach { (modName, newApiKey) -> - if (tryUpdateProfileDataAndVerifyKey(newApiKey)) { - SkyHanniMod.feature.storage.apiKey = newApiKey - LorenzUtils.chat("§e[SkyHanni] Imported valid API key from $modName.") - return@launch - } - } - } - } - - private fun findApiCandidatesFromOtherMods(): Map<String, String> { - LorenzUtils.consoleLog("Trying to find the api key from the config of other mods..") - val candidates = mutableMapOf<String, String>() - for (mod in OtherMod.entries) { - val modName = mod.modName - val file = File(mod.configPath) - if (file.exists()) { - val reader = APIUtil.readFile(file) - try { - val key = mod.readKey(reader).replace("\n", "").replace(" ", "") - if (key == "") { - LorenzUtils.consoleLog("- $modName: no api key set!") - continue - } - UUID.fromString(key) - candidates[modName] = key - } catch (e: Throwable) { - LorenzUtils.consoleLog("- $modName: wrong config format! (" + e.message + ")") - continue - } - } else { - LorenzUtils.consoleLog("- $modName: no mod/config found!") - } - } - return candidates - } - - private suspend fun loadProfileData(apiKey: String, playerUuid: String, profileId: String) { - val url = "https://api.hypixel.net/skyblock/profile?key=$apiKey&profile=$profileId" - - val jsonObject = withContext(Dispatchers.IO) { APIUtil.getJSONResponse(url) } - val profile = jsonObject["profile"]?.asJsonObject ?: return - val members = profile["members"]?.asJsonObject ?: return - for (entry in members.entrySet()) { - if (entry.key == playerUuid) { - val profileData = entry.value.asJsonObject - ProfileApiDataLoadedEvent(profileData).postAndCatch() - nextApiCallTime = System.currentTimeMillis() + 60_000 * 3 - } - } - } - - companion object { - private var nextApiCallTime = -1L - - fun command(args: Array<String>) { - SkyHanniMod.feature.storage.apiKey = args[0] - LorenzUtils.chat("§e[SkyHanni] Api key set via command!") - nextApiCallTime = -1 - } - } -} diff --git a/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt b/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt index 0fcc94bf8..93a590016 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt @@ -1,6 +1,9 @@ package at.hannibal2.skyhanni.data -import at.hannibal2.skyhanni.events.* +import at.hannibal2.skyhanni.events.InventoryCloseEvent +import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent +import at.hannibal2.skyhanni.events.LorenzTickEvent +import at.hannibal2.skyhanni.events.ProfileJoinEvent import at.hannibal2.skyhanni.features.garden.CropAccessory import at.hannibal2.skyhanni.features.garden.GardenAPI import at.hannibal2.skyhanni.utils.InventoryUtils @@ -32,17 +35,6 @@ class CropAccessoryData { accessoryPage.clear() } - @SubscribeEvent - fun onProfileDataLoad(event: ProfileApiDataLoadedEvent) { - if (loadedAccessoryThisProfile) return - val inventoryData = event.profileData["inv_contents"] ?: return - val accessories = getCropAccessories(event.profileData["talisman_bag"]).also { - it.addAll(getCropAccessories(inventoryData)) - } - cropAccessory = accessories.maxOrNull() ?: CropAccessory.NONE - loadedAccessoryThisProfile = true - } - // Handle accessory bag detection @SubscribeEvent fun onInventoryOpen(event: InventoryFullyOpenedEvent) { diff --git a/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt b/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt index 2db2181a1..c847c1710 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt @@ -2,7 +2,6 @@ package at.hannibal2.skyhanni.data import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent import at.hannibal2.skyhanni.events.LorenzActionBarEvent -import at.hannibal2.skyhanni.events.ProfileApiDataLoadedEvent import at.hannibal2.skyhanni.events.ProfileJoinEvent import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.ItemUtils.name @@ -18,18 +17,6 @@ class SkillExperience { private val inventoryPattern = ".* §e(?<number>.*)§6/.*".toPattern() @SubscribeEvent - fun onProfileDataLoad(event: ProfileApiDataLoadedEvent) { - val profileData = event.profileData - for ((key, value) in profileData.entrySet()) { - if (key.startsWith("experience_skill_")) { - val label = key.substring(17) - val exp = value.asLong - skillExp[label] = exp - } - } - } - - @SubscribeEvent fun onProfileJoin(event: ProfileJoinEvent) { skillExp.clear() } |