aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-08-15 14:14:19 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-08-15 14:14:19 +0200
commitceef1d3be403db7ee5f8cbda8c49f3370d35df78 (patch)
treef271d2b943e37331a6f87b352dd3e670af65b7c6 /src/main/java/at/hannibal2/skyhanni/data
parentecb40c801ab44118059c1ef07438dfacd75e3927 (diff)
downloadskyhanni-ceef1d3be403db7ee5f8cbda8c49f3370d35df78.tar.gz
skyhanni-ceef1d3be403db7ee5f8cbda8c49f3370d35df78.tar.bz2
skyhanni-ceef1d3be403db7ee5f8cbda8c49f3370d35df78.zip
removed hypixel api
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt154
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/CropAccessoryData.kt16
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt13
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()
}