RelayedVoiceData class

Пакет: com.hypixel.hytale.protocol.packets.voice

Файл: com/hypixel/hytale/protocol/packets/voice/RelayedVoiceData.java

implements: Packet, ToClientPacket

Поля (29)

МодификаторыТипИмя
final int PACKET_ID
int var1
RelayedVoiceData var1
int var1
var1
var1
var1
var1
var1
var1
int var10
RelayedVoiceData var13
long var2
int var2
byte var2
long var3
int var3
byte var3
var3
int var4
var4
int var4
int var5
byte[] var5
int var6
int var6
byte[] var7
long var7
int var9

Методы (38)

МодификаторыВозвратСигнатура
public RelayedVoiceData cloneRelayedVoiceData clone()
static int getEntityIdint getEntityId(MemorySegment var0)
static int getEntityIdint getEntityId(MemorySegment var0, int var1)
abstract return getEntityIdreturn getEntityId(var0, 0)
static byte[] getOpusDatabyte[] getOpusData(MemorySegment var0)
static byte[] getOpusDatabyte[] getOpusData(MemorySegment var0, int var1)
abstract return getOpusDatareturn getOpusData(var0, 0)
static short getSequenceNumbershort getSequenceNumber(MemorySegment var0)
static short getSequenceNumbershort getSequenceNumber(MemorySegment var0, int var1)
abstract return getSequenceNumberreturn getSequenceNumber(var0, 0)
static UUID getSpeakerIdUUID getSpeakerId(MemorySegment var0)
static UUID getSpeakerIdUUID getSpeakerId(MemorySegment var0, int var1)
abstract return getSpeakerIdreturn getSpeakerId(var0, 0)
static boolean getSpeakerIsUnderwaterboolean getSpeakerIsUnderwater(MemorySegment var0)
static boolean getSpeakerIsUnderwaterboolean getSpeakerIsUnderwater(MemorySegment var0, int var1)
abstract return getSpeakerIsUnderwaterreturn getSpeakerIsUnderwater(var0, 0)
abstract return getSpeakerPositionreturn getSpeakerPosition(var0, 0)
static int getTimestampint getTimestamp(MemorySegment var0)
static int getTimestampint getTimestamp(MemorySegment var0, int var1)
abstract return getTimestampreturn getTimestamp(var0, 0)
static boolean hasSpeakerPositionboolean hasSpeakerPosition(MemorySegment var0, int var1)
if if(var1 < 0)
if if(var3 == -1L)
if if(var5 > 512)
if if(var7 == -1L)
if if(var9 > 512)
if if(var2 != null)
if if(this.speakerPosition != null)
if if(this.speakerPosition != null)
if if(this.opusData.length > 512)
if if(this == var1)
static void requireBoundsvoid requireBounds(MemorySegment var0, int var1)
abstract requireBounds requireBounds(var0, var1)
static RelayedVoiceData toObjectRelayedVoiceData toObject(MemorySegment var0)
static RelayedVoiceData toObjectRelayedVoiceData toObject(MemorySegment var0, int var1)
static RelayedVoiceData toObjectRelayedVoiceData toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2)
abstract return toObjectreturn toObject(var0, 0, null)
abstract return toObjectreturn toObject(var0, var1, null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.protocol.packets.voice;

class="kw">import com.hypixel.hytale.protocol.NetworkChannel;
class="kw">import com.hypixel.hytale.protocol.Packet;
class="kw">import com.hypixel.hytale.protocol.Position;
class="kw">import com.hypixel.hytale.protocol.ToClientPacket;
class="kw">import com.hypixel.hytale.protocol.io.PacketIO;
class="kw">import com.hypixel.hytale.protocol.io.ProtocolException;
class="kw">import com.hypixel.hytale.protocol.io.ReadCursor;
class="kw">import com.hypixel.hytale.protocol.io.VarInt;
class="kw">import java.lang.foreign.MemorySegment;
class="kw">import java.util.Arrays;
class="kw">import java.util.Objects;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class RelayedVoiceData class="kw">implements Packet, ToClientPacket {
   class="kw">public class="kw">static class="kw">final int PACKET_ID = 451;
   class="kw">public class="kw">static class="kw">final boolean IS_COMPRESSED = false;
   class="kw">public class="kw">static class="kw">final int NULLABLE_BIT_FIELD_SIZE = 1;
   class="kw">public class="kw">static class="kw">final int FIXED_BLOCK_SIZE = 52;
   class="kw">public class="kw">static class="kw">final int VARIABLE_FIELD_COUNT = 1;
   class="kw">public class="kw">static class="kw">final int VARIABLE_BLOCK_START = 52;
   class="kw">public class="kw">static class="kw">final int MAX_SIZE = 569;
   @Nonnull
   class="kw">public UUID speakerId = new UUID(0L, 0L);
   class="kw">public int entityId;
   class="kw">public short sequenceNumber;
   class="kw">public int timestamp;
   @Nullable
   class="kw">public Position speakerPosition;
   class="kw">public boolean speakerIsUnderwater;
   @Nonnull
   class="kw">public byte[] opusData = new byte[0];

   @Override
   class="kw">public int getId() {
      class="kw">return 451;
   }

   @Override
   class="kw">public NetworkChannel getChannel() {
      class="kw">return NetworkChannel.Voice;
   }

   class="kw">public RelayedVoiceData() {
   }

   class="kw">public RelayedVoiceData(@Nonnull UUID var1, int var2, short var3, int var4, @Nullable Position var5, boolean var6, @Nonnull byte[] var7) {
      this.speakerId = var1;
      this.entityId = var2;
      this.sequenceNumber = var3;
      this.timestamp = var4;
      this.speakerPosition = var5;
      this.speakerIsUnderwater = var6;
      this.opusData = var7;
   }

   class="kw">public RelayedVoiceData(@Nonnull RelayedVoiceData var1) {
      this.speakerId = var1.speakerId;
      this.entityId = var1.entityId;
      this.sequenceNumber = var1.sequenceNumber;
      this.timestamp = var1.timestamp;
      this.speakerPosition = var1.speakerPosition;
      this.speakerIsUnderwater = var1.speakerIsUnderwater;
      this.opusData = var1.opusData;
   }

   class="kw">public class="kw">static void requireBounds(MemorySegment var0, int var1) {
      if (var1 < 0) {
         throw ProtocolException.invalidOffset("RelayedVoiceData", var1, (int)var0.byteSize());
      }

      long var2 = var1 + 52L;
      if (var2 > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("RelayedVoiceData", (int)Math.min(var2, 2147483647L), (int)var0.byteSize());
      }
   }

   class="kw">public class="kw">static UUID getSpeakerId(MemorySegment var0) {
      class="kw">return getSpeakerId(var0, 0);
   }

   class="kw">public class="kw">static UUID getSpeakerId(MemorySegment var0, int var1) {
      class="kw">return PacketIO.readUUID(var0, var1 + 1);
   }

   class="kw">public class="kw">static int getEntityId(MemorySegment var0) {
      class="kw">return getEntityId(var0, 0);
   }

   class="kw">public class="kw">static int getEntityId(MemorySegment var0, int var1) {
      class="kw">return var0.get(PacketIO.PROTO_INT, var1 + 17);
   }

   class="kw">public class="kw">static short getSequenceNumber(MemorySegment var0) {
      class="kw">return getSequenceNumber(var0, 0);
   }

   class="kw">public class="kw">static short getSequenceNumber(MemorySegment var0, int var1) {
      class="kw">return var0.get(PacketIO.PROTO_SHORT, var1 + 21);
   }

   class="kw">public class="kw">static int getTimestamp(MemorySegment var0) {
      class="kw">return getTimestamp(var0, 0);
   }

   class="kw">public class="kw">static int getTimestamp(MemorySegment var0, int var1) {
      class="kw">return var0.get(PacketIO.PROTO_INT, var1 + 23);
   }

   @Nullable
   class="kw">public class="kw">static Position getSpeakerPosition(MemorySegment var0) {
      class="kw">return getSpeakerPosition(var0, 0);
   }

   @Nullable
   class="kw">public class="kw">static Position getSpeakerPosition(MemorySegment var0, int var1) {
      class="kw">return hasSpeakerPosition(var0, var1) ? Position.toObject(var0, var1 + 27) : null;
   }

   class="kw">public class="kw">static boolean getSpeakerIsUnderwater(MemorySegment var0) {
      class="kw">return getSpeakerIsUnderwater(var0, 0);
   }

   class="kw">public class="kw">static boolean getSpeakerIsUnderwater(MemorySegment var0, int var1) {
      class="kw">return var0.get(PacketIO.PROTO_BOOL, var1 + 51);
   }

   class="kw">public class="kw">static byte[] getOpusData(MemorySegment var0) {
      class="kw">return getOpusData(var0, 0);
   }

   class="kw">public class="kw">static byte[] getOpusData(MemorySegment var0, int var1) {
      int var2 = var1 + 52;
      long var3 = VarInt.getWithLength(var0, var2);
      if (var3 == -1L) {
         throw ProtocolException.invalidVarInt("OpusData");
      }

      int var5 = (int)var3;
      if (var5 > 512) {
         throw ProtocolException.arrayTooLong("OpusData", var5, 512);
      }

      int var6 = (int)(var3 >>> 32);
      if (var2 + var6 + var5 > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("OpusData", Math.min(var2 + var6 + var5, Integer.MAX_VALUE), (int)var0.byteSize());
      }

      var2 += var6;
      byte[] var7 = new byte[var5];
      MemorySegment.copy(var0, PacketIO.PROTO_BYTE, var2, var7, 0, var5);
      class="kw">return var7;
   }

   class="kw">public class="kw">static boolean hasSpeakerPosition(MemorySegment var0, int var1) {
      byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
      class="kw">return (var2 & 1) != 0;
   }

   class="kw">public class="kw">static RelayedVoiceData toObject(MemorySegment var0) {
      class="kw">return toObject(var0, 0, null);
   }

   class="kw">public class="kw">static RelayedVoiceData toObject(MemorySegment var0, int var1) {
      class="kw">return toObject(var0, var1, null);
   }

   class="kw">public class="kw">static RelayedVoiceData toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2) {
      requireBounds(var0, var1);
      int var3 = var1 + 52;
      int var4 = 0;
      int var6 = var3 + var4;
      long var7 = VarInt.getWithLength(var0, var6);
      if (var7 == -1L) {
         throw ProtocolException.invalidVarInt("OpusData");
      }

      int var9 = (int)var7;
      if (var9 > 512) {
         throw ProtocolException.arrayTooLong("OpusData", var9, 512);
      }

      int var10 = (int)(var7 >>> 32);
      if (var6 + var10 + var9 > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("OpusData", Math.min(var6 + var10 + var9, Integer.MAX_VALUE), (int)var0.byteSize());
      }

      var6 += var10;
      byte[] var5 = new byte[var9];
      MemorySegment.copy(var0, PacketIO.PROTO_BYTE, var6, var5, 0, var9);
      var4 = var6 + var9 - var3;
      RelayedVoiceData var13 = new RelayedVoiceData(
         PacketIO.readUUID(var0, var1 + 1),
         var0.get(PacketIO.PROTO_INT, var1 + 17),
         var0.get(PacketIO.PROTO_SHORT, var1 + 21),
         var0.get(PacketIO.PROTO_INT, var1 + 23),
         hasSpeakerPosition(var0, var1) ? Position.toObject(var0, var1 + 27) : null,
         var0.get(PacketIO.PROTO_BOOL, var1 + 51),
         var5
      );
      if (var2 != null) {
         var2.position = var3 + var4;
      }

      class="kw">return var13;
   }

   @Override
   class="kw">public int serialize(@Nonnull MemorySegment var1, int var2) {
      byte var3 = 0;
      if (this.speakerPosition != null) {
         var3 = (byte)(var3 | 1);
      }

      var1.set(PacketIO.PROTO_BYTE, var2 + 0, var3);
      PacketIO.writeUUID(var1, var2 + 1, this.speakerId);
      var1.set(PacketIO.PROTO_INT, var2 + 17, this.entityId);
      var1.set(PacketIO.PROTO_SHORT, var2 + 21, this.sequenceNumber);
      var1.set(PacketIO.PROTO_INT, var2 + 23, this.timestamp);
      if (this.speakerPosition != null) {
         this.speakerPosition.serialize(var1, var2 + 27);
      } else {
         var1.asSlice(var2 + 27, 24L).fill((byte)0);
      }

      var1.set(PacketIO.PROTO_BOOL, var2 + 51, this.speakerIsUnderwater);
      int var4 = var2 + 52;
      if (this.opusData.length > 512) {
         throw ProtocolException.arrayTooLong("OpusData", this.opusData.length, 512);
      }

      var4 += VarInt.set(var1, var4, this.opusData.length);
      MemorySegment.copy(this.opusData, 0, var1, PacketIO.PROTO_BYTE, var4, this.opusData.length);
      var4 += this.opusData.length * 1;
      class="kw">return var4 - var2;
   }

   @Override
   class="kw">public int computeSize() {
      int var1 = 52;
      class="kw">return var1 + VarInt.size(this.opusData.length) + this.opusData.length * 1;
   }

   class="kw">public RelayedVoiceData clone() {
      RelayedVoiceData var1 = new RelayedVoiceData();
      var1.speakerId = this.speakerId;
      var1.entityId = this.entityId;
      var1.sequenceNumber = this.sequenceNumber;
      var1.timestamp = this.timestamp;
      var1.speakerPosition = this.speakerPosition != null ? this.speakerPosition.clone() : null;
      var1.speakerIsUnderwater = this.speakerIsUnderwater;
      var1.opusData = Arrays.copyOf(this.opusData, this.opusData.length);
      class="kw">return var1;
   }

   @Override
   class="kw">public boolean equals(Object var1) {
      if (this == var1) {
         class="kw">return true;
      } else {
         class="kw">return !(var1 class="kw">instanceof RelayedVoiceData var2)
            ? false
            : Objects.equals(this.speakerId, var2.speakerId)
               && this.entityId == var2.entityId
               && this.sequenceNumber == var2.sequenceNumber
               && this.timestamp == var2.timestamp
               && Objects.equals(this.speakerPosition, var2.speakerPosition)
               && this.speakerIsUnderwater == var2.speakerIsUnderwater
               && Arrays.equals(this.opusData, var2.opusData);
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = 1;
      var1 = 31 * var1 + Objects.hashCode(this.speakerId);
      var1 = 31 * var1 + Integer.hashCode(this.entityId);
      var1 = 31 * var1 + Short.hashCode(this.sequenceNumber);
      var1 = 31 * var1 + Integer.hashCode(this.timestamp);
      var1 = 31 * var1 + Objects.hashCode(this.speakerPosition);
      var1 = 31 * var1 + Boolean.hashCode(this.speakerIsUnderwater);
      class="kw">return 31 * var1 + Arrays.hashCode(this.opusData);
   }
}