PlayerSkin class

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

Файл: com/hypixel/hytale/protocol/PlayerSkin.java

Поля (133)

МодификаторыТипИмя
final int NULLABLE_BIT_FIELD_SIZE
int var1
PlayerSkin var1
long var10
long var11
long var12
long var13
long var14
long var15
long var16
long var17
long var18
long var19
long var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
long var20
long var21
long var22
long var23
long var24
long var25
long var26
String var28
var28
int var29
int var3
byte var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
String var30
var30
int var31
String var32
var32
int var33
String var34
var34
int var35
String var36
var36
int var37
String var38
var38
int var39
int var4
int var4
int var4
String var40
var40
int var41
String var42
var42
int var43
String var44
var44
int var45
String var46
var46
int var47
String var48
var48
int var49
int var5
String var5
var5
String var50
var50
int var51
String var52
var52
int var53
String var54
var54
int var55
String var56
var56
int var57
String var58
var58
int var59
int var6
String var60
var60
int var61
String var62
var62
int var63
String var64
var64
int var65
PlayerSkin var66
long var7
long var8
long var9

Методы (156)

МодификаторыВозвратСигнатура
public PlayerSkin clonePlayerSkin clone()
public int computeSizeint computeSize()
abstract return getBodyCharacteristicreturn getBodyCharacteristic(var0, 0)
abstract return getCapereturn getCape(var0, 0)
abstract return getEarAccessoryreturn getEarAccessory(var0, 0)
abstract return getEarsreturn getEars(var0, 0)
abstract return getEyebrowsreturn getEyebrows(var0, 0)
abstract return getEyesreturn getEyes(var0, 0)
abstract return getFacereturn getFace(var0, 0)
abstract return getFaceAccessoryreturn getFaceAccessory(var0, 0)
abstract return getFacialHairreturn getFacialHair(var0, 0)
abstract return getGlovesreturn getGloves(var0, 0)
abstract return getHaircutreturn getHaircut(var0, 0)
abstract return getHeadAccessoryreturn getHeadAccessory(var0, 0)
abstract return getMouthreturn getMouth(var0, 0)
abstract return getOverpantsreturn getOverpants(var0, 0)
abstract return getOvertopreturn getOvertop(var0, 0)
abstract return getPantsreturn getPants(var0, 0)
abstract return getShoesreturn getShoes(var0, 0)
abstract return getSkinFeaturereturn getSkinFeature(var0, 0)
abstract return getUndertopreturn getUndertop(var0, 0)
abstract return getUnderwearreturn getUnderwear(var0, 0)
static int getValidatedOffsetint getValidatedOffset(MemorySegment var0, int var1, int var2, int var3, String var4)
static boolean hasBodyCharacteristicboolean hasBodyCharacteristic(MemorySegment var0, int var1)
static boolean hasCapeboolean hasCape(MemorySegment var0, int var1)
static boolean hasEarAccessoryboolean hasEarAccessory(MemorySegment var0, int var1)
static boolean hasEarsboolean hasEars(MemorySegment var0, int var1)
static boolean hasEyebrowsboolean hasEyebrows(MemorySegment var0, int var1)
static boolean hasEyesboolean hasEyes(MemorySegment var0, int var1)
static boolean hasFaceboolean hasFace(MemorySegment var0, int var1)
static boolean hasFaceAccessoryboolean hasFaceAccessory(MemorySegment var0, int var1)
static boolean hasFacialHairboolean hasFacialHair(MemorySegment var0, int var1)
static boolean hasGlovesboolean hasGloves(MemorySegment var0, int var1)
static boolean hasHaircutboolean hasHaircut(MemorySegment var0, int var1)
static boolean hasHeadAccessoryboolean hasHeadAccessory(MemorySegment var0, int var1)
static boolean hasMouthboolean hasMouth(MemorySegment var0, int var1)
static boolean hasOverpantsboolean hasOverpants(MemorySegment var0, int var1)
static boolean hasOvertopboolean hasOvertop(MemorySegment var0, int var1)
static boolean hasPantsboolean hasPants(MemorySegment var0, int var1)
static boolean hasShoesboolean hasShoes(MemorySegment var0, int var1)
static boolean hasSkinFeatureboolean hasSkinFeature(MemorySegment var0, int var1)
static boolean hasUndertopboolean hasUndertop(MemorySegment var0, int var1)
static boolean hasUnderwearboolean hasUnderwear(MemorySegment var0, int var1)
if if(var1 < 0)
if if(var4 != var2)
if if(var2 != null)
if if(this.bodyCharacteristic != null)
if if(this.underwear != null)
if if(this.face != null)
if if(this.eyes != null)
if if(this.ears != null)
if if(this.mouth != null)
if if(this.facialHair != null)
if if(this.haircut != null)
if if(this.eyebrows != null)
if if(this.pants != null)
if if(this.overpants != null)
if if(this.undertop != null)
if if(this.overtop != null)
if if(this.shoes != null)
if if(this.headAccessory != null)
if if(this.faceAccessory != null)
if if(this.earAccessory != null)
if if(this.skinFeature != null)
if if(this.gloves != null)
if if(this.cape != null)
if if(this.bodyCharacteristic != null)
if if(this.underwear != null)
if if(this.face != null)
if if(this.eyes != null)
if if(this.ears != null)
if if(this.mouth != null)
if if(this.facialHair != null)
if if(this.haircut != null)
if if(this.eyebrows != null)
if if(this.pants != null)
if if(this.overpants != null)
if if(this.undertop != null)
if if(this.overtop != null)
if if(this.shoes != null)
if if(this.headAccessory != null)
if if(this.faceAccessory != null)
if if(this.earAccessory != null)
if if(this.skinFeature != null)
if if(this.gloves != null)
if if(this.cape != null)
if if(this.bodyCharacteristic != null)
if if(this.underwear != null)
if if(this.face != null)
if if(this.eyes != null)
if if(this.ears != null)
if if(this.mouth != null)
if if(this.facialHair != null)
if if(this.haircut != null)
if if(this.eyebrows != null)
if if(this.pants != null)
if if(this.overpants != null)
if if(this.undertop != null)
if if(this.overtop != null)
if if(this.shoes != null)
if if(this.headAccessory != null)
if if(this.faceAccessory != null)
if if(this.earAccessory != null)
if if(this.skinFeature != null)
if if(this.gloves != null)
if if(this.cape != null)
if if(this == var1)
static void requireBoundsvoid requireBounds(MemorySegment var0, int var1)
abstract requireBounds requireBounds(var0, var1)
static void requireSlotvoid requireSlot(MemorySegment var0, int var1, int var2, String var3)
abstract requireSlot requireSlot(var0, var1 + 3, var4, "BodyCharacteristic")
abstract requireSlot requireSlot(var0, var1 + 3, -1, "BodyCharacteristic")
abstract requireSlot requireSlot(var0, var1 + 7, var4, "Underwear")
abstract requireSlot requireSlot(var0, var1 + 7, -1, "Underwear")
abstract requireSlot requireSlot(var0, var1 + 11, var4, "Face")
abstract requireSlot requireSlot(var0, var1 + 11, -1, "Face")
abstract requireSlot requireSlot(var0, var1 + 15, var4, "Eyes")
abstract requireSlot requireSlot(var0, var1 + 15, -1, "Eyes")
abstract requireSlot requireSlot(var0, var1 + 19, var4, "Ears")
abstract requireSlot requireSlot(var0, var1 + 19, -1, "Ears")
abstract requireSlot requireSlot(var0, var1 + 23, var4, "Mouth")
abstract requireSlot requireSlot(var0, var1 + 23, -1, "Mouth")
abstract requireSlot requireSlot(var0, var1 + 27, var4, "FacialHair")
abstract requireSlot requireSlot(var0, var1 + 27, -1, "FacialHair")
abstract requireSlot requireSlot(var0, var1 + 31, var4, "Haircut")
abstract requireSlot requireSlot(var0, var1 + 31, -1, "Haircut")
abstract requireSlot requireSlot(var0, var1 + 35, var4, "Eyebrows")
abstract requireSlot requireSlot(var0, var1 + 35, -1, "Eyebrows")
abstract requireSlot requireSlot(var0, var1 + 39, var4, "Pants")
abstract requireSlot requireSlot(var0, var1 + 39, -1, "Pants")
abstract requireSlot requireSlot(var0, var1 + 43, var4, "Overpants")
abstract requireSlot requireSlot(var0, var1 + 43, -1, "Overpants")
abstract requireSlot requireSlot(var0, var1 + 47, var4, "Undertop")
abstract requireSlot requireSlot(var0, var1 + 47, -1, "Undertop")
abstract requireSlot requireSlot(var0, var1 + 51, var4, "Overtop")
abstract requireSlot requireSlot(var0, var1 + 51, -1, "Overtop")
abstract requireSlot requireSlot(var0, var1 + 55, var4, "Shoes")
abstract requireSlot requireSlot(var0, var1 + 55, -1, "Shoes")
abstract requireSlot requireSlot(var0, var1 + 59, var4, "HeadAccessory")
abstract requireSlot requireSlot(var0, var1 + 59, -1, "HeadAccessory")
abstract requireSlot requireSlot(var0, var1 + 63, var4, "FaceAccessory")
abstract requireSlot requireSlot(var0, var1 + 63, -1, "FaceAccessory")
abstract requireSlot requireSlot(var0, var1 + 67, var4, "EarAccessory")
abstract requireSlot requireSlot(var0, var1 + 67, -1, "EarAccessory")
abstract requireSlot requireSlot(var0, var1 + 71, var4, "SkinFeature")
abstract requireSlot requireSlot(var0, var1 + 71, -1, "SkinFeature")
abstract requireSlot requireSlot(var0, var1 + 75, var4, "Gloves")
abstract requireSlot requireSlot(var0, var1 + 75, -1, "Gloves")
abstract requireSlot requireSlot(var0, var1 + 79, var4, "Cape")
abstract requireSlot requireSlot(var0, var1 + 79, -1, "Cape")
public int serializeint serialize(@Nonnull MemorySegment var1, int var2)
static PlayerSkin toObjectPlayerSkin toObject(MemorySegment var0)
static PlayerSkin toObjectPlayerSkin toObject(MemorySegment var0, int var1)
static PlayerSkin toObjectPlayerSkin 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;

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.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class PlayerSkin {
   class="kw">public class="kw">static class="kw">final int NULLABLE_BIT_FIELD_SIZE = 3;
   class="kw">public class="kw">static class="kw">final int FIXED_BLOCK_SIZE = 3;
   class="kw">public class="kw">static class="kw">final int VARIABLE_FIELD_COUNT = 20;
   class="kw">public class="kw">static class="kw">final int VARIABLE_BLOCK_START = 83;
   class="kw">public class="kw">static class="kw">final int MAX_SIZE = 2103;
   @Nullable
   class="kw">public String bodyCharacteristic;
   @Nullable
   class="kw">public String underwear;
   @Nullable
   class="kw">public String face;
   @Nullable
   class="kw">public String eyes;
   @Nullable
   class="kw">public String ears;
   @Nullable
   class="kw">public String mouth;
   @Nullable
   class="kw">public String facialHair;
   @Nullable
   class="kw">public String haircut;
   @Nullable
   class="kw">public String eyebrows;
   @Nullable
   class="kw">public String pants;
   @Nullable
   class="kw">public String overpants;
   @Nullable
   class="kw">public String undertop;
   @Nullable
   class="kw">public String overtop;
   @Nullable
   class="kw">public String shoes;
   @Nullable
   class="kw">public String headAccessory;
   @Nullable
   class="kw">public String faceAccessory;
   @Nullable
   class="kw">public String earAccessory;
   @Nullable
   class="kw">public String skinFeature;
   @Nullable
   class="kw">public String gloves;
   @Nullable
   class="kw">public String cape;

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

   class="kw">public PlayerSkin(
      @Nullable String var1,
      @Nullable String var2,
      @Nullable String var3,
      @Nullable String var4,
      @Nullable String var5,
      @Nullable String var6,
      @Nullable String var7,
      @Nullable String var8,
      @Nullable String var9,
      @Nullable String var10,
      @Nullable String var11,
      @Nullable String var12,
      @Nullable String var13,
      @Nullable String var14,
      @Nullable String var15,
      @Nullable String var16,
      @Nullable String var17,
      @Nullable String var18,
      @Nullable String var19,
      @Nullable String var20
   ) {
      this.bodyCharacteristic = var1;
      this.underwear = var2;
      this.face = var3;
      this.eyes = var4;
      this.ears = var5;
      this.mouth = var6;
      this.facialHair = var7;
      this.haircut = var8;
      this.eyebrows = var9;
      this.pants = var10;
      this.overpants = var11;
      this.undertop = var12;
      this.overtop = var13;
      this.shoes = var14;
      this.headAccessory = var15;
      this.faceAccessory = var16;
      this.earAccessory = var17;
      this.skinFeature = var18;
      this.gloves = var19;
      this.cape = var20;
   }

   class="kw">public PlayerSkin(@Nonnull PlayerSkin var1) {
      this.bodyCharacteristic = var1.bodyCharacteristic;
      this.underwear = var1.underwear;
      this.face = var1.face;
      this.eyes = var1.eyes;
      this.ears = var1.ears;
      this.mouth = var1.mouth;
      this.facialHair = var1.facialHair;
      this.haircut = var1.haircut;
      this.eyebrows = var1.eyebrows;
      this.pants = var1.pants;
      this.overpants = var1.overpants;
      this.undertop = var1.undertop;
      this.overtop = var1.overtop;
      this.shoes = var1.shoes;
      this.headAccessory = var1.headAccessory;
      this.faceAccessory = var1.faceAccessory;
      this.earAccessory = var1.earAccessory;
      this.skinFeature = var1.skinFeature;
      this.gloves = var1.gloves;
      this.cape = var1.cape;
   }

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

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

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

   @Nullable
   class="kw">public class="kw">static String getBodyCharacteristic(MemorySegment var0, int var1) {
      class="kw">return hasBodyCharacteristic(var0, var1)
         ? PacketIO.readValidatedAsciiString("BodyCharacteristic", var0, var1 + getValidatedOffset(var0, var1, 3, 83, "BodyCharacteristic"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getUnderwear(MemorySegment var0, int var1) {
      class="kw">return hasUnderwear(var0, var1)
         ? PacketIO.readValidatedAsciiString("Underwear", var0, var1 + getValidatedOffset(var0, var1, 7, 83, "Underwear"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getFace(MemorySegment var0, int var1) {
      class="kw">return hasFace(var0, var1) ? PacketIO.readValidatedAsciiString("Face", var0, var1 + getValidatedOffset(var0, var1, 11, 83, "Face"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getEyes(MemorySegment var0, int var1) {
      class="kw">return hasEyes(var0, var1) ? PacketIO.readValidatedAsciiString("Eyes", var0, var1 + getValidatedOffset(var0, var1, 15, 83, "Eyes"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getEars(MemorySegment var0, int var1) {
      class="kw">return hasEars(var0, var1) ? PacketIO.readValidatedAsciiString("Ears", var0, var1 + getValidatedOffset(var0, var1, 19, 83, "Ears"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getMouth(MemorySegment var0, int var1) {
      class="kw">return hasMouth(var0, var1) ? PacketIO.readValidatedAsciiString("Mouth", var0, var1 + getValidatedOffset(var0, var1, 23, 83, "Mouth"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getFacialHair(MemorySegment var0, int var1) {
      class="kw">return hasFacialHair(var0, var1)
         ? PacketIO.readValidatedAsciiString("FacialHair", var0, var1 + getValidatedOffset(var0, var1, 27, 83, "FacialHair"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getHaircut(MemorySegment var0, int var1) {
      class="kw">return hasHaircut(var0, var1) ? PacketIO.readValidatedAsciiString("Haircut", var0, var1 + getValidatedOffset(var0, var1, 31, 83, "Haircut"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getEyebrows(MemorySegment var0, int var1) {
      class="kw">return hasEyebrows(var0, var1)
         ? PacketIO.readValidatedAsciiString("Eyebrows", var0, var1 + getValidatedOffset(var0, var1, 35, 83, "Eyebrows"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getPants(MemorySegment var0, int var1) {
      class="kw">return hasPants(var0, var1) ? PacketIO.readValidatedAsciiString("Pants", var0, var1 + getValidatedOffset(var0, var1, 39, 83, "Pants"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getOverpants(MemorySegment var0, int var1) {
      class="kw">return hasOverpants(var0, var1)
         ? PacketIO.readValidatedAsciiString("Overpants", var0, var1 + getValidatedOffset(var0, var1, 43, 83, "Overpants"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getUndertop(MemorySegment var0, int var1) {
      class="kw">return hasUndertop(var0, var1)
         ? PacketIO.readValidatedAsciiString("Undertop", var0, var1 + getValidatedOffset(var0, var1, 47, 83, "Undertop"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getOvertop(MemorySegment var0, int var1) {
      class="kw">return hasOvertop(var0, var1) ? PacketIO.readValidatedAsciiString("Overtop", var0, var1 + getValidatedOffset(var0, var1, 51, 83, "Overtop"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getShoes(MemorySegment var0, int var1) {
      class="kw">return hasShoes(var0, var1) ? PacketIO.readValidatedAsciiString("Shoes", var0, var1 + getValidatedOffset(var0, var1, 55, 83, "Shoes"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getHeadAccessory(MemorySegment var0, int var1) {
      class="kw">return hasHeadAccessory(var0, var1)
         ? PacketIO.readValidatedAsciiString("HeadAccessory", var0, var1 + getValidatedOffset(var0, var1, 59, 83, "HeadAccessory"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getFaceAccessory(MemorySegment var0, int var1) {
      class="kw">return hasFaceAccessory(var0, var1)
         ? PacketIO.readValidatedAsciiString("FaceAccessory", var0, var1 + getValidatedOffset(var0, var1, 63, 83, "FaceAccessory"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getEarAccessory(MemorySegment var0, int var1) {
      class="kw">return hasEarAccessory(var0, var1)
         ? PacketIO.readValidatedAsciiString("EarAccessory", var0, var1 + getValidatedOffset(var0, var1, 67, 83, "EarAccessory"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getSkinFeature(MemorySegment var0, int var1) {
      class="kw">return hasSkinFeature(var0, var1)
         ? PacketIO.readValidatedAsciiString("SkinFeature", var0, var1 + getValidatedOffset(var0, var1, 71, 83, "SkinFeature"), 96)
         : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getGloves(MemorySegment var0, int var1) {
      class="kw">return hasGloves(var0, var1) ? PacketIO.readValidatedAsciiString("Gloves", var0, var1 + getValidatedOffset(var0, var1, 75, 83, "Gloves"), 96) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getCape(MemorySegment var0, int var1) {
      class="kw">return hasCape(var0, var1) ? PacketIO.readValidatedAsciiString("Cape", var0, var1 + getValidatedOffset(var0, var1, 79, 83, "Cape"), 96) : null;
   }

   class="kw">public class="kw">static boolean hasBodyCharacteristic(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 boolean hasUnderwear(MemorySegment var0, int var1) {
      byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 0);
      class="kw">return (var2 & 2) != 0;
   }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   class="kw">private class="kw">static int getValidatedOffset(MemorySegment var0, int var1, int var2, int var3, String var4) {
      int var5 = var0.get(PacketIO.PROTO_INT, var1 + var2);
      if (var5 >= 0 && var5 <= var0.byteSize() - var1 - var3) {
         class="kw">return var3 + var5;
      } else {
         throw ProtocolException.invalidOffset(var4, var5, (int)var0.byteSize());
      }
   }

   class="kw">private class="kw">static void requireSlot(MemorySegment var0, int var1, int var2, String var3) {
      int var4 = var0.get(PacketIO.PROTO_INT, var1);
      if (var4 != var2) {
         throw ProtocolException.nonCanonicalLayout(var3, var4, var2);
      }
   }

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

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

   class="kw">public class="kw">static PlayerSkin toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2) {
      requireBounds(var0, var1);
      int var3 = var1 + 83;
      int var4 = 0;
      String var5 = null;
      if (hasBodyCharacteristic(var0, var1)) {
         requireSlot(var0, var1 + 3, var4, "BodyCharacteristic");
         int var6 = var3 + var4;
         long var7 = VarInt.getWithLength(var0, var6);
         var5 = PacketIO.readValidatedAsciiString("BodyCharacteristic", var0, var6, 0, 96, var7);
         var4 += (int)var7 + (int)(var7 >>> 32);
      } else {
         requireSlot(var0, var1 + 3, -1, "BodyCharacteristic");
      }

      String var28 = null;
      if (hasUnderwear(var0, var1)) {
         requireSlot(var0, var1 + 7, var4, "Underwear");
         int var29 = var3 + var4;
         long var8 = VarInt.getWithLength(var0, var29);
         var28 = PacketIO.readValidatedAsciiString("Underwear", var0, var29, 0, 96, var8);
         var4 += (int)var8 + (int)(var8 >>> 32);
      } else {
         requireSlot(var0, var1 + 7, -1, "Underwear");
      }

      String var30 = null;
      if (hasFace(var0, var1)) {
         requireSlot(var0, var1 + 11, var4, "Face");
         int var31 = var3 + var4;
         long var9 = VarInt.getWithLength(var0, var31);
         var30 = PacketIO.readValidatedAsciiString("Face", var0, var31, 0, 96, var9);
         var4 += (int)var9 + (int)(var9 >>> 32);
      } else {
         requireSlot(var0, var1 + 11, -1, "Face");
      }

      String var32 = null;
      if (hasEyes(var0, var1)) {
         requireSlot(var0, var1 + 15, var4, "Eyes");
         int var33 = var3 + var4;
         long var10 = VarInt.getWithLength(var0, var33);
         var32 = PacketIO.readValidatedAsciiString("Eyes", var0, var33, 0, 96, var10);
         var4 += (int)var10 + (int)(var10 >>> 32);
      } else {
         requireSlot(var0, var1 + 15, -1, "Eyes");
      }

      String var34 = null;
      if (hasEars(var0, var1)) {
         requireSlot(var0, var1 + 19, var4, "Ears");
         int var35 = var3 + var4;
         long var11 = VarInt.getWithLength(var0, var35);
         var34 = PacketIO.readValidatedAsciiString("Ears", var0, var35, 0, 96, var11);
         var4 += (int)var11 + (int)(var11 >>> 32);
      } else {
         requireSlot(var0, var1 + 19, -1, "Ears");
      }

      String var36 = null;
      if (hasMouth(var0, var1)) {
         requireSlot(var0, var1 + 23, var4, "Mouth");
         int var37 = var3 + var4;
         long var12 = VarInt.getWithLength(var0, var37);
         var36 = PacketIO.readValidatedAsciiString("Mouth", var0, var37, 0, 96, var12);
         var4 += (int)var12 + (int)(var12 >>> 32);
      } else {
         requireSlot(var0, var1 + 23, -1, "Mouth");
      }

      String var38 = null;
      if (hasFacialHair(var0, var1)) {
         requireSlot(var0, var1 + 27, var4, "FacialHair");
         int var39 = var3 + var4;
         long var13 = VarInt.getWithLength(var0, var39);
         var38 = PacketIO.readValidatedAsciiString("FacialHair", var0, var39, 0, 96, var13);
         var4 += (int)var13 + (int)(var13 >>> 32);
      } else {
         requireSlot(var0, var1 + 27, -1, "FacialHair");
      }

      String var40 = null;
      if (hasHaircut(var0, var1)) {
         requireSlot(var0, var1 + 31, var4, "Haircut");
         int var41 = var3 + var4;
         long var14 = VarInt.getWithLength(var0, var41);
         var40 = PacketIO.readValidatedAsciiString("Haircut", var0, var41, 0, 96, var14);
         var4 += (int)var14 + (int)(var14 >>> 32);
      } else {
         requireSlot(var0, var1 + 31, -1, "Haircut");
      }

      String var42 = null;
      if (hasEyebrows(var0, var1)) {
         requireSlot(var0, var1 + 35, var4, "Eyebrows");
         int var43 = var3 + var4;
         long var15 = VarInt.getWithLength(var0, var43);
         var42 = PacketIO.readValidatedAsciiString("Eyebrows", var0, var43, 0, 96, var15);
         var4 += (int)var15 + (int)(var15 >>> 32);
      } else {
         requireSlot(var0, var1 + 35, -1, "Eyebrows");
      }

      String var44 = null;
      if (hasPants(var0, var1)) {
         requireSlot(var0, var1 + 39, var4, "Pants");
         int var45 = var3 + var4;
         long var16 = VarInt.getWithLength(var0, var45);
         var44 = PacketIO.readValidatedAsciiString("Pants", var0, var45, 0, 96, var16);
         var4 += (int)var16 + (int)(var16 >>> 32);
      } else {
         requireSlot(var0, var1 + 39, -1, "Pants");
      }

      String var46 = null;
      if (hasOverpants(var0, var1)) {
         requireSlot(var0, var1 + 43, var4, "Overpants");
         int var47 = var3 + var4;
         long var17 = VarInt.getWithLength(var0, var47);
         var46 = PacketIO.readValidatedAsciiString("Overpants", var0, var47, 0, 96, var17);
         var4 += (int)var17 + (int)(var17 >>> 32);
      } else {
         requireSlot(var0, var1 + 43, -1, "Overpants");
      }

      String var48 = null;
      if (hasUndertop(var0, var1)) {
         requireSlot(var0, var1 + 47, var4, "Undertop");
         int var49 = var3 + var4;
         long var18 = VarInt.getWithLength(var0, var49);
         var48 = PacketIO.readValidatedAsciiString("Undertop", var0, var49, 0, 96, var18);
         var4 += (int)var18 + (int)(var18 >>> 32);
      } else {
         requireSlot(var0, var1 + 47, -1, "Undertop");
      }

      String var50 = null;
      if (hasOvertop(var0, var1)) {
         requireSlot(var0, var1 + 51, var4, "Overtop");
         int var51 = var3 + var4;
         long var19 = VarInt.getWithLength(var0, var51);
         var50 = PacketIO.readValidatedAsciiString("Overtop", var0, var51, 0, 96, var19);
         var4 += (int)var19 + (int)(var19 >>> 32);
      } else {
         requireSlot(var0, var1 + 51, -1, "Overtop");
      }

      String var52 = null;
      if (hasShoes(var0, var1)) {
         requireSlot(var0, var1 + 55, var4, "Shoes");
         int var53 = var3 + var4;
         long var20 = VarInt.getWithLength(var0, var53);
         var52 = PacketIO.readValidatedAsciiString("Shoes", var0, var53, 0, 96, var20);
         var4 += (int)var20 + (int)(var20 >>> 32);
      } else {
         requireSlot(var0, var1 + 55, -1, "Shoes");
      }

      String var54 = null;
      if (hasHeadAccessory(var0, var1)) {
         requireSlot(var0, var1 + 59, var4, "HeadAccessory");
         int var55 = var3 + var4;
         long var21 = VarInt.getWithLength(var0, var55);
         var54 = PacketIO.readValidatedAsciiString("HeadAccessory", var0, var55, 0, 96, var21);
         var4 += (int)var21 + (int)(var21 >>> 32);
      } else {
         requireSlot(var0, var1 + 59, -1, "HeadAccessory");
      }

      String var56 = null;
      if (hasFaceAccessory(var0, var1)) {
         requireSlot(var0, var1 + 63, var4, "FaceAccessory");
         int var57 = var3 + var4;
         long var22 = VarInt.getWithLength(var0, var57);
         var56 = PacketIO.readValidatedAsciiString("FaceAccessory", var0, var57, 0, 96, var22);
         var4 += (int)var22 + (int)(var22 >>> 32);
      } else {
         requireSlot(var0, var1 + 63, -1, "FaceAccessory");
      }

      String var58 = null;
      if (hasEarAccessory(var0, var1)) {
         requireSlot(var0, var1 + 67, var4, "EarAccessory");
         int var59 = var3 + var4;
         long var23 = VarInt.getWithLength(var0, var59);
         var58 = PacketIO.readValidatedAsciiString("EarAccessory", var0, var59, 0, 96, var23);
         var4 += (int)var23 + (int)(var23 >>> 32);
      } else {
         requireSlot(var0, var1 + 67, -1, "EarAccessory");
      }

      String var60 = null;
      if (hasSkinFeature(var0, var1)) {
         requireSlot(var0, var1 + 71, var4, "SkinFeature");
         int var61 = var3 + var4;
         long var24 = VarInt.getWithLength(var0, var61);
         var60 = PacketIO.readValidatedAsciiString("SkinFeature", var0, var61, 0, 96, var24);
         var4 += (int)var24 + (int)(var24 >>> 32);
      } else {
         requireSlot(var0, var1 + 71, -1, "SkinFeature");
      }

      String var62 = null;
      if (hasGloves(var0, var1)) {
         requireSlot(var0, var1 + 75, var4, "Gloves");
         int var63 = var3 + var4;
         long var25 = VarInt.getWithLength(var0, var63);
         var62 = PacketIO.readValidatedAsciiString("Gloves", var0, var63, 0, 96, var25);
         var4 += (int)var25 + (int)(var25 >>> 32);
      } else {
         requireSlot(var0, var1 + 75, -1, "Gloves");
      }

      String var64 = null;
      if (hasCape(var0, var1)) {
         requireSlot(var0, var1 + 79, var4, "Cape");
         int var65 = var3 + var4;
         long var26 = VarInt.getWithLength(var0, var65);
         var64 = PacketIO.readValidatedAsciiString("Cape", var0, var65, 0, 96, var26);
         var4 += (int)var26 + (int)(var26 >>> 32);
      } else {
         requireSlot(var0, var1 + 79, -1, "Cape");
      }

      PlayerSkin var66 = new PlayerSkin(
         var5, var28, var30, var32, var34, var36, var38, var40, var42, var44, var46, var48, var50, var52, var54, var56, var58, var60, var62, var64
      );
      if (var2 != null) {
         var2.position = var3 + var4;
      }

      class="kw">return var66;
   }

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

      if (this.underwear != null) {
         var3 = (byte)(var3 | 2);
      }

      if (this.face != null) {
         var3 = (byte)(var3 | 4);
      }

      if (this.eyes != null) {
         var3 = (byte)(var3 | 8);
      }

      if (this.ears != null) {
         var3 = (byte)(var3 | 16);
      }

      if (this.mouth != null) {
         var3 = (byte)(var3 | 32);
      }

      if (this.facialHair != null) {
         var3 = (byte)(var3 | 64);
      }

      if (this.haircut != null) {
         var3 = (byte)(var3 | 128);
      }

      var1.set(PacketIO.PROTO_BYTE, var2 + 0, var3);
      var3 = 0;
      if (this.eyebrows != null) {
         var3 = (byte)(var3 | 1);
      }

      if (this.pants != null) {
         var3 = (byte)(var3 | 2);
      }

      if (this.overpants != null) {
         var3 = (byte)(var3 | 4);
      }

      if (this.undertop != null) {
         var3 = (byte)(var3 | 8);
      }

      if (this.overtop != null) {
         var3 = (byte)(var3 | 16);
      }

      if (this.shoes != null) {
         var3 = (byte)(var3 | 32);
      }

      if (this.headAccessory != null) {
         var3 = (byte)(var3 | 64);
      }

      if (this.faceAccessory != null) {
         var3 = (byte)(var3 | 128);
      }

      var1.set(PacketIO.PROTO_BYTE, var2 + 1, var3);
      var3 = 0;
      if (this.earAccessory != null) {
         var3 = (byte)(var3 | 1);
      }

      if (this.skinFeature != null) {
         var3 = (byte)(var3 | 2);
      }

      if (this.gloves != null) {
         var3 = (byte)(var3 | 4);
      }

      if (this.cape != null) {
         var3 = (byte)(var3 | 8);
      }

      var1.set(PacketIO.PROTO_BYTE, var2 + 2, var3);
      int var4 = var2 + 83;
      if (this.bodyCharacteristic != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 3, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.bodyCharacteristic, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 3, -1);
      }

      if (this.underwear != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 7, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.underwear, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 7, -1);
      }

      if (this.face != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 11, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.face, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 11, -1);
      }

      if (this.eyes != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 15, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.eyes, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 15, -1);
      }

      if (this.ears != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 19, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.ears, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 19, -1);
      }

      if (this.mouth != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 23, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.mouth, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 23, -1);
      }

      if (this.facialHair != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 27, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.facialHair, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 27, -1);
      }

      if (this.haircut != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 31, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.haircut, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 31, -1);
      }

      if (this.eyebrows != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 35, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.eyebrows, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 35, -1);
      }

      if (this.pants != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 39, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.pants, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 39, -1);
      }

      if (this.overpants != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 43, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.overpants, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 43, -1);
      }

      if (this.undertop != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 47, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.undertop, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 47, -1);
      }

      if (this.overtop != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 51, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.overtop, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 51, -1);
      }

      if (this.shoes != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 55, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.shoes, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 55, -1);
      }

      if (this.headAccessory != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 59, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.headAccessory, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 59, -1);
      }

      if (this.faceAccessory != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 63, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.faceAccessory, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 63, -1);
      }

      if (this.earAccessory != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 67, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.earAccessory, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 67, -1);
      }

      if (this.skinFeature != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 71, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.skinFeature, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 71, -1);
      }

      if (this.gloves != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 75, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.gloves, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 75, -1);
      }

      if (this.cape != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 79, var4 - var2 - 83);
         var4 += PacketIO.writeVarAsciiString(var1, var4, this.cape, 96);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 79, -1);
      }

      class="kw">return var4 - var2;
   }

   class="kw">public int computeSize() {
      int var1 = 83;
      if (this.bodyCharacteristic != null) {
         var1 += VarInt.size(this.bodyCharacteristic.length()) + this.bodyCharacteristic.length();
      }

      if (this.underwear != null) {
         var1 += VarInt.size(this.underwear.length()) + this.underwear.length();
      }

      if (this.face != null) {
         var1 += VarInt.size(this.face.length()) + this.face.length();
      }

      if (this.eyes != null) {
         var1 += VarInt.size(this.eyes.length()) + this.eyes.length();
      }

      if (this.ears != null) {
         var1 += VarInt.size(this.ears.length()) + this.ears.length();
      }

      if (this.mouth != null) {
         var1 += VarInt.size(this.mouth.length()) + this.mouth.length();
      }

      if (this.facialHair != null) {
         var1 += VarInt.size(this.facialHair.length()) + this.facialHair.length();
      }

      if (this.haircut != null) {
         var1 += VarInt.size(this.haircut.length()) + this.haircut.length();
      }

      if (this.eyebrows != null) {
         var1 += VarInt.size(this.eyebrows.length()) + this.eyebrows.length();
      }

      if (this.pants != null) {
         var1 += VarInt.size(this.pants.length()) + this.pants.length();
      }

      if (this.overpants != null) {
         var1 += VarInt.size(this.overpants.length()) + this.overpants.length();
      }

      if (this.undertop != null) {
         var1 += VarInt.size(this.undertop.length()) + this.undertop.length();
      }

      if (this.overtop != null) {
         var1 += VarInt.size(this.overtop.length()) + this.overtop.length();
      }

      if (this.shoes != null) {
         var1 += VarInt.size(this.shoes.length()) + this.shoes.length();
      }

      if (this.headAccessory != null) {
         var1 += VarInt.size(this.headAccessory.length()) + this.headAccessory.length();
      }

      if (this.faceAccessory != null) {
         var1 += VarInt.size(this.faceAccessory.length()) + this.faceAccessory.length();
      }

      if (this.earAccessory != null) {
         var1 += VarInt.size(this.earAccessory.length()) + this.earAccessory.length();
      }

      if (this.skinFeature != null) {
         var1 += VarInt.size(this.skinFeature.length()) + this.skinFeature.length();
      }

      if (this.gloves != null) {
         var1 += VarInt.size(this.gloves.length()) + this.gloves.length();
      }

      if (this.cape != null) {
         var1 += VarInt.size(this.cape.length()) + this.cape.length();
      }

      class="kw">return var1;
   }

   class="kw">public PlayerSkin clone() {
      PlayerSkin var1 = new PlayerSkin();
      var1.bodyCharacteristic = this.bodyCharacteristic;
      var1.underwear = this.underwear;
      var1.face = this.face;
      var1.eyes = this.eyes;
      var1.ears = this.ears;
      var1.mouth = this.mouth;
      var1.facialHair = this.facialHair;
      var1.haircut = this.haircut;
      var1.eyebrows = this.eyebrows;
      var1.pants = this.pants;
      var1.overpants = this.overpants;
      var1.undertop = this.undertop;
      var1.overtop = this.overtop;
      var1.shoes = this.shoes;
      var1.headAccessory = this.headAccessory;
      var1.faceAccessory = this.faceAccessory;
      var1.earAccessory = this.earAccessory;
      var1.skinFeature = this.skinFeature;
      var1.gloves = this.gloves;
      var1.cape = this.cape;
      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 PlayerSkin var2)
            ? false
            : Objects.equals(this.bodyCharacteristic, var2.bodyCharacteristic)
               && Objects.equals(this.underwear, var2.underwear)
               && Objects.equals(this.face, var2.face)
               && Objects.equals(this.eyes, var2.eyes)
               && Objects.equals(this.ears, var2.ears)
               && Objects.equals(this.mouth, var2.mouth)
               && Objects.equals(this.facialHair, var2.facialHair)
               && Objects.equals(this.haircut, var2.haircut)
               && Objects.equals(this.eyebrows, var2.eyebrows)
               && Objects.equals(this.pants, var2.pants)
               && Objects.equals(this.overpants, var2.overpants)
               && Objects.equals(this.undertop, var2.undertop)
               && Objects.equals(this.overtop, var2.overtop)
               && Objects.equals(this.shoes, var2.shoes)
               && Objects.equals(this.headAccessory, var2.headAccessory)
               && Objects.equals(this.faceAccessory, var2.faceAccessory)
               && Objects.equals(this.earAccessory, var2.earAccessory)
               && Objects.equals(this.skinFeature, var2.skinFeature)
               && Objects.equals(this.gloves, var2.gloves)
               && Objects.equals(this.cape, var2.cape);
      }
   }

   @Override
   class="kw">public int hashCode() {
      class="kw">return Objects.hash(
         this.bodyCharacteristic,
         this.underwear,
         this.face,
         this.eyes,
         this.ears,
         this.mouth,
         this.facialHair,
         this.haircut,
         this.eyebrows,
         this.pants,
         this.overpants,
         this.undertop,
         this.overtop,
         this.shoes,
         this.headAccessory,
         this.faceAccessory,
         this.earAccessory,
         this.skinFeature,
         this.gloves,
         this.cape
      );
   }
}