diff options
| author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-16 12:34:18 +0200 |
|---|---|---|
| committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-16 12:34:18 +0200 |
| commit | 4293cfd919c3c93d4532534f722c407d7ad1370d (patch) | |
| tree | f9f612f021ef7f4283d74312edfaca30badc6749 /src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt | |
| parent | 538e3ceb76f8e0b590291ce9aa90aa94896cdcb6 (diff) | |
| parent | 024ba52fb69b6cd44b4e31542867f802de656f15 (diff) | |
| download | SkyHanni-cum.tar.gz SkyHanni-cum.tar.bz2 SkyHanni-cum.zip | |
Merge branch 'beta' into cumcum
# Conflicts:
# src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt
# src/main/java/at/hannibal2/skyhanni/config/features/AshfangConfig.java
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt | 519 |
1 files changed, 519 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt new file mode 100644 index 000000000..b0da49b33 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/test/SkyHanniDebugsAndTests.kt @@ -0,0 +1,519 @@ +package at.hannibal2.skyhanni.test + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.data.HypixelData +import at.hannibal2.skyhanni.events.GuiRenderEvent +import at.hannibal2.skyhanni.events.LorenzChatEvent +import at.hannibal2.skyhanni.events.PlaySoundEvent +import at.hannibal2.skyhanni.events.ReceiveParticleEvent +import at.hannibal2.skyhanni.features.dungeon.DungeonData +import at.hannibal2.skyhanni.features.garden.visitor.GardenVisitorColorNames +import at.hannibal2.skyhanni.utils.* +import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName +import at.hannibal2.skyhanni.utils.ItemUtils.getInternalNameOrNull +import at.hannibal2.skyhanni.utils.ItemUtils.name +import at.hannibal2.skyhanni.utils.NEUItems.getNpcPriceOrNull +import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators +import at.hannibal2.skyhanni.utils.RenderUtils.renderString +import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems +import net.minecraft.client.Minecraft +import net.minecraft.client.gui.inventory.GuiContainer +import net.minecraft.nbt.NBTTagCompound +import net.minecraftforge.client.event.GuiScreenEvent +import net.minecraftforge.common.MinecraftForge +import net.minecraftforge.event.entity.player.ItemTooltipEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import java.io.File + +class SkyHanniDebugsAndTests { + + companion object { + private val config get() = SkyHanniMod.feature.dev + var displayLine = "" + var displayList = emptyList<List<Any>>() + + var a = 1.0 + var b = 60.0 + var c = 0.0 + + val debugLogger = LorenzLogger("debug/test") + + fun runn(compound: NBTTagCompound, text: String) { + print("$text'$compound'") + for (s in compound.keySet) { + val element = compound.getCompoundTag(s) + runn(element, "$text ") + } + } + + private fun print(text: String) { + LorenzDebug.log(text) + } + + fun testCommand(args: Array<String>) { + SoundUtils.playBeepSound() + +// val a = Thread { OSUtils.copyToClipboard("123") } +// val b = Thread { OSUtils.copyToClipboard("456") } +// a.start() +// b.start() + + +// for ((i, s) in ScoreboardData.siedebarLinesFormatted().withIndex()) { +// println("$i: '$s'") +// } + +// val name = args[0] +// val pitch = args[1].toFloat() +// val sound = SoundUtils.createSound("note.harp", 1.35f) +// val sound = SoundUtils.createSound("random.orb", 11.2f) +// SoundUtils.createSound(name, pitch).playSound() + + +// a = args[0].toDouble() +// b = args[1].toDouble() +// c = args[2].toDouble() + +// for (line in (Minecraft.getMinecraft().ingameGUI.tabList as AccessorGuiPlayerTabOverlay).footer.unformattedText +// .split("\n")) { +// println("footer: '$line'") +// } +// +// +// for (line in TabListUtils.getTabList()) { +// println("tablist: '$line'") +// } + } + + fun testGardenVisitors() { + if (displayList.isNotEmpty()) { + displayList = mutableListOf() + return + } + + val bigList = mutableListOf<List<Any>>() + var list = mutableListOf<Any>() + var i = 0 + var errors = 0 + for (item in GardenVisitorColorNames.visitorItems) { + val name = item.key + i++ + if (i == 5) { + i = 0 + bigList.add(list) + list = mutableListOf() + } + + val coloredName = GardenVisitorColorNames.getColoredName(name) + list.add("$coloredName§7 (") + for (itemName in item.value) { + try { + val internalName = NEUItems.getRawInternalName(itemName) + list.add(NEUItems.getItemStack(internalName)) + } catch (e: Error) { + LorenzUtils.debug("itemName '$itemName' is invalid for visitor '$name'") + errors++ + } + } + if (item.value.isEmpty()) { + list.add("Any") + } + list.add("§7) ") + } + bigList.add(list) + displayList = bigList + if (errors == 0) { + LorenzUtils.debug("Test garden visitor renderer: no errors") + } else { + LorenzUtils.debug("Test garden visitor renderer: $errors errors") + } + } + + fun reloadListeners() { + val blockedFeatures = try { + File("config/skyhanni/blocked-features.txt").readLines().toList() + } catch (e: Exception) { + emptyList() + } + + val modules = SkyHanniMod.modules + for (original in modules.toMutableList()) { + val javaClass = original.javaClass + val simpleName = javaClass.simpleName + MinecraftForge.EVENT_BUS.unregister(original) + println("Unregistered listener $simpleName") + + if (simpleName !in blockedFeatures) { + modules.remove(original) + val module = javaClass.newInstance() + modules.add(module) + + MinecraftForge.EVENT_BUS.register(module) + println("Registered listener $simpleName") + } else { + println("Skipped registering listener $simpleName") + } + } + LorenzUtils.chat("§e[SkyHanni] reloaded ${modules.size} listener classes.") + } + + fun stopListeners() { + val modules = SkyHanniMod.modules + for (original in modules.toMutableList()) { + val javaClass = original.javaClass + val simpleName = javaClass.simpleName + MinecraftForge.EVENT_BUS.unregister(original) + println("Unregistered listener $simpleName") + } + LorenzUtils.chat("§e[SkyHanni] stopped ${modules.size} listener classes.") + } + + fun copyLocation(args: Array<String>) { + val location = LocationUtils.playerLocation() + val x = LorenzUtils.formatDouble(location.x + 0.001).replace(",", ".") + val y = LorenzUtils.formatDouble(location.y + 0.001).replace(",", ".") + val z = LorenzUtils.formatDouble(location.z + 0.001).replace(",", ".") + if (args.size == 1) { + if (args[0].equals("json", false)) { + OSUtils.copyToClipboard("\"$x:$y:$z\"") + return + } + } + + OSUtils.copyToClipboard("LorenzVec($x, $y, $z)") + } + + fun debugVersion() { + LorenzUtils.chat("§eYou are using SkyHanni ${SkyHanniMod.version}") + } + + fun debugData(args: Array<String>) { + if (args.size == 2) { + if (args[0] == "profileName") { + HypixelData.profileName = args[1].lowercase() + LorenzUtils.chat("§eManually set profileName to '${HypixelData.profileName}'") + return + } + } + val builder = StringBuilder() + builder.append("```\n") + builder.append("= Debug Information = \n") + builder.append("\n") + builder.append("SkyHanni ${SkyHanniMod.version}\n") + builder.append("\n") + builder.append("player name: '${LorenzUtils.getPlayerName()}'\n") + builder.append("player uuid: '${LorenzUtils.getPlayerUuid()}'\n") + builder.append("repoAutoUpdate: ${config.repoAutoUpdate}\n") + builder.append("\n") + + builder.append("onHypixel: ${LorenzUtils.onHypixel}\n") + val inSkyBlock = LorenzUtils.inSkyBlock + builder.append("inSkyBlock: $inSkyBlock\n") + + if (inSkyBlock) { + builder.append("\n") + builder.append("skyBlockIsland: ${LorenzUtils.skyBlockIsland}\n") + builder.append("skyBlockArea: '${LorenzUtils.skyBlockArea}'\n") + builder.append("profileName: '${HypixelData.profileName}'\n") + builder.append("\n") + builder.append("ironman: ${HypixelData.ironman}\n") + builder.append("stranded: ${HypixelData.stranded}\n") + builder.append("bingo: ${HypixelData.bingo}\n") + + if (LorenzUtils.inDungeons) { + builder.append("\n") + builder.append("in dungeon!\n") + builder.append(" dungeonFloor: ${DungeonData.dungeonFloor}\n") + builder.append(" started: ${DungeonData.started}\n") + builder.append(" inBossRoom: ${DungeonData.inBossRoom}\n") + } + + } + builder.append("```") + OSUtils.copyToClipboard(builder.toString()) + LorenzUtils.chat("§eCopied SkyHanni debug data to clipboard.") + } + + fun copyItemInternalName() { + val hand = InventoryUtils.getItemInHand() + if (hand == null) { + LorenzUtils.chat("§cNo item in hand!") + return + } + + val internalName = hand.getInternalNameOrNull() + if (internalName == null) { + LorenzUtils.chat("§cInternal name is null for item ${hand.name}") + return + } + + val rawInternalName = internalName.asString() + OSUtils.copyToClipboard(rawInternalName) + LorenzUtils.chat("§eCopied internal name §7$rawInternalName §eto the clipboard!") + } + } + + @SubscribeEvent + fun onKeybind(event: GuiScreenEvent.KeyboardInputEvent.Post) { + if (!OSUtils.isKeyHeld(SkyHanniMod.feature.dev.copyInternalName)) return + val gui = event.gui as? GuiContainer ?: return + val focussedSlot = gui.slotUnderMouse ?: return + val stack = focussedSlot.stack ?: return + val internalName = stack.getInternalNameOrNull() ?: return + val rawInternalName = internalName.asString() + OSUtils.copyToClipboard(rawInternalName) + LorenzUtils.chat("§eCopied internal name §7$rawInternalName §eto the clipboard!") + } + + @SubscribeEvent + fun onShowInternalName(event: ItemTooltipEvent) { + if (!config.showInternalName) return + val itemStack = event.itemStack ?: return + val internalName = itemStack.getInternalName() + if ((internalName == NEUInternalName.NONE) && !config.showEmptyNames) return + event.toolTip.add("Internal Name: '${internalName.asString()}'") + } + + @SubscribeEvent + fun onSHowNpcPrice(event: ItemTooltipEvent) { + if (!config.showNpcPrice) return + val itemStack = event.itemStack ?: return + val internalName = itemStack.getInternalNameOrNull() ?: return + + val npcPrice = internalName.getNpcPriceOrNull() ?: return + event.toolTip.add("§7Npc price: §6${npcPrice.addSeparators()}") + } + + @SubscribeEvent + fun onRenderLocation(event: GuiRenderEvent.GameOverlayRenderEvent) { + if (LorenzUtils.inSkyBlock && Minecraft.getMinecraft().gameSettings.showDebugInfo) { + config.debugLocationPos.renderString( + "Current Area: ${HypixelData.skyBlockArea}", + posLabel = "SkyBlock Area (Debug)" + ) + } + } + + @SubscribeEvent + fun onChatMessage(event: LorenzChatEvent) { + + } + + @SubscribeEvent + fun onRenderOverlay(event: GuiRenderEvent.GameOverlayRenderEvent) { + if (!LorenzUtils.inSkyBlock) return + if (!config.debugEnabled) return + + if (displayLine.isNotEmpty()) { + config.debugPos.renderString("test: $displayLine", posLabel = "Test") + } + config.debugPos.renderStringsAndItems(displayList, posLabel = "Test Display") + } + + @SubscribeEvent + fun onSoundPlay(event: PlaySoundEvent) { +// val location = event.location +// val distance = location.distanceToPlayer() +// val soundName = event.soundName +// val pitch = event.pitch +// val volume = event.volume + + //background music +// if (soundName == "note.harp") { +//// if (distance < 2) { +// +// +// //Wilderness +// val list = mutableListOf<Float>() +//// list.add(0.4920635) +//// list.add(0.74603176) +//// list.add(0.8888889) +//// list.add(1.1746032) +//// list.add(1.7777778) +//// list.add(0.5873016) +//// list.add(1f) +//// list.add(1.4920635) +//// list.add(0.4920635) +//// list.add(1.8730159) +//// list.add(0.82539684) +//// list.add(1.1111112) +//// list.add(1.6666666) +//// list.add(0.5555556) +//// list.add(0.6984127) +//// list.add(0.93650794) +//// list.add(1.4126984) +//// list.add(1.3333334) +//// list.add(1.5873016) +// +// if (pitch in list) { +// if (Minecraft.getMinecraft().thePlayer.isSneaking) { +// event.isCanceled = true +// } +// return +// } +// } + + + //diana ancestral spade +// if (soundName == "note.harp") { +// val list = mutableListOf<Float>() +// list.add(0.52380955f) +// list.add(0.5555556f) +// list.add(0.6031746f) +// list.add(0.63492066f) +// list.add(0.6825397f) +// list.add(0.71428573f) +// list.add(0.7619048f) +// list.add(0.7936508f) +// list.add(0.84126985f) +// list.add(0.8888889f) +// list.add(0.9206349f) +// list.add(0.96825397f) +// list.add(1.476191f) +// list.add(1.476191f) +// list.add(0.50793654f) +// list.add(0.6507937f) +// list.add(0.6984127f) +// list.add(0.74603176f) +// list.add(0.93650794f) +// list.add(0.984127f) +// list.add(1.968254f) +// list.add(0.4920635f) +// list.add(1.1587307f) +// list.add(1.1587301f) +// list.add(1.2857143f) +// list.add(1.4126984f) +// list.add(1.6825397f) +// list.add(1.8095238f) +// list.add(1.9365079f) +// list.add(1.4920635f) +// list.add(1.5396825f) +// list.add(0.8730159f) +// list.add(1.2539682f) +// list.add(1.4285715f) +// list.add(1.6190476f) +// list.add(1.4920635f) +// list.add(0.9047619f) +// list.add(1.1111112f) +// list.add(1.3174603f) +// list.add(1.5238096f) +// list.add(1.7301587f) +// +// list.add(0.5873016f) +// list.add(0.61904764f) +// list.add(0.6666667f) +// list.add(0.73015875f) +// list.add(0.7777778f) +// list.add(0.8095238f) +// list.add(0.8095238f) +// list.add(0.82539684f) +// +// list.add(0.5714286f) +// list.add(0.85714287f) +// list.add(1.3174603f) +// list.add(1.9523809f) +// list.add(1.1428572f) +// list.add(1.2063493f) +// list.add(1.2698413f) +// list.add(1.6349206f) +// list.add(1.2380953f) +// list.add(1.7936507f) +// list.add(1.9841269f) +// list.add(1.1746032f) +// list.add(1.3492063f) +// list.add(1.6984127f) +// list.add(1.8571428f) +// +// if (pitch in list) { +// return +// } +// } + + //use ancestral spade +// if (soundName == "mob.zombie.infect") { +// if (pitch == 1.968254f) { +// if (volume == 0.3f) { +// LorenzUtils.chat("used ancestral spade!") +// return +// } +// } +// } + + //wither shield activated +// if (soundName == "mob.zombie.remedy") { +// if (pitch == 0.6984127f) { +// if (volume == 1f) { +// return +// } +// } +// } + + //wither shield cooldown over +// if (soundName == "random.levelup") { +// if (pitch == 3f) { +// if (volume == 1f) { +// return +// } +// } +// } + + //teleport (hyp or aote) +// if (soundName == "mob.endermen.portal") { +// if (pitch == 1f && volume == 1f) { +// return +// } +// } + + //hyp wither impact +// if (soundName == "random.explode") { +// if (pitch == 1f && volume == 1f) { +// return +// } +// } + + //pick coins up +// if (soundName == "random.orb") { +// if (pitch == 1.4920635f && volume == 1f) { +// return +// } +// } + + +// if (soundName == "game.player.hurt") return +// if (soundName.startsWith("step.")) return + +// if (soundName != "mob.chicken.plop") return + +// println("") +// println("PlaySoundEvent") +// println("soundName: $soundName") +// println("distance: $distance") +// println("pitch: ${pitch}f") +// println("volume: ${volume}f") + } + + @SubscribeEvent + fun onParticlePlay(event: ReceiveParticleEvent) { +// val particleType = event.type +// val distance = LocationUtils.playerLocation().distance(event.location).round(2) +// +// println("") +// println("particleType: $particleType") +// +// val particleCount = event.count +// +// println("distance: $distance") +// +// val particleArgs = event.particleArgs +// println("args: " + particleArgs.size) +// for ((i, particleArg) in particleArgs.withIndex()) { +// println("$i $particleArg") +// } +// +// val particleSpeed = event.speed +// val offset = event.offset +// println("particleCount: $particleCount") +// println("particleSpeed: $particleSpeed") +// println("offset: $offset") + } +}
\ No newline at end of file |
