diff options
| author | Brady <thatgravyboat@gmail.com> | 2024-06-08 06:48:29 -0230 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-08 11:18:29 +0200 |
| commit | f9cafb766115d5342f7d7e1f8b9e3a56504f0273 (patch) | |
| tree | cd325dbd48a4f8cde6f7e3c74e49cf0ebef99cad /src/main/java/at/hannibal2/skyhanni/data | |
| parent | f677ce0fa1cab31feccab6eff2e5c35e2524d8a3 (diff) | |
| download | skyhanni-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')
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) |
