summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorBrady <thatgravyboat@gmail.com>2024-06-08 06:48:29 -0230
committerGitHub <noreply@github.com>2024-06-08 11:18:29 +0200
commitf9cafb766115d5342f7d7e1f8b9e3a56504f0273 (patch)
treecd325dbd48a4f8cde6f7e3c74e49cf0ebef99cad /src/main/java/at/hannibal2/skyhanni/data
parentf677ce0fa1cab31feccab6eff2e5c35e2524d8a3 (diff)
downloadskyhanni-f9cafb766115d5342f7d7e1f8b9e3a56504f0273.tar.gz
skyhanni-f9cafb766115d5342f7d7e1f8b9e3a56504f0273.tar.bz2
skyhanni-f9cafb766115d5342f7d7e1f8b9e3a56504f0273.zip
Backend: Packet Events (#2025)
Co-authored-by: Cal <cwolfson58@gmail.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/BlockData.kt23
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ChatManager.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/EntityData.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ItemClickData.kt14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt15
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/OtherInventoryData.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/OwnInventoryData.kt16
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/TitleData.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/mob/MobDetection.kt6
10 files changed, 54 insertions, 56 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/BlockData.kt b/src/main/java/at/hannibal2/skyhanni/data/BlockData.kt
index 3d767b505..0dcc1714e 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/BlockData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/BlockData.kt
@@ -1,28 +1,23 @@
package at.hannibal2.skyhanni.data
-import at.hannibal2.skyhanni.events.PacketEvent
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.ServerBlockChangeEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import net.minecraft.network.play.server.S22PacketMultiBlockChange
import net.minecraft.network.play.server.S23PacketBlockChange
-import net.minecraftforge.fml.common.eventhandler.EventPriority
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@SkyHanniModule
object BlockData {
- @SubscribeEvent(priority = EventPriority.LOW, receiveCanceled = true)
- fun onBlockReceivePacket(event: PacketEvent.ReceiveEvent) {
-
- @Suppress("USELESS_ELVIS")
- val packet = event.packet ?: return
-
- if (packet is S23PacketBlockChange) {
- val blockPos = packet.blockPosition ?: return
- val blockState = packet.blockState ?: return
+ @HandleEvent(priority = HandleEvent.LOW, receiveCancelled = true)
+ fun onBlockReceivePacket(event: PacketReceivedEvent) {
+ if (event.packet is S23PacketBlockChange) {
+ val blockPos = event.packet.blockPosition ?: return
+ val blockState = event.packet.blockState ?: return
ServerBlockChangeEvent(blockPos, blockState).postAndCatch()
- } else if (packet is S22PacketMultiBlockChange) {
- for (block in packet.changedBlocks) {
+ } else if (event.packet is S22PacketMultiBlockChange) {
+ for (block in event.packet.changedBlocks) {
ServerBlockChangeEvent(block.pos, block.blockState).postAndCatch()
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ChatManager.kt b/src/main/java/at/hannibal2/skyhanni/data/ChatManager.kt
index a3991aa7c..fdfaaf06b 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ChatManager.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ChatManager.kt
@@ -1,9 +1,10 @@
package at.hannibal2.skyhanni.data
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.MessageSendToServerEvent
-import at.hannibal2.skyhanni.events.PacketEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketSentEvent
import at.hannibal2.skyhanni.features.chat.ChatFilterGui
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.ChatUtils
@@ -76,8 +77,8 @@ object ChatManager {
val hoverExtraInfo: List<String> = listOf(),
)
- @SubscribeEvent
- fun onSendMessageToServerPacket(event: PacketEvent.SendEvent) {
+ @HandleEvent
+ fun onSendMessageToServerPacket(event: PacketSentEvent) {
val packet = event.packet as? C01PacketChatMessage ?: return
val message = packet.message
diff --git a/src/main/java/at/hannibal2/skyhanni/data/EntityData.kt b/src/main/java/at/hannibal2/skyhanni/data/EntityData.kt
index 318ac465a..c8e90fd27 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/EntityData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/EntityData.kt
@@ -1,12 +1,13 @@
package at.hannibal2.skyhanni.data
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.EntityHealthUpdateEvent
import at.hannibal2.skyhanni.events.EntityMaxHealthUpdateEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
-import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.SecondPassedEvent
import at.hannibal2.skyhanni.events.entity.EntityDisplayNameEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.EntityUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.baseMaxHealth
@@ -57,8 +58,8 @@ object EntityData {
maxHealthMap.clear()
}
- @SubscribeEvent
- fun onHealthUpdatePacket(event: PacketEvent.ReceiveEvent) {
+ @HandleEvent
+ fun onHealthUpdatePacket(event: PacketReceivedEvent) {
val packet = event.packet
if (packet !is S1CPacketEntityMetadata) return
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ItemClickData.kt b/src/main/java/at/hannibal2/skyhanni/data/ItemClickData.kt
index a5f8091e4..e7fa75331 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ItemClickData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ItemClickData.kt
@@ -1,9 +1,10 @@
package at.hannibal2.skyhanni.data
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.BlockClickEvent
import at.hannibal2.skyhanni.events.EntityClickEvent
import at.hannibal2.skyhanni.events.ItemClickEvent
-import at.hannibal2.skyhanni.events.PacketEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketSentEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.InventoryUtils
import at.hannibal2.skyhanni.utils.toLorenzVec
@@ -12,15 +13,14 @@ import net.minecraft.network.play.client.C02PacketUseEntity
import net.minecraft.network.play.client.C07PacketPlayerDigging
import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement
import net.minecraft.network.play.client.C0APacketAnimation
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@SkyHanniModule
object ItemClickData {
- @SubscribeEvent
- fun onItemClickSend(event: PacketEvent.SendEvent) {
+ @HandleEvent
+ fun onItemClickSend(event: PacketSentEvent) {
val packet = event.packet
- event.isCanceled = when {
+ val cancelled = when {
packet is C08PacketPlayerBlockPlacement -> {
if (packet.placedBlockDirection != 255) {
val position = packet.position.toLorenzVec()
@@ -58,6 +58,10 @@ object ItemClickData {
return
}
}
+
+ if (cancelled) {
+ event.cancel()
+ }
}
/* @SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt b/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
index bf9980084..02768fc3d 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
@@ -1,11 +1,12 @@
package at.hannibal2.skyhanni.data
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.ItemInHandChangeEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
-import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.PlaySoundEvent
import at.hannibal2.skyhanni.events.ReceiveParticleEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.DelayedRun
import at.hannibal2.skyhanni.utils.InventoryUtils
@@ -23,10 +24,8 @@ import net.minecraftforge.fml.common.gameevent.TickEvent
@SkyHanniModule
object MinecraftData {
- @SubscribeEvent(receiveCanceled = true)
- fun onSoundPacket(event: PacketEvent.ReceiveEvent) {
- if (!LorenzUtils.inSkyBlock) return
-
+ @HandleEvent(receiveCancelled = true, onlyOnSkyblock = true)
+ fun onSoundPacket(event: PacketReceivedEvent) {
val packet = event.packet
if (packet !is S29PacketSoundEffect) return
@@ -46,10 +45,8 @@ object MinecraftData {
LorenzWorldChangeEvent().postAndCatch()
}
- @SubscribeEvent(receiveCanceled = true)
- fun onParticlePacketReceive(event: PacketEvent.ReceiveEvent) {
- if (!LorenzUtils.inSkyBlock) return
-
+ @HandleEvent(receiveCancelled = true, onlyOnSkyblock = true)
+ fun onParticlePacketReceive(event: PacketReceivedEvent) {
val packet = event.packet
if (packet !is S2APacketParticles) return
diff --git a/src/main/java/at/hannibal2/skyhanni/data/OtherInventoryData.kt b/src/main/java/at/hannibal2/skyhanni/data/OtherInventoryData.kt
index 63b5c8c50..02f391019 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/OtherInventoryData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/OtherInventoryData.kt
@@ -1,11 +1,12 @@
package at.hannibal2.skyhanni.data
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.InventoryUpdatedEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
-import at.hannibal2.skyhanni.events.PacketEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import net.minecraft.item.ItemStack
import net.minecraft.network.play.server.S2DPacketOpenWindow
@@ -38,8 +39,8 @@ object OtherInventoryData {
}
}
- @SubscribeEvent
- fun onInventoryDataReceiveEvent(event: PacketEvent.ReceiveEvent) {
+ @HandleEvent
+ fun onInventoryDataReceiveEvent(event: PacketReceivedEvent) {
val packet = event.packet
if (packet is S2EPacketCloseWindow) {
diff --git a/src/main/java/at/hannibal2/skyhanni/data/OwnInventoryData.kt b/src/main/java/at/hannibal2/skyhanni/data/OwnInventoryData.kt
index 900f87550..6a855a06b 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/OwnInventoryData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/OwnInventoryData.kt
@@ -1,13 +1,15 @@
package at.hannibal2.skyhanni.data
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.GuiContainerEvent
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
import at.hannibal2.skyhanni.events.OwnInventoryItemUpdateEvent
-import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.entity.ItemAddInInventoryEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketSentEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.CollectionUtils.addOrPut
import at.hannibal2.skyhanni.utils.DelayedRun
@@ -23,7 +25,6 @@ import net.minecraft.client.Minecraft
import net.minecraft.network.play.client.C0EPacketClickWindow
import net.minecraft.network.play.server.S0DPacketCollectItem
import net.minecraft.network.play.server.S2FPacketSetSlot
-import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import kotlin.time.Duration
import kotlin.time.Duration.Companion.milliseconds
@@ -39,10 +40,8 @@ object OwnInventoryData {
"§aMoved §r§e\\d* (?<name>.*)§r§a from your Sacks to your inventory."
)
- @SubscribeEvent(priority = EventPriority.LOW, receiveCanceled = true)
- fun onItemPickupReceivePacket(event: PacketEvent.ReceiveEvent) {
- if (!LorenzUtils.inSkyBlock) return
-
+ @HandleEvent(priority = HandleEvent.LOW, receiveCancelled = true, onlyOnSkyblock = true)
+ fun onItemPickupReceivePacket(event: PacketReceivedEvent) {
val packet = event.packet
if (packet is S2FPacketSetSlot || packet is S0DPacketCollectItem) {
dirty = true
@@ -59,9 +58,8 @@ object OwnInventoryData {
}
}
- @SubscribeEvent
- fun onClickEntity(event: PacketEvent.SendEvent) {
- if (!LorenzUtils.inSkyBlock) return
+ @HandleEvent(onlyOnSkyblock = true)
+ fun onClickEntity(event: PacketSentEvent) {
val packet = event.packet
if (packet is C0EPacketClickWindow) {
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
index 7330317f2..a69210f6d 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
@@ -1,9 +1,10 @@
package at.hannibal2.skyhanni.data
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
-import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.ScoreboardChangeEvent
import at.hannibal2.skyhanni.events.ScoreboardRawChangeEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
import at.hannibal2.skyhanni.utils.RegexUtils.matches
import net.minecraft.client.Minecraft
import net.minecraft.network.play.server.S3CPacketUpdateScore
@@ -71,8 +72,8 @@ class ScoreboardData {
var dirty = false
- @SubscribeEvent(receiveCanceled = true)
- fun onPacketReceive(event: PacketEvent.ReceiveEvent) {
+ @HandleEvent(receiveCancelled = true)
+ fun onPacketReceive(event: PacketReceivedEvent) {
if (event.packet is S3CPacketUpdateScore) {
if (event.packet.objectiveName == "update") {
dirty = true
diff --git a/src/main/java/at/hannibal2/skyhanni/data/TitleData.kt b/src/main/java/at/hannibal2/skyhanni/data/TitleData.kt
index 2a7da7902..f8ad4f652 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/TitleData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/TitleData.kt
@@ -1,16 +1,16 @@
package at.hannibal2.skyhanni.data
-import at.hannibal2.skyhanni.events.PacketEvent
+import at.hannibal2.skyhanni.api.event.HandleEvent
import at.hannibal2.skyhanni.events.TitleReceivedEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import net.minecraft.network.play.server.S45PacketTitle
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
@SkyHanniModule
object TitleData {
- @SubscribeEvent
- fun onReceiveCurrentShield(event: PacketEvent.ReceiveEvent) {
+ @HandleEvent
+ fun onReceiveCurrentShield(event: PacketReceivedEvent) {
val packet = event.packet
if (packet !is S45PacketTitle) return
diff --git a/src/main/java/at/hannibal2/skyhanni/data/mob/MobDetection.kt b/src/main/java/at/hannibal2/skyhanni/data/mob/MobDetection.kt
index 233389444..a9714aeb4 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/mob/MobDetection.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/mob/MobDetection.kt
@@ -11,8 +11,8 @@ import at.hannibal2.skyhanni.events.DebugDataCollectEvent
import at.hannibal2.skyhanni.events.EntityHealthUpdateEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.MobEvent
-import at.hannibal2.skyhanni.events.PacketEvent
import at.hannibal2.skyhanni.events.minecraft.ClientDisconnectEvent
+import at.hannibal2.skyhanni.events.minecraft.packet.PacketReceivedEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.CollectionUtils.drainForEach
import at.hannibal2.skyhanni.utils.CollectionUtils.drainTo
@@ -312,8 +312,8 @@ object MobDetection {
return true
}
- @SubscribeEvent
- fun onEntitySpawnPacket(event: PacketEvent.ReceiveEvent) {
+ @HandleEvent
+ fun onEntitySpawnPacket(event: PacketReceivedEvent) {
when (val packet = event.packet) {
is S0FPacketSpawnMob -> addEntityUpdate(packet.entityID)
is S0CPacketSpawnPlayer -> addEntityUpdate(packet.entityID)