aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2022-09-15 22:49:58 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2022-09-15 22:49:58 +0200
commit01d4aef89b7fdad58a320cf1eb4e478ac12aaba4 (patch)
tree3b933dd02f0f976760c0adba9342ea727bcda61a /src/main/java/at/hannibal2/skyhanni/data
parentf02297bfffcdaaef5da4e04725b0658c00889cb7 (diff)
downloadSkyHanni-01d4aef89b7fdad58a320cf1eb4e478ac12aaba4.tar.gz
SkyHanni-01d4aef89b7fdad58a320cf1eb4e478ac12aaba4.tar.bz2
SkyHanni-01d4aef89b7fdad58a320cf1eb4e478ac12aaba4.zip
added and used events for particle and sound
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt b/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
new file mode 100644
index 000000000..e9ef04947
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/data/MinecraftData.kt
@@ -0,0 +1,51 @@
+package at.hannibal2.skyhanni.data
+
+import at.hannibal2.skyhanni.events.PacketEvent
+import at.hannibal2.skyhanni.events.PlayParticleEvent
+import at.hannibal2.skyhanni.events.PlaySoundEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.LorenzVec
+import net.minecraft.network.play.server.S29PacketSoundEffect
+import net.minecraft.network.play.server.S2APacketParticles
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class MinecraftData {
+
+ @SubscribeEvent(receiveCanceled = true)
+ fun onSoundPacket(event: PacketEvent.ReceiveEvent) {
+ if (!LorenzUtils.inSkyblock) return
+
+ val packet = event.packet
+ if (packet !is S29PacketSoundEffect) return
+
+ if (PlaySoundEvent(
+ packet.soundName,
+ LorenzVec(packet.x, packet.y, packet.z),
+ packet.pitch,
+ packet.volume
+ ).postAndCatch()
+ ) {
+ event.isCanceled = true
+ }
+ }
+
+ @SubscribeEvent(receiveCanceled = true)
+ fun onParticleEvent(event: PacketEvent.ReceiveEvent) {
+ if (!LorenzUtils.inSkyblock) return
+
+ val packet = event.packet
+ if (packet !is S2APacketParticles) return
+
+ if (PlayParticleEvent(
+ packet.particleType!!,
+ LorenzVec(packet.xCoordinate, packet.yCoordinate, packet.zCoordinate),
+ packet.particleCount,
+ packet.particleSpeed,
+ LorenzVec(packet.xOffset, packet.yOffset, packet.zOffset),
+ packet.particleArgs
+ ).postAndCatch()
+ ) {
+ event.isCanceled = true
+ }
+ }
+} \ No newline at end of file