blob: 9769f5196a5580140605e8d166ff396fea372de6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package at.hannibal2.skyhanni.features
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigEditor
import at.hannibal2.skyhanni.config.core.GuiScreenElementWrapper
import at.hannibal2.skyhanni.utils.LorenzUtils
import net.minecraft.client.gui.GuiButton
import net.minecraft.client.gui.GuiIngameMenu
import net.minecraftforge.client.event.GuiScreenEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class ButtonOnPause {
private val buttonId = System.nanoTime().toInt()
@SubscribeEvent
fun onGuiAction(event: GuiScreenEvent.ActionPerformedEvent.Post) {
if (!LorenzUtils.isOnHypixel) return
if (SkyHanniMod.feature.misc.configButtonOnPause && event.gui is GuiIngameMenu && event.button.id == buttonId) {
SkyHanniMod.screenToOpen = GuiScreenElementWrapper(
ConfigEditor(
SkyHanniMod.feature
)
)
}
}
@SubscribeEvent
fun onGuiInitPost(event: GuiScreenEvent.InitGuiEvent.Post) {
if (!LorenzUtils.isOnHypixel) return
if (SkyHanniMod.feature.misc.configButtonOnPause && event.gui is GuiIngameMenu) {
val x = event.gui.width - 105
val x2 = x + 100
var y = event.gui.height - 22
var y2 = y + 20
val sorted = event.buttonList.sortedWith { a, b -> b.yPosition + b.height - a.yPosition + a.height }
for (button in sorted) {
val otherX = button.xPosition
val otherX2 = button.xPosition + button.width
val otherY = button.yPosition
val otherY2 = button.yPosition + button.height
if (otherX2 > x && otherX < x2 && otherY2 > y && otherY < y2) {
y = otherY - 20 - 2
y2 = y + 20
}
}
event.buttonList.add(GuiButton(buttonId, x, 0.coerceAtLeast(y), 100, 20, "SkyHanni"))
}
}
}
|