CommandTreeEntry class

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

Файл: com/hypixel/hytale/protocol/packets/interface_/CommandTreeEntry.java

Поля (172)

МодификаторыТипИмя
final int NULLABLE_BIT_FIELD_SIZE
int var1
CommandTreeEntry var1
int var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
long var10
int var10
int var11
int var11
int var12
int var12
long var14
int var15
int var15
int var16
int var17
int var18
long var19
int var19
long var2
int var2
ReadCursor var2
ReadCursor var2
int var2
ReadCursor var2
ReadCursor var2
ReadCursor var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
byte var2
int var2
int var20
String[] var22
var22
int var23
String var25
var25
int var26
String var27
var27
int var28
CommandVariantEntry[] var29
var29
long var3
int var3
var3
int var3
var3
long var3
int var3
var3
int var3
var3
int var3
var3
int var3
byte var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
var3
long var30
int var31
var31
CommandTreeEntry[] var33
var33
long var34
int var35
var35
String[] var37
var37
long var38
int var39
long var4
long var4
long var4
long var4
long var4
int var4
int var4
var4
var4
var4
var4
var4
var4
var4
int var4
CommandArgInfo[] var41
var41
int var42
long var43
int var44
var44
CommandOptionalArgEntry[] var46
var46
int var47
long var48
int var49
var49
int var5
int var5
int var5
ReadCursor var5
int var5
CommandSuggestionOverride[] var51
var51
int var52
int var53
long var54
int var55
var55
CommandTreeEntry var57
int var58
int var59
int var6
int var6
int var6
int var6
int var6
int var6
int var6
String var6
var6
long var60
int var61
int var62
int var64
int var65
int var66
String[] var7
int var7
int var7
String[] var7
int var7
int var7
int var7
int var7
int var7
CommandVariantEntry[] var8
CommandTreeEntry[] var8
CommandArgInfo[] var8
CommandOptionalArgEntry[] var8
CommandSuggestionOverride[] var8
long var8
int var8
long var9
long var9
long var9
int var9

Методы (149)

МодификаторыВозвратСигнатура
public CommandTreeEntry cloneCommandTreeEntry clone()
public int computeSizeint computeSize()
for for(int var8 = 0; var8 < var5; var8++)
for for(int var9 = 0; var9 < var6; var9++)
for for(int var9 = 0; var9 < var6; var9++)
for for(int var8 = 0; var8 < var5; var8++)
for for(int var9 = 0; var9 < var6; var9++)
for for(int var9 = 0; var9 < var6; var9++)
for for(int var9 = 0; var9 < var6; var9++)
for for(int var13 = 0; var13 < var11; var13++)
for for(int var16 = 0; var16 < var42; var16++)
for for(int var17 = 0; var17 < var47; var17++)
for for(int var18 = 0; var18 < var53; var18++)
for for(int var63 = 0; var63 < var59; var63++)
for for(int var20 = 0; var20 < var62; var20++)
for for(int var21 = 0; var21 < var65; var21++)
for for(int var6 = 0; var6 < this.aliases.length; var6++)
for for(int var21 = 0; var21 < this.variants.length; var21++)
for for(int var22 = 0; var22 < this.subcommands.length; var22++)
for for(int var23 = 0; var23 < this.subcommandHints.length; var23++)
for for(int var24 = 0; var24 < this.requiredArgs.length; var24++)
for for(int var25 = 0; var25 < this.optionalArgs.length; var25++)
for for(int var26 = 0; var26 < this.suggestionOverrides.length; var26++)
for for(String var6 : this.aliases)
for for(CommandVariantEntry var31 : this.variants)
for for(CommandTreeEntry var32 : this.subcommands)
for for(String var33 : this.subcommandHints)
for for(CommandArgInfo var34 : this.requiredArgs)
for for(CommandOptionalArgEntry var35 : this.optionalArgs)
for for(CommandSuggestionOverride var36 : this.suggestionOverrides)
abstract return getAliasesreturn getAliases(var0, 0)
abstract return getDescriptionreturn getDescription(var0, 0)
abstract return getNamereturn getName(var0, 0)
abstract return getOptionalArgsreturn getOptionalArgs(var0, 0)
abstract return getRequiredArgsreturn getRequiredArgs(var0, 0)
abstract return getSubcommandHintsreturn getSubcommandHints(var0, 0)
abstract return getSubcommandsreturn getSubcommands(var0, 0)
abstract return getSuggestionOverridesreturn getSuggestionOverrides(var0, 0)
abstract return getUsageTextreturn getUsageText(var0, 0)
static int getValidatedOffsetint getValidatedOffset(MemorySegment var0, int var1, int var2, int var3, String var4)
abstract return getVariantsreturn getVariants(var0, 0)
static boolean hasAliasesboolean hasAliases(MemorySegment var0, int var1)
static boolean hasDescriptionboolean hasDescription(MemorySegment var0, int var1)
static boolean hasNameboolean hasName(MemorySegment var0, int var1)
static boolean hasOptionalArgsboolean hasOptionalArgs(MemorySegment var0, int var1)
static boolean hasRequiredArgsboolean hasRequiredArgs(MemorySegment var0, int var1)
static boolean hasSubcommandHintsboolean hasSubcommandHints(MemorySegment var0, int var1)
static boolean hasSubcommandsboolean hasSubcommands(MemorySegment var0, int var1)
static boolean hasSuggestionOverridesboolean hasSuggestionOverrides(MemorySegment var0, int var1)
static boolean hasUsageTextboolean hasUsageText(MemorySegment var0, int var1)
static boolean hasVariantsboolean hasVariants(MemorySegment var0, int var1)
if if(var1 < 0)
if if(var3 == -1L)
if if(var5 > 4096000)
if if(var4 == -1L)
if if(var6 > 4096000)
if if(var4 == -1L)
if if(var6 > 4096000)
if if(var3 == -1L)
if if(var5 > 4096000)
if if(var4 == -1L)
if if(var6 > 4096000)
if if(var4 == -1L)
if if(var6 > 4096000)
if if(var4 == -1L)
if if(var6 > 4096000)
if if(var4 != var2)
if if(var9 == -1L)
if if(var11 > 4096000)
if if(var34 == -1L)
if if(var42 > 4096000)
if if(var38 == -1L)
if if(var47 > 4096000)
if if(var43 == -1L)
if if(var53 > 4096000)
if if(var48 == -1L)
if if(var59 > 4096000)
if if(var54 == -1L)
if if(var62 > 4096000)
if if(var60 == -1L)
if if(var65 > 4096000)
if if(var2 != null)
if if(this.name != null)
if if(this.aliases != null)
if if(this.usageText != null)
if if(this.description != null)
if if(this.variants != null)
if if(this.subcommands != null)
if if(this.subcommandHints != null)
if if(this.requiredArgs != null)
if if(this.optionalArgs != null)
if if(this.suggestionOverrides != null)
if if(this.name != null)
if if(this.aliases != null)
if if(this.aliases.length > 4096000)
if if(this.usageText != null)
if if(this.description != null)
if if(this.variants != null)
if if(this.variants.length > 4096000)
if if(this.subcommands != null)
if if(this.subcommands.length > 4096000)
if if(this.subcommandHints != null)
if if(this.subcommandHints.length > 4096000)
if if(this.requiredArgs != null)
if if(this.requiredArgs.length > 4096000)
if if(this.optionalArgs != null)
if if(this.optionalArgs.length > 4096000)
if if(this.suggestionOverrides != null)
if if(this.suggestionOverrides.length > 4096000)
if if(this.name != null)
if if(this.aliases != null)
if if(this.usageText != null)
if if(this.description != null)
if if(this.variants != null)
if if(this.subcommands != null)
if if(this.subcommandHints != null)
if if(this.requiredArgs != null)
if if(this.optionalArgs != null)
if if(this.suggestionOverrides != 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 + 2, var4, "Name")
abstract requireSlot requireSlot(var0, var1 + 2, -1, "Name")
abstract requireSlot requireSlot(var0, var1 + 6, var4, "Aliases")
abstract requireSlot requireSlot(var0, var1 + 6, -1, "Aliases")
abstract requireSlot requireSlot(var0, var1 + 10, var4, "UsageText")
abstract requireSlot requireSlot(var0, var1 + 10, -1, "UsageText")
abstract requireSlot requireSlot(var0, var1 + 14, var4, "Description")
abstract requireSlot requireSlot(var0, var1 + 14, -1, "Description")
abstract requireSlot requireSlot(var0, var1 + 18, var4, "Variants")
abstract requireSlot requireSlot(var0, var1 + 18, -1, "Variants")
abstract requireSlot requireSlot(var0, var1 + 22, var4, "Subcommands")
abstract requireSlot requireSlot(var0, var1 + 22, -1, "Subcommands")
abstract requireSlot requireSlot(var0, var1 + 26, var4, "SubcommandHints")
abstract requireSlot requireSlot(var0, var1 + 26, -1, "SubcommandHints")
abstract requireSlot requireSlot(var0, var1 + 30, var4, "RequiredArgs")
abstract requireSlot requireSlot(var0, var1 + 30, -1, "RequiredArgs")
abstract requireSlot requireSlot(var0, var1 + 34, var4, "OptionalArgs")
abstract requireSlot requireSlot(var0, var1 + 34, -1, "OptionalArgs")
abstract requireSlot requireSlot(var0, var1 + 38, var4, "SuggestionOverrides")
abstract requireSlot requireSlot(var0, var1 + 38, -1, "SuggestionOverrides")
public int serializeint serialize(@Nonnull MemorySegment var1, int var2)
static CommandTreeEntry toObjectCommandTreeEntry toObject(MemorySegment var0)
static CommandTreeEntry toObjectCommandTreeEntry toObject(MemorySegment var0, int var1)
static CommandTreeEntry toObjectCommandTreeEntry 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.interface_;

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

class="kw">public class CommandTreeEntry {
   class="kw">public class="kw">static class="kw">final int NULLABLE_BIT_FIELD_SIZE = 2;
   class="kw">public class="kw">static class="kw">final int FIXED_BLOCK_SIZE = 2;
   class="kw">public class="kw">static class="kw">final int VARIABLE_FIELD_COUNT = 10;
   class="kw">public class="kw">static class="kw">final int VARIABLE_BLOCK_START = 42;
   class="kw">public class="kw">static class="kw">final int MAX_SIZE = 1677721600;
   @Nullable
   class="kw">public String name;
   @Nullable
   class="kw">public String[] aliases;
   @Nullable
   class="kw">public String usageText;
   @Nullable
   class="kw">public String description;
   @Nullable
   class="kw">public CommandVariantEntry[] variants;
   @Nullable
   class="kw">public CommandTreeEntry[] subcommands;
   @Nullable
   class="kw">public String[] subcommandHints;
   @Nullable
   class="kw">public CommandArgInfo[] requiredArgs;
   @Nullable
   class="kw">public CommandOptionalArgEntry[] optionalArgs;
   @Nullable
   class="kw">public CommandSuggestionOverride[] suggestionOverrides;

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

   class="kw">public CommandTreeEntry(
      @Nullable String var1,
      @Nullable String[] var2,
      @Nullable String var3,
      @Nullable String var4,
      @Nullable CommandVariantEntry[] var5,
      @Nullable CommandTreeEntry[] var6,
      @Nullable String[] var7,
      @Nullable CommandArgInfo[] var8,
      @Nullable CommandOptionalArgEntry[] var9,
      @Nullable CommandSuggestionOverride[] var10
   ) {
      this.name = var1;
      this.aliases = var2;
      this.usageText = var3;
      this.description = var4;
      this.variants = var5;
      this.subcommands = var6;
      this.subcommandHints = var7;
      this.requiredArgs = var8;
      this.optionalArgs = var9;
      this.suggestionOverrides = var10;
   }

   class="kw">public CommandTreeEntry(@Nonnull CommandTreeEntry var1) {
      this.name = var1.name;
      this.aliases = var1.aliases;
      this.usageText = var1.usageText;
      this.description = var1.description;
      this.variants = var1.variants;
      this.subcommands = var1.subcommands;
      this.subcommandHints = var1.subcommandHints;
      this.requiredArgs = var1.requiredArgs;
      this.optionalArgs = var1.optionalArgs;
      this.suggestionOverrides = var1.suggestionOverrides;
   }

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

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

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

   @Nullable
   class="kw">public class="kw">static String getName(MemorySegment var0, int var1) {
      class="kw">return hasName(var0, var1) ? PacketIO.readVarString("Name", var0, var1 + getValidatedOffset(var0, var1, 2, 42, "Name"), 4096000) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String[] getAliases(MemorySegment var0, int var1) {
      if (!hasAliases(var0, var1)) {
         class="kw">return null;
      }

      int var2 = var1 + getValidatedOffset(var0, var1, 6, 42, "Aliases");
      long var3 = VarInt.getWithLength(var0, var2);
      if (var3 == -1L) {
         throw ProtocolException.invalidVarInt("Aliases");
      }

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

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

      var2 += var6;
      String[] var7 = new String[var5];

      for (int var8 = 0; var8 < var5; var8++) {
         long var9 = VarInt.getWithLength(var0, var2);
         var7[var8] = PacketIO.readVarString("Aliases", var0, var2, 0, 4096000, var9);
         var2 += (int)var9 + (int)(var9 >>> 32);
      }

      class="kw">return var7;
   }

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

   @Nullable
   class="kw">public class="kw">static String getUsageText(MemorySegment var0, int var1) {
      class="kw">return hasUsageText(var0, var1) ? PacketIO.readVarString("UsageText", var0, var1 + getValidatedOffset(var0, var1, 10, 42, "UsageText"), 4096000) : null;
   }

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

   @Nullable
   class="kw">public class="kw">static String getDescription(MemorySegment var0, int var1) {
      class="kw">return hasDescription(var0, var1)
         ? PacketIO.readVarString("Description", var0, var1 + getValidatedOffset(var0, var1, 14, 42, "Description"), 4096000)
         : null;
   }

   @Nullable
   class="kw">public class="kw">static CommandVariantEntry[] getVariants(MemorySegment var0) {
      class="kw">return getVariants(var0, 0);
   }

   @Nullable
   class="kw">public class="kw">static CommandVariantEntry[] getVariants(MemorySegment var0, int var1) {
      if (!hasVariants(var0, var1)) {
         class="kw">return null;
      }

      ReadCursor var2 = new ReadCursor();
      int var3 = var1 + getValidatedOffset(var0, var1, 18, 42, "Variants");
      long var4 = VarInt.getWithLength(var0, var3);
      if (var4 == -1L) {
         throw ProtocolException.invalidVarInt("Variants");
      }

      int var6 = (int)var4;
      if (var6 > 4096000) {
         throw ProtocolException.arrayTooLong("Variants", var6, 4096000);
      }

      int var7 = (int)(var4 >>> 32);
      if (var3 + var7 + var6 * 21L > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("Variants", (int)Math.min(var3 + var7 + var6 * 21L, 2147483647L), (int)var0.byteSize());
      }

      var3 += var7;
      CommandVariantEntry[] var8 = new CommandVariantEntry[var6];

      for (int var9 = 0; var9 < var6; var9++) {
         var8[var9] = CommandVariantEntry.toObject(var0, var3, var2);
         var3 = var2.position;
      }

      class="kw">return var8;
   }

   @Nullable
   class="kw">public class="kw">static CommandTreeEntry[] getSubcommands(MemorySegment var0) {
      class="kw">return getSubcommands(var0, 0);
   }

   @Nullable
   class="kw">public class="kw">static CommandTreeEntry[] getSubcommands(MemorySegment var0, int var1) {
      if (!hasSubcommands(var0, var1)) {
         class="kw">return null;
      }

      ReadCursor var2 = new ReadCursor();
      int var3 = var1 + getValidatedOffset(var0, var1, 22, 42, "Subcommands");
      long var4 = VarInt.getWithLength(var0, var3);
      if (var4 == -1L) {
         throw ProtocolException.invalidVarInt("Subcommands");
      }

      int var6 = (int)var4;
      if (var6 > 4096000) {
         throw ProtocolException.arrayTooLong("Subcommands", var6, 4096000);
      }

      int var7 = (int)(var4 >>> 32);
      if (var3 + var7 + var6 * 42L > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("Subcommands", (int)Math.min(var3 + var7 + var6 * 42L, 2147483647L), (int)var0.byteSize());
      }

      var3 += var7;
      CommandTreeEntry[] var8 = new CommandTreeEntry[var6];

      for (int var9 = 0; var9 < var6; var9++) {
         var8[var9] = toObject(var0, var3, var2);
         var3 = var2.position;
      }

      class="kw">return var8;
   }

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

   @Nullable
   class="kw">public class="kw">static String[] getSubcommandHints(MemorySegment var0, int var1) {
      if (!hasSubcommandHints(var0, var1)) {
         class="kw">return null;
      }

      int var2 = var1 + getValidatedOffset(var0, var1, 26, 42, "SubcommandHints");
      long var3 = VarInt.getWithLength(var0, var2);
      if (var3 == -1L) {
         throw ProtocolException.invalidVarInt("SubcommandHints");
      }

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

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

      var2 += var6;
      String[] var7 = new String[var5];

      for (int var8 = 0; var8 < var5; var8++) {
         long var9 = VarInt.getWithLength(var0, var2);
         var7[var8] = PacketIO.readVarString("SubcommandHints", var0, var2, 0, 4096000, var9);
         var2 += (int)var9 + (int)(var9 >>> 32);
      }

      class="kw">return var7;
   }

   @Nullable
   class="kw">public class="kw">static CommandArgInfo[] getRequiredArgs(MemorySegment var0) {
      class="kw">return getRequiredArgs(var0, 0);
   }

   @Nullable
   class="kw">public class="kw">static CommandArgInfo[] getRequiredArgs(MemorySegment var0, int var1) {
      if (!hasRequiredArgs(var0, var1)) {
         class="kw">return null;
      }

      ReadCursor var2 = new ReadCursor();
      int var3 = var1 + getValidatedOffset(var0, var1, 30, 42, "RequiredArgs");
      long var4 = VarInt.getWithLength(var0, var3);
      if (var4 == -1L) {
         throw ProtocolException.invalidVarInt("RequiredArgs");
      }

      int var6 = (int)var4;
      if (var6 > 4096000) {
         throw ProtocolException.arrayTooLong("RequiredArgs", var6, 4096000);
      }

      int var7 = (int)(var4 >>> 32);
      if (var3 + var7 + var6 * 21L > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("RequiredArgs", (int)Math.min(var3 + var7 + var6 * 21L, 2147483647L), (int)var0.byteSize());
      }

      var3 += var7;
      CommandArgInfo[] var8 = new CommandArgInfo[var6];

      for (int var9 = 0; var9 < var6; var9++) {
         var8[var9] = CommandArgInfo.toObject(var0, var3, var2);
         var3 = var2.position;
      }

      class="kw">return var8;
   }

   @Nullable
   class="kw">public class="kw">static CommandOptionalArgEntry[] getOptionalArgs(MemorySegment var0) {
      class="kw">return getOptionalArgs(var0, 0);
   }

   @Nullable
   class="kw">public class="kw">static CommandOptionalArgEntry[] getOptionalArgs(MemorySegment var0, int var1) {
      if (!hasOptionalArgs(var0, var1)) {
         class="kw">return null;
      }

      ReadCursor var2 = new ReadCursor();
      int var3 = var1 + getValidatedOffset(var0, var1, 34, 42, "OptionalArgs");
      long var4 = VarInt.getWithLength(var0, var3);
      if (var4 == -1L) {
         throw ProtocolException.invalidVarInt("OptionalArgs");
      }

      int var6 = (int)var4;
      if (var6 > 4096000) {
         throw ProtocolException.arrayTooLong("OptionalArgs", var6, 4096000);
      }

      int var7 = (int)(var4 >>> 32);
      if (var3 + var7 + var6 * 17L > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("OptionalArgs", (int)Math.min(var3 + var7 + var6 * 17L, 2147483647L), (int)var0.byteSize());
      }

      var3 += var7;
      CommandOptionalArgEntry[] var8 = new CommandOptionalArgEntry[var6];

      for (int var9 = 0; var9 < var6; var9++) {
         var8[var9] = CommandOptionalArgEntry.toObject(var0, var3, var2);
         var3 = var2.position;
      }

      class="kw">return var8;
   }

   @Nullable
   class="kw">public class="kw">static CommandSuggestionOverride[] getSuggestionOverrides(MemorySegment var0) {
      class="kw">return getSuggestionOverrides(var0, 0);
   }

   @Nullable
   class="kw">public class="kw">static CommandSuggestionOverride[] getSuggestionOverrides(MemorySegment var0, int var1) {
      if (!hasSuggestionOverrides(var0, var1)) {
         class="kw">return null;
      }

      ReadCursor var2 = new ReadCursor();
      int var3 = var1 + getValidatedOffset(var0, var1, 38, 42, "SuggestionOverrides");
      long var4 = VarInt.getWithLength(var0, var3);
      if (var4 == -1L) {
         throw ProtocolException.invalidVarInt("SuggestionOverrides");
      }

      int var6 = (int)var4;
      if (var6 > 4096000) {
         throw ProtocolException.arrayTooLong("SuggestionOverrides", var6, 4096000);
      }

      int var7 = (int)(var4 >>> 32);
      if (var3 + var7 + var6 * 9L > var0.byteSize()) {
         throw ProtocolException.bufferTooSmall("SuggestionOverrides", (int)Math.min(var3 + var7 + var6 * 9L, 2147483647L), (int)var0.byteSize());
      }

      var3 += var7;
      CommandSuggestionOverride[] var8 = new CommandSuggestionOverride[var6];

      for (int var9 = 0; var9 < var6; var9++) {
         var8[var9] = CommandSuggestionOverride.toObject(var0, var3, var2);
         var3 = var2.position;
      }

      class="kw">return var8;
   }

   class="kw">public class="kw">static boolean hasName(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 hasAliases(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 hasUsageText(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 hasDescription(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 hasVariants(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 hasSubcommands(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 hasSubcommandHints(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 hasRequiredArgs(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 hasOptionalArgs(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 hasSuggestionOverrides(MemorySegment var0, int var1) {
      byte var2 = var0.get(PacketIO.PROTO_BYTE, var1 + 1);
      class="kw">return (var2 & 2) != 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 CommandTreeEntry toObject(MemorySegment var0) {
      class="kw">return toObject(var0, 0, null);
   }

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

   class="kw">public class="kw">static CommandTreeEntry toObject(MemorySegment var0, int var1, @Nullable ReadCursor var2) {
      requireBounds(var0, var1);
      int var3 = var1 + 42;
      int var4 = 0;
      ReadCursor var5 = var2 != null ? var2 : new ReadCursor();
      String var6 = null;
      if (hasName(var0, var1)) {
         requireSlot(var0, var1 + 2, var4, "Name");
         int var7 = var3 + var4;
         long var8 = VarInt.getWithLength(var0, var7);
         var6 = PacketIO.readVarString("Name", var0, var7, 0, 4096000, var8);
         var4 += (int)var8 + (int)(var8 >>> 32);
      } else {
         requireSlot(var0, var1 + 2, -1, "Name");
      }

      String[] var22 = null;
      if (hasAliases(var0, var1)) {
         requireSlot(var0, var1 + 6, var4, "Aliases");
         int var23 = var3 + var4;
         long var9 = VarInt.getWithLength(var0, var23);
         if (var9 == -1L) {
            throw ProtocolException.invalidVarInt("Aliases");
         }

         int var11 = (int)var9;
         if (var11 > 4096000) {
            throw ProtocolException.arrayTooLong("Aliases", var11, 4096000);
         }

         int var12 = (int)(var9 >>> 32);
         if (var23 + var12 + var11 > var0.byteSize()) {
            throw ProtocolException.bufferTooSmall("Aliases", Math.min(var23 + var12 + var11, Integer.MAX_VALUE), (int)var0.byteSize());
         }

         var23 += var12;
         var22 = new String[var11];

         for (int var13 = 0; var13 < var11; var13++) {
            long var14 = VarInt.getWithLength(var0, var23);
            var22[var13] = PacketIO.readVarString("Aliases", var0, var23, 0, 4096000, var14);
            var23 += (int)var14 + (int)(var14 >>> 32);
         }

         var4 = var23 - var3;
      } else {
         requireSlot(var0, var1 + 6, -1, "Aliases");
      }

      String var25 = null;
      if (hasUsageText(var0, var1)) {
         requireSlot(var0, var1 + 10, var4, "UsageText");
         int var26 = var3 + var4;
         long var10 = VarInt.getWithLength(var0, var26);
         var25 = PacketIO.readVarString("UsageText", var0, var26, 0, 4096000, var10);
         var4 += (int)var10 + (int)(var10 >>> 32);
      } else {
         requireSlot(var0, var1 + 10, -1, "UsageText");
      }

      String var27 = null;
      if (hasDescription(var0, var1)) {
         requireSlot(var0, var1 + 14, var4, "Description");
         int var28 = var3 + var4;
         long var30 = VarInt.getWithLength(var0, var28);
         var27 = PacketIO.readVarString("Description", var0, var28, 0, 4096000, var30);
         var4 += (int)var30 + (int)(var30 >>> 32);
      } else {
         requireSlot(var0, var1 + 14, -1, "Description");
      }

      CommandVariantEntry[] var29 = null;
      if (hasVariants(var0, var1)) {
         requireSlot(var0, var1 + 18, var4, "Variants");
         int var31 = var3 + var4;
         long var34 = VarInt.getWithLength(var0, var31);
         if (var34 == -1L) {
            throw ProtocolException.invalidVarInt("Variants");
         }

         int var42 = (int)var34;
         if (var42 > 4096000) {
            throw ProtocolException.arrayTooLong("Variants", var42, 4096000);
         }

         int var15 = (int)(var34 >>> 32);
         if (var31 + var15 + var42 * 21L > var0.byteSize()) {
            throw ProtocolException.bufferTooSmall("Variants", (int)Math.min(var31 + var15 + var42 * 21L, 2147483647L), (int)var0.byteSize());
         }

         var31 += var15;
         var29 = new CommandVariantEntry[var42];

         for (int var16 = 0; var16 < var42; var16++) {
            var29[var16] = CommandVariantEntry.toObject(var0, var31, var5);
            var31 = var5.position;
         }

         var4 = var31 - var3;
      } else {
         requireSlot(var0, var1 + 18, -1, "Variants");
      }

      CommandTreeEntry[] var33 = null;
      if (hasSubcommands(var0, var1)) {
         requireSlot(var0, var1 + 22, var4, "Subcommands");
         int var35 = var3 + var4;
         long var38 = VarInt.getWithLength(var0, var35);
         if (var38 == -1L) {
            throw ProtocolException.invalidVarInt("Subcommands");
         }

         int var47 = (int)var38;
         if (var47 > 4096000) {
            throw ProtocolException.arrayTooLong("Subcommands", var47, 4096000);
         }

         int var52 = (int)(var38 >>> 32);
         if (var35 + var52 + var47 * 42L > var0.byteSize()) {
            throw ProtocolException.bufferTooSmall("Subcommands", (int)Math.min(var35 + var52 + var47 * 42L, 2147483647L), (int)var0.byteSize());
         }

         var35 += var52;
         var33 = new CommandTreeEntry[var47];

         for (int var17 = 0; var17 < var47; var17++) {
            var33[var17] = toObject(var0, var35, var5);
            var35 = var5.position;
         }

         var4 = var35 - var3;
      } else {
         requireSlot(var0, var1 + 22, -1, "Subcommands");
      }

      String[] var37 = null;
      if (hasSubcommandHints(var0, var1)) {
         requireSlot(var0, var1 + 26, var4, "SubcommandHints");
         int var39 = var3 + var4;
         long var43 = VarInt.getWithLength(var0, var39);
         if (var43 == -1L) {
            throw ProtocolException.invalidVarInt("SubcommandHints");
         }

         int var53 = (int)var43;
         if (var53 > 4096000) {
            throw ProtocolException.arrayTooLong("SubcommandHints", var53, 4096000);
         }

         int var58 = (int)(var43 >>> 32);
         if (var39 + var58 + var53 > var0.byteSize()) {
            throw ProtocolException.bufferTooSmall("SubcommandHints", Math.min(var39 + var58 + var53, Integer.MAX_VALUE), (int)var0.byteSize());
         }

         var39 += var58;
         var37 = new String[var53];

         for (int var18 = 0; var18 < var53; var18++) {
            long var19 = VarInt.getWithLength(var0, var39);
            var37[var18] = PacketIO.readVarString("SubcommandHints", var0, var39, 0, 4096000, var19);
            var39 += (int)var19 + (int)(var19 >>> 32);
         }

         var4 = var39 - var3;
      } else {
         requireSlot(var0, var1 + 26, -1, "SubcommandHints");
      }

      CommandArgInfo[] var41 = null;
      if (hasRequiredArgs(var0, var1)) {
         requireSlot(var0, var1 + 30, var4, "RequiredArgs");
         int var44 = var3 + var4;
         long var48 = VarInt.getWithLength(var0, var44);
         if (var48 == -1L) {
            throw ProtocolException.invalidVarInt("RequiredArgs");
         }

         int var59 = (int)var48;
         if (var59 > 4096000) {
            throw ProtocolException.arrayTooLong("RequiredArgs", var59, 4096000);
         }

         int var61 = (int)(var48 >>> 32);
         if (var44 + var61 + var59 * 21L > var0.byteSize()) {
            throw ProtocolException.bufferTooSmall("RequiredArgs", (int)Math.min(var44 + var61 + var59 * 21L, 2147483647L), (int)var0.byteSize());
         }

         var44 += var61;
         var41 = new CommandArgInfo[var59];

         for (int var63 = 0; var63 < var59; var63++) {
            var41[var63] = CommandArgInfo.toObject(var0, var44, var5);
            var44 = var5.position;
         }

         var4 = var44 - var3;
      } else {
         requireSlot(var0, var1 + 30, -1, "RequiredArgs");
      }

      CommandOptionalArgEntry[] var46 = null;
      if (hasOptionalArgs(var0, var1)) {
         requireSlot(var0, var1 + 34, var4, "OptionalArgs");
         int var49 = var3 + var4;
         long var54 = VarInt.getWithLength(var0, var49);
         if (var54 == -1L) {
            throw ProtocolException.invalidVarInt("OptionalArgs");
         }

         int var62 = (int)var54;
         if (var62 > 4096000) {
            throw ProtocolException.arrayTooLong("OptionalArgs", var62, 4096000);
         }

         int var64 = (int)(var54 >>> 32);
         if (var49 + var64 + var62 * 17L > var0.byteSize()) {
            throw ProtocolException.bufferTooSmall("OptionalArgs", (int)Math.min(var49 + var64 + var62 * 17L, 2147483647L), (int)var0.byteSize());
         }

         var49 += var64;
         var46 = new CommandOptionalArgEntry[var62];

         for (int var20 = 0; var20 < var62; var20++) {
            var46[var20] = CommandOptionalArgEntry.toObject(var0, var49, var5);
            var49 = var5.position;
         }

         var4 = var49 - var3;
      } else {
         requireSlot(var0, var1 + 34, -1, "OptionalArgs");
      }

      CommandSuggestionOverride[] var51 = null;
      if (hasSuggestionOverrides(var0, var1)) {
         requireSlot(var0, var1 + 38, var4, "SuggestionOverrides");
         int var55 = var3 + var4;
         long var60 = VarInt.getWithLength(var0, var55);
         if (var60 == -1L) {
            throw ProtocolException.invalidVarInt("SuggestionOverrides");
         }

         int var65 = (int)var60;
         if (var65 > 4096000) {
            throw ProtocolException.arrayTooLong("SuggestionOverrides", var65, 4096000);
         }

         int var66 = (int)(var60 >>> 32);
         if (var55 + var66 + var65 * 9L > var0.byteSize()) {
            throw ProtocolException.bufferTooSmall("SuggestionOverrides", (int)Math.min(var55 + var66 + var65 * 9L, 2147483647L), (int)var0.byteSize());
         }

         var55 += var66;
         var51 = new CommandSuggestionOverride[var65];

         for (int var21 = 0; var21 < var65; var21++) {
            var51[var21] = CommandSuggestionOverride.toObject(var0, var55, var5);
            var55 = var5.position;
         }

         var4 = var55 - var3;
      } else {
         requireSlot(var0, var1 + 38, -1, "SuggestionOverrides");
      }

      CommandTreeEntry var57 = new CommandTreeEntry(var6, var22, var25, var27, var29, var33, var37, var41, var46, var51);
      if (var2 != null) {
         var2.position = var3 + var4;
      }

      class="kw">return var57;
   }

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

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

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

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

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

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

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

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

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

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

      var1.set(PacketIO.PROTO_BYTE, var2 + 1, var3);
      int var4 = var2 + 42;
      if (this.name != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 2, var4 - var2 - 42);
         var4 += PacketIO.writeVarString(var1, var4, this.name, 4096000);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 2, -1);
      }

      if (this.aliases != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 6, var4 - var2 - 42);
         if (this.aliases.length > 4096000) {
            throw ProtocolException.arrayTooLong("Aliases", this.aliases.length, 4096000);
         }

         var4 += VarInt.set(var1, var4, this.aliases.length);
         int var5 = 0;

         for (int var6 = 0; var6 < this.aliases.length; var6++) {
            var5 += PacketIO.writeVarString(var1, var4 + var5, this.aliases[var6], 4096000);
         }

         var4 += var5;
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 6, -1);
      }

      if (this.usageText != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 10, var4 - var2 - 42);
         var4 += PacketIO.writeVarString(var1, var4, this.usageText, 4096000);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 10, -1);
      }

      if (this.description != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 14, var4 - var2 - 42);
         var4 += PacketIO.writeVarString(var1, var4, this.description, 4096000);
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 14, -1);
      }

      if (this.variants != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 18, var4 - var2 - 42);
         if (this.variants.length > 4096000) {
            throw ProtocolException.arrayTooLong("Variants", this.variants.length, 4096000);
         }

         var4 += VarInt.set(var1, var4, this.variants.length);
         int var15 = 0;

         for (int var21 = 0; var21 < this.variants.length; var21++) {
            var15 += this.variants[var21].serialize(var1, var4 + var15);
         }

         var4 += var15;
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 18, -1);
      }

      if (this.subcommands != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 22, var4 - var2 - 42);
         if (this.subcommands.length > 4096000) {
            throw ProtocolException.arrayTooLong("Subcommands", this.subcommands.length, 4096000);
         }

         var4 += VarInt.set(var1, var4, this.subcommands.length);
         int var16 = 0;

         for (int var22 = 0; var22 < this.subcommands.length; var22++) {
            var16 += this.subcommands[var22].serialize(var1, var4 + var16);
         }

         var4 += var16;
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 22, -1);
      }

      if (this.subcommandHints != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 26, var4 - var2 - 42);
         if (this.subcommandHints.length > 4096000) {
            throw ProtocolException.arrayTooLong("SubcommandHints", this.subcommandHints.length, 4096000);
         }

         var4 += VarInt.set(var1, var4, this.subcommandHints.length);
         int var17 = 0;

         for (int var23 = 0; var23 < this.subcommandHints.length; var23++) {
            var17 += PacketIO.writeVarString(var1, var4 + var17, this.subcommandHints[var23], 4096000);
         }

         var4 += var17;
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 26, -1);
      }

      if (this.requiredArgs != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 30, var4 - var2 - 42);
         if (this.requiredArgs.length > 4096000) {
            throw ProtocolException.arrayTooLong("RequiredArgs", this.requiredArgs.length, 4096000);
         }

         var4 += VarInt.set(var1, var4, this.requiredArgs.length);
         int var18 = 0;

         for (int var24 = 0; var24 < this.requiredArgs.length; var24++) {
            var18 += this.requiredArgs[var24].serialize(var1, var4 + var18);
         }

         var4 += var18;
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 30, -1);
      }

      if (this.optionalArgs != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 34, var4 - var2 - 42);
         if (this.optionalArgs.length > 4096000) {
            throw ProtocolException.arrayTooLong("OptionalArgs", this.optionalArgs.length, 4096000);
         }

         var4 += VarInt.set(var1, var4, this.optionalArgs.length);
         int var19 = 0;

         for (int var25 = 0; var25 < this.optionalArgs.length; var25++) {
            var19 += this.optionalArgs[var25].serialize(var1, var4 + var19);
         }

         var4 += var19;
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 34, -1);
      }

      if (this.suggestionOverrides != null) {
         var1.set(PacketIO.PROTO_INT, var2 + 38, var4 - var2 - 42);
         if (this.suggestionOverrides.length > 4096000) {
            throw ProtocolException.arrayTooLong("SuggestionOverrides", this.suggestionOverrides.length, 4096000);
         }

         var4 += VarInt.set(var1, var4, this.suggestionOverrides.length);
         int var20 = 0;

         for (int var26 = 0; var26 < this.suggestionOverrides.length; var26++) {
            var20 += this.suggestionOverrides[var26].serialize(var1, var4 + var20);
         }

         var4 += var20;
      } else {
         var1.set(PacketIO.PROTO_INT, var2 + 38, -1);
      }

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

   class="kw">public int computeSize() {
      int var1 = 42;
      if (this.name != null) {
         var1 += PacketIO.stringSize(this.name);
      }

      if (this.aliases != null) {
         int var2 = 0;

         for (String var6 : this.aliases) {
            var2 += PacketIO.stringSize(var6);
         }

         var1 += VarInt.size(this.aliases.length) + var2;
      }

      if (this.usageText != null) {
         var1 += PacketIO.stringSize(this.usageText);
      }

      if (this.description != null) {
         var1 += PacketIO.stringSize(this.description);
      }

      if (this.variants != null) {
         int var7 = 0;

         for (CommandVariantEntry var31 : this.variants) {
            var7 += var31.computeSize();
         }

         var1 += VarInt.size(this.variants.length) + var7;
      }

      if (this.subcommands != null) {
         int var8 = 0;

         for (CommandTreeEntry var32 : this.subcommands) {
            var8 += var32.computeSize();
         }

         var1 += VarInt.size(this.subcommands.length) + var8;
      }

      if (this.subcommandHints != null) {
         int var9 = 0;

         for (String var33 : this.subcommandHints) {
            var9 += PacketIO.stringSize(var33);
         }

         var1 += VarInt.size(this.subcommandHints.length) + var9;
      }

      if (this.requiredArgs != null) {
         int var10 = 0;

         for (CommandArgInfo var34 : this.requiredArgs) {
            var10 += var34.computeSize();
         }

         var1 += VarInt.size(this.requiredArgs.length) + var10;
      }

      if (this.optionalArgs != null) {
         int var11 = 0;

         for (CommandOptionalArgEntry var35 : this.optionalArgs) {
            var11 += var35.computeSize();
         }

         var1 += VarInt.size(this.optionalArgs.length) + var11;
      }

      if (this.suggestionOverrides != null) {
         int var12 = 0;

         for (CommandSuggestionOverride var36 : this.suggestionOverrides) {
            var12 += var36.computeSize();
         }

         var1 += VarInt.size(this.suggestionOverrides.length) + var12;
      }

      class="kw">return var1;
   }

   class="kw">public CommandTreeEntry clone() {
      CommandTreeEntry var1 = new CommandTreeEntry();
      var1.name = this.name;
      var1.aliases = this.aliases != null ? Arrays.copyOf(this.aliases, this.aliases.length) : null;
      var1.usageText = this.usageText;
      var1.description = this.description;
      var1.variants = this.variants != null ? Arrays.stream(this.variants).map(var0 -> var0.clone()).toArray(CommandVariantEntry[]::new) : null;
      var1.subcommands = this.subcommands != null ? Arrays.stream(this.subcommands).map(var0 -> var0.clone()).toArray(CommandTreeEntry[]::new) : null;
      var1.subcommandHints = this.subcommandHints != null ? Arrays.copyOf(this.subcommandHints, this.subcommandHints.length) : null;
      var1.requiredArgs = this.requiredArgs != null ? Arrays.stream(this.requiredArgs).map(var0 -> var0.clone()).toArray(CommandArgInfo[]::new) : null;
      var1.optionalArgs = this.optionalArgs != null ? Arrays.stream(this.optionalArgs).map(var0 -> var0.clone()).toArray(CommandOptionalArgEntry[]::new) : null;
      var1.suggestionOverrides = this.suggestionOverrides != null
         ? Arrays.stream(this.suggestionOverrides).map(var0 -> var0.clone()).toArray(CommandSuggestionOverride[]::new)
         : null;
      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 CommandTreeEntry var2)
            ? false
            : Objects.equals(this.name, var2.name)
               && Arrays.equals(this.aliases, var2.aliases)
               && Objects.equals(this.usageText, var2.usageText)
               && Objects.equals(this.description, var2.description)
               && Arrays.equals(this.variants, var2.variants)
               && Arrays.equals(this.subcommands, var2.subcommands)
               && Arrays.equals(this.subcommandHints, var2.subcommandHints)
               && Arrays.equals(this.requiredArgs, var2.requiredArgs)
               && Arrays.equals(this.optionalArgs, var2.optionalArgs)
               && Arrays.equals(this.suggestionOverrides, var2.suggestionOverrides);
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = 1;
      var1 = 31 * var1 + Objects.hashCode(this.name);
      var1 = 31 * var1 + Arrays.hashCode(this.aliases);
      var1 = 31 * var1 + Objects.hashCode(this.usageText);
      var1 = 31 * var1 + Objects.hashCode(this.description);
      var1 = 31 * var1 + Arrays.hashCode(this.variants);
      var1 = 31 * var1 + Arrays.hashCode(this.subcommands);
      var1 = 31 * var1 + Arrays.hashCode(this.subcommandHints);
      var1 = 31 * var1 + Arrays.hashCode(this.requiredArgs);
      var1 = 31 * var1 + Arrays.hashCode(this.optionalArgs);
      class="kw">return 31 * var1 + Arrays.hashCode(this.suggestionOverrides);
   }
}