aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/ambientaddons/features/misc
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/com/ambientaddons/features/misc')
-rw-r--r--src/main/kotlin/com/ambientaddons/features/misc/BonzoMask.kt60
-rw-r--r--src/main/kotlin/com/ambientaddons/features/misc/CancelInteractions.kt22
2 files changed, 82 insertions, 0 deletions
diff --git a/src/main/kotlin/com/ambientaddons/features/misc/BonzoMask.kt b/src/main/kotlin/com/ambientaddons/features/misc/BonzoMask.kt
new file mode 100644
index 0000000..db45e93
--- /dev/null
+++ b/src/main/kotlin/com/ambientaddons/features/misc/BonzoMask.kt
@@ -0,0 +1,60 @@
+package com.ambientaddons.features.misc
+
+import AmbientAddons.Companion.config
+import AmbientAddons.Companion.mc
+import com.ambientaddons.events.ItemOverlayEvent
+import com.ambientaddons.utils.Extensions.skyblockID
+import com.ambientaddons.utils.Extensions.stripControlCodes
+import com.ambientaddons.utils.SkyBlock
+import com.ambientaddons.utils.RenderUtils
+import net.minecraftforge.client.event.ClientChatReceivedEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+object BonzoMask {
+ private var spiritMaskProc = 0L
+ private var bonzoMaskProc = 0L
+ private var fraggedBonzoMaskProc = 0L
+
+ private const val secondWindString = "Second Wind Activated! Your Spirit Mask saved your life!"
+ private const val bonzoString = "Your Bonzo's Mask saved your life!"
+ private const val fraggedBonzoString = "Your ⚚ Bonzo's Mask saved your life!"
+
+ @SubscribeEvent
+ fun onChat(event: ClientChatReceivedEvent) {
+ if (!SkyBlock.inSkyblock) return
+ val didMaskProc = when (event.message.unformattedText.stripControlCodes()) {
+ secondWindString -> {
+ spiritMaskProc = System.currentTimeMillis()
+ true
+ }
+ bonzoString -> {
+ bonzoMaskProc = System.currentTimeMillis()
+ true
+ }
+ fraggedBonzoString -> {
+ fraggedBonzoMaskProc = System.currentTimeMillis()
+ true
+ }
+ else -> false
+ }
+ if (config.maskWarning && didMaskProc) {
+ mc.ingameGUI.displayTitle("§cMask!", null, 5, 20, 5)
+ }
+ }
+
+ @SubscribeEvent
+ fun onRenderItemOverlay(event: ItemOverlayEvent) {
+ if (!SkyBlock.inSkyblock) return
+ val durability = when (event.item?.skyblockID) {
+ "BONZO_MASK" -> (System.currentTimeMillis() - bonzoMaskProc) / 180000.0
+ "STARRED_BONZO_MASK" -> (System.currentTimeMillis() - fraggedBonzoMaskProc) / 180000.0
+ "SPIRIT_MASK" -> (System.currentTimeMillis() - spiritMaskProc) / 30000.0
+ else -> 1.0
+ }
+ if (durability < 1.0) {
+ RenderUtils.renderDurabilityBar(event.x, event.y, durability)
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/src/main/kotlin/com/ambientaddons/features/misc/CancelInteractions.kt b/src/main/kotlin/com/ambientaddons/features/misc/CancelInteractions.kt
new file mode 100644
index 0000000..60f0f8f
--- /dev/null
+++ b/src/main/kotlin/com/ambientaddons/features/misc/CancelInteractions.kt
@@ -0,0 +1,22 @@
+package com.ambientaddons.features.misc
+
+import AmbientAddons.Companion.config
+import AmbientAddons.Companion.mc
+import com.ambientaddons.utils.Area
+import com.ambientaddons.utils.SkyBlock
+import net.minecraft.init.Blocks
+import net.minecraftforge.event.entity.player.PlayerInteractEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+object CancelInteractions {
+ @SubscribeEvent
+ fun onPlayerInteract(event: PlayerInteractEvent) {
+ if (!SkyBlock.inSkyblock) return
+ if (!config.cancelInteractions || SkyBlock.area == Area.PrivateIsland) return
+ if (event.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) {
+ if (mc.theWorld?.getBlockState(event.pos)?.block == Blocks.hopper) {
+ event.isCanceled = true
+ }
+ }
+ }
+} \ No newline at end of file