diff options
| author | Lorenz <ESs95s3P5z8Pheb> | 2022-07-09 02:41:10 +0200 |
|---|---|---|
| committer | Lorenz <ESs95s3P5z8Pheb> | 2022-07-09 02:41:10 +0200 |
| commit | 8b9489efd50a238fbb918705132e17bb64461837 (patch) | |
| tree | 2e3cac801aaa3c6adeb9ceb0ce30d898d2eb3881 /src/main/java/at/lorenz/mod/misc | |
| parent | 8d24353d88e5a0ac1be40922275ccbb57a9e9c2d (diff) | |
| download | SkyHanni-8b9489efd50a238fbb918705132e17bb64461837.tar.gz SkyHanni-8b9489efd50a238fbb918705132e17bb64461837.tar.bz2 SkyHanni-8b9489efd50a238fbb918705132e17bb64461837.zip | |
adding support for isOnHypixel, inSkyblock and inDungeons
Diffstat (limited to 'src/main/java/at/lorenz/mod/misc')
4 files changed, 88 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt b/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt index 9fe540ae9..c15ce4a44 100644 --- a/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt +++ b/src/main/java/at/lorenz/mod/misc/ButtonOnPause.kt @@ -1,6 +1,7 @@ package at.lorenz.mod.misc import at.lorenz.mod.LorenzMod +import at.lorenz.mod.utils.LorenzUtils import com.thatgravyboat.skyblockhud_2.config.SBHConfigEditor import com.thatgravyboat.skyblockhud_2.core.GuiScreenElementWrapper import net.minecraft.client.gui.GuiButton @@ -13,6 +14,8 @@ class ButtonOnPause { @SubscribeEvent fun onGuiAction(event: GuiScreenEvent.ActionPerformedEvent.Post) { + if (!LorenzUtils.isOnHypixel) return + if (LorenzMod.feature.misc.configButtonOnPause && event.gui is GuiIngameMenu && event.button.id == buttonId) { LorenzMod.screenToOpen = GuiScreenElementWrapper(SBHConfigEditor(LorenzMod.feature)) } @@ -20,6 +23,8 @@ class ButtonOnPause { @SubscribeEvent fun onGuiInitPost(event: GuiScreenEvent.InitGuiEvent.Post) { + if (!LorenzUtils.isOnHypixel) return + if (LorenzMod.feature.misc.configButtonOnPause && event.gui is GuiIngameMenu) { val x = event.gui.width - 105 val x2 = x + 100 diff --git a/src/main/java/at/lorenz/mod/misc/CurrentPetDisplay.kt b/src/main/java/at/lorenz/mod/misc/CurrentPetDisplay.kt index 9159dc3cc..dcbbc1259 100644 --- a/src/main/java/at/lorenz/mod/misc/CurrentPetDisplay.kt +++ b/src/main/java/at/lorenz/mod/misc/CurrentPetDisplay.kt @@ -3,6 +3,7 @@ package at.lorenz.mod.misc import at.lorenz.mod.LorenzMod import at.lorenz.mod.events.LorenzChatEvent import at.lorenz.mod.utils.GuiRender.renderString +import at.lorenz.mod.utils.LorenzUtils import at.lorenz.mod.utils.LorenzUtils.between import at.lorenz.mod.utils.LorenzUtils.matchRegex import net.minecraftforge.client.event.RenderGameOverlayEvent @@ -16,6 +17,8 @@ class CurrentPetDisplay { @SubscribeEvent fun onChatMessage(event: LorenzChatEvent) { + if (!LorenzUtils.inSkyblock) return + var blocked = false val message = event.message @@ -40,6 +43,8 @@ class CurrentPetDisplay { @SubscribeEvent fun renderOverlay(event: RenderGameOverlayEvent.Post) { + if (!LorenzUtils.inSkyblock) return + if (!LorenzMod.feature.misc.petDisplay) return if (currentPet == "") return diff --git a/src/main/java/at/lorenz/mod/misc/ExpBottleOnGroundHider.kt b/src/main/java/at/lorenz/mod/misc/ExpBottleOnGroundHider.kt index a82e22dc8..6b263cdd9 100644 --- a/src/main/java/at/lorenz/mod/misc/ExpBottleOnGroundHider.kt +++ b/src/main/java/at/lorenz/mod/misc/ExpBottleOnGroundHider.kt @@ -2,12 +2,14 @@ package at.lorenz.mod.misc import at.lorenz.mod.LorenzMod import at.lorenz.mod.events.CheckRenderEntityEvent +import at.lorenz.mod.utils.LorenzUtils import net.minecraft.entity.item.EntityXPOrb import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class ExpBottleOnGroundHider { @SubscribeEvent fun onCheckRender(event: CheckRenderEntityEvent<*>) { + if (!LorenzUtils.inSkyblock) return if (!LorenzMod.feature.misc.hideExpBottles) return if (event.entity is EntityXPOrb) { diff --git a/src/main/java/at/lorenz/mod/misc/HypixelData.kt b/src/main/java/at/lorenz/mod/misc/HypixelData.kt new file mode 100644 index 000000000..01db59312 --- /dev/null +++ b/src/main/java/at/lorenz/mod/misc/HypixelData.kt @@ -0,0 +1,76 @@ +package at.lorenz.mod.misc + +import at.lorenz.mod.events.PacketEvent +import at.lorenz.mod.utils.LorenzUtils +import net.minecraft.client.Minecraft +import net.minecraft.network.play.server.S38PacketPlayerListItem +import net.minecraft.network.play.server.S3DPacketDisplayScoreboard +import net.minecraftforge.event.world.WorldEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent +import net.minecraftforge.fml.common.network.FMLNetworkEvent + +class HypixelData { + + companion object { + var hypixel = false + var skyblock = false + var dungeon = false +} + + @SubscribeEvent + fun onConnect(event: FMLNetworkEvent.ClientConnectedToServerEvent) { + hypixel = Minecraft.getMinecraft().runCatching { + !event.isLocal && (thePlayer?.clientBrand?.lowercase()?.contains("hypixel") + ?: currentServerData?.serverIP?.lowercase()?.contains("hypixel") ?: false) + }.onFailure { it.printStackTrace() }.getOrDefault(false) + LorenzUtils.debug("connected to hypixel!") + if (hypixel) { + LorenzUtils.debug("connected to hypixel!") + } + } + + @SubscribeEvent + fun onScoreboardChange(event: PacketEvent.ReceiveEvent) { + if (!hypixel || skyblock || event.packet !is S3DPacketDisplayScoreboard) return + if (event.packet.func_149371_c() != 1) return + skyblock = event.packet.func_149370_d() == "SBScoreboard" + if (skyblock) { + LorenzUtils.debug("joined on skyblock!") + } + } + + val areaRegex = Regex("§r§b§l(?<area>[\\w]+): §r§7(?<loc>[\\w ]+)§r") + + @SubscribeEvent + fun onTabUpdate(event: PacketEvent.ReceiveEvent) { + if (dungeon || !hypixel || event.packet !is S38PacketPlayerListItem || + (event.packet.action != S38PacketPlayerListItem.Action.UPDATE_DISPLAY_NAME && + event.packet.action != S38PacketPlayerListItem.Action.ADD_PLAYER) + ) return + event.packet.entries.forEach { playerData -> + val name = playerData?.displayName?.formattedText ?: playerData?.profile?.name ?: return@forEach + areaRegex.matchEntire(name)?.let { result -> + dungeon = skyblock && result.groups["area"]?.value == "Dungeon" + if (dungeon) { + LorenzUtils.debug("entered a dungeon!") + } + return@forEach + } + } + } + + @SubscribeEvent + fun onWorldChange(event: WorldEvent.Load) { + skyblock = false + dungeon = false + LorenzUtils.debug("onWorldChange") + } + + @SubscribeEvent + fun onDisconnect(event: FMLNetworkEvent.ClientDisconnectionFromServerEvent) { + hypixel = false + skyblock = false + dungeon = false + LorenzUtils.debug("ClientDisconnection") + } +}
\ No newline at end of file |
