summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
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