ArgTypes class

Пакет: com.hypixel.hytale.server.core.command.system.arguments.types

Файл: com/hypixel/hytale/server/core/command/system/arguments/types/ArgTypes.java

Поля (103)

МодификаторыТипИмя
final SingleArgumentType<Boolean> BOOLEAN
private static final String FALSE_STRING
private final WrappedArgumentType<String> blockPattern
private final WrappedArgumentType<String> blockType
break
break
break
private final BiFunction<Integer, Integer, Boolean> comparisonFunction
private final WrappedArgumentType<Integer> maxValue
private final WrappedArgumentType<RelativeInteger> maxValue
private final WrappedArgumentType<Integer> minValue
private final WrappedArgumentType<RelativeInteger> minValue
private final BiFunction<Integer, Integer, Integer> operationFunction
private final WrappedArgumentType<Float> pitch
private final WrappedArgumentType<Float> roll
private final String stringRepresentation
private final String stringRepresentation
private final WrappedArgumentType<Integer> thickness
var1
ServerAuthManager var10
int var10
String var11
int var11
ProfileServiceClient var12
int var12
var2
String var2
PlayerRef var3
var3
World var3
ArgTypes.IntegerComparisonOperator var3
ArgTypes.IntegerOperation var3
RelativeInteger var3
String var3
String var3
var3
var3
BlockMask var3
String var3
Set var3
String var3
Throwable var4
PlayerRef var4
World var4
RelativeInteger var4
long var4
int var4
BlockFilter.ParsedFilterParts var4
String var4
List var4
Collection var5
Collection var5
String var5
Universe var5
int var5
int var5
String var5
var5
var5
double var5
PlayerRef var6
PlayerRef var6
Collection var6
Ref var6
int var6
int var6
String var6
String var6
var6
var6
Vector3d var6
CompletableFuture var7
var7
var7
Iterator var7
int var7
String var7
String var8
int var8
int var8
String var8
String var8
UUID var9
var9
int var9
private final WrappedArgumentType<Integer> weight
private final WrappedArgumentType<Integer> xValue
private final WrappedArgumentType<Integer> xValue
private final WrappedArgumentType<RelativeInteger> xValue
private final WrappedArgumentType<IntCoord> xValue
private final WrappedArgumentType<Coord> xValue
private final WrappedArgumentType<IntCoord> xValue
private final WrappedArgumentType<Integer> yValue
private final WrappedArgumentType<RelativeInteger> yValue
private final WrappedArgumentType<IntCoord> yValue
private final WrappedArgumentType<Coord> yValue
private final WrappedArgumentType<Float> yaw
private final WrappedArgumentType<Integer> zValue
private final WrappedArgumentType<Integer> zValue
private final WrappedArgumentType<RelativeInteger> zValue
private final WrappedArgumentType<IntCoord> zValue
private final WrappedArgumentType<Coord> zValue
private final WrappedArgumentType<IntCoord> zValue

Методы (94)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("Player not found: " + var1)
IntegerComparisonOperator IntegerComparisonOperator(BiFunction<Integer, Integer, Boolean> nullxx, String nullxxx)
IntegerOperation IntegerOperation(@Nonnull final BiFunction<Integer, Integer, Integer> nullxx, @Nonnull final String nullxxx)
public boolean comparepublic boolean compare(int var1, int var2)
for for(String var20 : ArgTypes.MASK_PREFIXES)
for for(String var19 : ArgTypes.MASK_INVERT_PREFIXES)
for for(String var10 : ArgTypes.MASK_INVERT_PREFIXES)
for for(String var22 : ArgTypes.MASK_PREFIXES)
for for(String var6 : var3)
public static ArgTypes.IntegerComparisonOperator getFromStringRepresentationpublic static ArgTypes.IntegerComparisonOperator getFromStringRepresentation(String var0)
public static ArgTypes.IntegerOperation getFromStringRepresentationpublic static ArgTypes.IntegerOperation getFromStringRepresentation(@Nonnull String var0)
public String getStringRepresentationpublic String getStringRepresentation()
public String getStringRepresentationpublic String getStringRepresentation()
public int getSuggestionValueCountpublic int getSuggestionValueCount()
public int getSuggestionValueCountpublic int getSuggestionValueCount()
if if(var6 != null)
if if(var6 != null)
if if(var11 == null)
if if(var9 != null)
if if(var4 instanceof IllegalStateException)
if if(var3 != null)
if if(var3 == null)
if if(var4 != null)
if if(var3 == null)
if if(var4 != null)
if if(var3 == null)
if if(var3 == null)
if if(var3 != null && var4 != null)
if if(var4 != -1)
if if(var5 != -1)
if if(var6 == Integer.MIN_VALUE)
if if(var5 >= 0)
if if(var8 < 0)
if if(var5 <= 0.0)
if if(var0 instanceof PlayerRef var5)
static boolean isExactBlockTypeKeyboolean isExactBlockTypeKey(@Nonnull String var0)
public boolean isGreedyStringpublic boolean isGreedyString()
public int operatepublic int operate(int var1, int var2)
public Boolean parsepublic Boolean parse(String var1, ParseResult var2)
public Integer parsepublic Integer parse(@Nonnull String var1, ParseResult var2)
public String parsepublic String parse(String var1, ParseResult var2)
public String parsepublic String parse(String var1, ParseResult var2)
public Float parsepublic Float parse(@Nonnull String var1, ParseResult var2)
public Double parsepublic Double parse(@Nonnull String var1, ParseResult var2)
public UUID parsepublic UUID parse(@Nonnull String var1, ParseResult var2)
public UUID parsepublic UUID parse(@Nonnull String var1, @Nonnull ParseResult var2)
public CompletableFuture<ProfileServiceClient.PublicGameProfile> parsepublic CompletableFuture<ProfileServiceClient.PublicGameProfile> parse(@Nonnull String var1, @Nonnull ParseResult var2)
public ProfileServiceClient.PublicGameProfile parsepublic ProfileServiceClient.PublicGameProfile parse(@Nonnull String var1, @Nonnull ParseResult var2)
public Coord parsepublic Coord parse(@Nonnull String var1, ParseResult var2)
public IntCoord parsepublic IntCoord parse(@Nonnull String var1, ParseResult var2)
public RelativeInteger parsepublic RelativeInteger parse(@Nonnull String var1, @Nonnull ParseResult var2)
public RelativeFloat parsepublic RelativeFloat parse(@Nonnull String var1, @Nonnull ParseResult var2)
public PlayerRef parsepublic PlayerRef parse(@Nonnull String var1, @Nonnull ParseResult var2)
public World parsepublic World parse(@Nonnull String var1, @Nonnull ParseResult var2)
public ArgTypes.IntegerComparisonOperator parsepublic ArgTypes.IntegerComparisonOperator parse(String var1, @Nonnull ParseResult var2)
public ArgTypes.IntegerOperation parsepublic ArgTypes.IntegerOperation parse(String var1, @Nonnull ParseResult var2)
public Pair<Integer, Integer> parsepublic Pair<Integer, Integer> parse(@Nonnull MultiArgumentContext var1, @Nonnull ParseResult var2)
public RelativeIntegerRange parsepublic RelativeIntegerRange parse(@Nonnull MultiArgumentContext var1, @Nonnull ParseResult var2)
public Vector2i parsepublic Vector2i parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public Vector3i parsepublic Vector3i parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public RelativeVector3i parsepublic RelativeVector3i parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public RelativeIntPosition parsepublic RelativeIntPosition parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public RelativeDoublePosition parsepublic RelativeDoublePosition parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public RelativeChunkPosition parsepublic RelativeChunkPosition parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public Rotation3fc parsepublic Rotation3fc parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public String parsepublic String parse(@Nonnull String var1, @Nonnull ParseResult var2)
public Integer parsepublic Integer parse(@Nonnull String var1, @Nonnull ParseResult var2)
public Pair<Integer, String> parsepublic Pair<Integer, String> parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public Pair<Integer, String> parsepublic Pair<Integer, String> parse(@Nonnull MultiArgumentContext var1, ParseResult var2)
public String parsepublic String parse(@Nonnull String var1, @Nonnull ParseResult var2)
public BlockMask parsepublic BlockMask parse(@Nonnull String var1, @Nonnull ParseResult var2)
public Integer parsepublic Integer parse(@Nonnull String var1, @Nonnull ParseResult var2)
public Integer processInputpublic Integer processInput(String var1)
public BlockPattern processInputpublic BlockPattern processInput(@Nonnull List<String> var1)
public BlockMask processInputpublic BlockMask processInput(@Nonnull List<BlockMask> var1)
public PlayerRef processedGetpublic PlayerRef processedGet(CommandSender var1, @Nonnull CommandContext var2, Argument<?, PlayerRef> var3)
public World processedGetpublic World processedGet(CommandSender var1, @Nonnull CommandContext var2, @Nonnull Argument<?, World> var3)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
static void suggestBlockTypeKeysvoid suggestBlockTypeKeys(@Nonnull String var0, @Nonnull String var1, @Nonnull SuggestionResult var2)
static void suggestOnlinePlayersvoid suggestOnlinePlayers(@Nonnull CommandSender var0, @Nonnull String var1, @Nonnull SuggestionResult var2)
static void suggestPositionvoid suggestPosition(@Nonnull CommandSender var0, @Nonnull String var1, @Nonnull SuggestionResult var2, @Nonnull String var3, @Nonnull Function<Vector3d, String> var4)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.system.arguments.types;

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Rotation3fc;
class="kw">import com.hypixel.hytale.protocol.GameMode;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.NameMatching;
class="kw">import com.hypixel.hytale.server.core.asset.type.ambiencefx.config.AmbienceFX;
class="kw">import com.hypixel.hytale.server.core.asset.type.audiostate.config.AudioState;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.entityeffect.config.EntityEffect;
class="kw">import com.hypixel.hytale.server.core.asset.type.environment.config.Environment;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.ModelAsset;
class="kw">import com.hypixel.hytale.server.core.asset.type.musiccontainer.config.MusicContainer;
class="kw">import com.hypixel.hytale.server.core.asset.type.particle.config.ParticleSystem;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEvent;
class="kw">import com.hypixel.hytale.server.core.asset.type.weather.config.Weather;
class="kw">import com.hypixel.hytale.server.core.auth.AuthCredentialStoreProvider;
class="kw">import com.hypixel.hytale.server.core.auth.ProfileServiceClient;
class="kw">import com.hypixel.hytale.server.core.auth.ServerAuthManager;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandSender;
class="kw">import com.hypixel.hytale.server.core.command.system.ParseResult;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.ArgWrapper;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.Argument;
class="kw">import com.hypixel.hytale.server.core.command.system.exceptions.GeneralCommandException;
class="kw">import com.hypixel.hytale.server.core.command.system.suggestion.SuggestionResult;
class="kw">import com.hypixel.hytale.server.core.command.system.suggestion.SuggestionUtil;
class="kw">import com.hypixel.hytale.server.core.modules.entity.hitboxcollision.HitboxCollisionConfig;
class="kw">import com.hypixel.hytale.server.core.modules.entity.repulsion.RepulsionConfig;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockFilter;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockMask;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockPattern;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.provider.IChunkStorageProvider;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldgen.provider.IWorldGenProvider;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldmap.provider.IWorldMapProvider;
class="kw">import it.unimi.dsi.fastutil.Pair;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Collection;
class="kw">import java.util.Iterator;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.function.BiFunction;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector2i;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class="kw">final class ArgTypes {
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Boolean> BOOLEAN = new SingleArgumentType<Boolean>(
      "server.commands.parsing.argtype.boolean.name", "server.commands.parsing.argtype.boolean.usage", "true", "false"
   ) {
      class="kw">private class="kw">static class="kw">final String TRUE_STRING = "true";
      class="kw">private class="kw">static class="kw">final String FALSE_STRING = "false";

      @Nonnull
      class="kw">public Boolean parse(String var1, ParseResult var2) {
         class="kw">return Boolean.parseBoolean(var1);
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         var2 = var2.toLowerCase(Locale.ROOT);
         if ("false".startsWith(var2)) {
            var4.suggest("false");
            var4.suggest("true");
         } else {
            var4.suggest("true");
            var4.suggest("false");
         }
      }

      @Override
      class="kw">public int getSuggestionValueCount() {
         class="kw">return 2;
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Integer> INTEGER = new SingleArgumentType<Integer>(
      "server.commands.parsing.argtype.integer.name", "server.commands.parsing.argtype.integer.usage", "-27432", "-1", "0", "1", "56346"
   ) {
      @Nullable
      class="kw">public Integer parse(@Nonnull String var1, ParseResult var2) {
         try {
            class="kw">return Integer.parseInt(var1);
         } catch (NumberFormatException var4) {
            var2.fail(Message.translation("server.commands.parsing.argtype.integer.fail").param("input", var1));
            class="kw">return null;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> STRING = new SingleArgumentType<String>(
      "server.commands.parsing.argtype.string.name",
      "server.commands.parsing.argtype.string.usage",
      "\"Hytale is really cool!\"",
      "\"Numbers work 2!\"",
      "\"If you can type it...\""
   ) {
      class="kw">public String parse(String var1, ParseResult var2) {
         class="kw">return var1;
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> GREEDY_STRING = new SingleArgumentType<String>(
      "server.commands.parsing.argtype.greedystring.name",
      "server.commands.parsing.argtype.greedystring.usage",
      "Hello world!",
      "Let's go everyone",
      "This is a multi-word sentence."
   ) {
      class="kw">public String parse(String var1, ParseResult var2) {
         class="kw">return var1;
      }

      @Override
      class="kw">public boolean isGreedyString() {
         class="kw">return true;
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Float> FLOAT = new SingleArgumentType<Float>(
      "server.commands.parsing.argtype.float.name", "server.commands.parsing.argtype.float.usage", "3.14159", "-2.5", "7"
   ) {
      @Nullable
      class="kw">public Float parse(@Nonnull String var1, ParseResult var2) {
         try {
            class="kw">return Float.parseFloat(var1);
         } catch (NumberFormatException var4) {
            var2.fail(Message.translation("server.commands.parsing.argtype.float.fail").param("input", var1));
            class="kw">return null;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Double> DOUBLE = new SingleArgumentType<Double>(
      "server.commands.parsing.argtype.double.name", "server.commands.parsing.argtype.double.usage", "-3.14", "0.0", "3.141596"
   ) {
      @Nullable
      class="kw">public Double parse(@Nonnull String var1, ParseResult var2) {
         try {
            class="kw">return Double.parseDouble(var1);
         } catch (NumberFormatException var4) {
            var2.fail(Message.translation("server.commands.parsing.argtype.double.fail").param("input", var1));
            class="kw">return null;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<UUID> UUID = new SingleArgumentType<UUID>(
      "server.commands.parsing.argtype.uuid.name", "server.commands.parsing.argtype.uuid.usage", java.util.UUID.randomUUID().toString()
   ) {
      @Nullable
      class="kw">public UUID parse(@Nonnull String var1, ParseResult var2) {
         try {
            class="kw">return java.util.UUID.fromString(var1);
         } catch (IllegalArgumentException var4) {
            var2.fail(Message.translation("server.commands.parsing.argtype.uuid.fail").param("input", var1));
            class="kw">return null;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<UUID> PLAYER_UUID = new SingleArgumentType<UUID>(
      "server.commands.parsing.argtype.playerUuid.name",
      "server.commands.parsing.argtype.playerUuid.usage",
      java.util.UUID.randomUUID().toString(),
      "john_doe",
      "user123"
   ) {
      @Nullable
      class="kw">public UUID parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         try {
            class="kw">return java.util.UUID.fromString(var1);
         } catch (IllegalArgumentException var7) {
            for (World var4 : Universe.get().getWorlds().values()) {
               Collection var5 = var4.getPlayerRefs();
               PlayerRef var6 = NameMatching.DEFAULT.find(var5, var1, PlayerRef::getUsername);
               if (var6 != null) {
                  class="kw">return var6.getUuid();
               }
            }

            var2.fail(Message.translation("server.commands.parsing.argtype.playerUuid.fail").param("input", var1));
            class="kw">return null;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<CompletableFuture<ProfileServiceClient.PublicGameProfile>> GAME_PROFILE_LOOKUP_ASYNC = new SingleArgumentType<CompletableFuture<ProfileServiceClient.PublicGameProfile>>(
      "server.commands.parsing.argtype.playerUuidLookup.name",
      "server.commands.parsing.argtype.playerUuidLookup.usage",
      java.util.UUID.randomUUID().toString(),
      "john_doe",
      "user123"
   ) {
      @Nullable
      class="kw">public CompletableFuture<ProfileServiceClient.PublicGameProfile> parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         for (World var4 : Universe.get().getWorlds().values()) {
            Collection var5 = var4.getPlayerRefs();
            PlayerRef var6 = NameMatching.DEFAULT.find(var5, var1, PlayerRef::getUsername);
            if (var6 != null) {
               class="kw">return CompletableFuture.completedFuture(new ProfileServiceClient.PublicGameProfile(var6.getUuid(), var6.getUsername()));
            }
         }

         UUID var9 = null;

         try {
            var9 = java.util.UUID.fromString(var1);
         } catch (IllegalArgumentException var8) {
         }

         ServerAuthManager var10 = ServerAuthManager.getInstance();
         String var11 = var10.getSessionToken();
         if (var11 == null) {
            class="kw">return CompletableFuture.failedFuture(new IllegalStateException("No session token available for profile lookup"));
         }

         ProfileServiceClient var12 = var10.getProfileServiceClient();
         CompletableFuture var7;
         if (var9 != null) {
            var7 = var12.getProfileByUuidAsync(var9, var11);
         } else {
            var7 = var12.getProfileByUsernameAsync(var1, var11);
         }

         class="kw">return var7.thenApply(var1x -> {
            if (var1x != null && var1x.getUuid() != null) {
               class="kw">return (ProfileServiceClient.PublicGameProfile)var1x;
            } else {
               throw new IllegalArgumentException("Player not found: " + var1);
            }
         });
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<ProfileServiceClient.PublicGameProfile> GAME_PROFILE_LOOKUP = new SingleArgumentType<ProfileServiceClient.PublicGameProfile>(
      "server.commands.parsing.argtype.playerUuidLookup.name",
      "server.commands.parsing.argtype.playerUuidLookup.usage",
      java.util.UUID.randomUUID().toString(),
      "john_doe",
      "user123"
   ) {
      @Nullable
      class="kw">public ProfileServiceClient.PublicGameProfile parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         try {
            class="kw">return ArgTypes.GAME_PROFILE_LOOKUP_ASYNC.parse(var1, var2).join();
         } catch (Exception var5) {
            Throwable var4 = var5.getCause() != null ? var5.getCause() : var5;
            if (var4 class="kw">instanceof IllegalStateException) {
               var2.fail(Message.translation("server.commands.parsing.argtype.playerUuidLookup.noAuth").param("input", var1));
            } else if (var4 class="kw">instanceof IllegalArgumentException) {
               var2.fail(Message.translation("server.commands.parsing.argtype.playerUuidLookup.notFound").param("input", var1));
            } else {
               var2.fail(
                  Message.translation("server.commands.parsing.argtype.playerUuidLookup.lookupError")
                     .param("input", var1)
                     .param("error", var4.getMessage() != null ? var4.getMessage() : var4.getClass().getSimpleName())
               );
            }

            class="kw">return null;
         }
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         ArgTypes.suggestOnlinePlayers(var1, var2, var4);
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Coord> RELATIVE_DOUBLE_COORD = new SingleArgumentType<Coord>(
      "server.commands.parsing.argtype.doubleCoordinate.name", "server.commands.parsing.argtype.doubleCoordinate.usage", "5.0", "~-2.3", "0.0"
   ) {
      @Nullable
      class="kw">public Coord parse(@Nonnull String var1, ParseResult var2) {
         try {
            class="kw">return Coord.parse(var1);
         } catch (NumberFormatException var4) {
            var2.fail(Message.translation("server.commands.parsing.argtype.doubleCoordinate.fail").param("input", var1));
            class="kw">return null;
         }
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         if (var2.isEmpty() || var2.startsWith("~")) {
            var4.suggest("~");
         }
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<IntCoord> RELATIVE_INT_COORD = (new SingleArgumentType<IntCoord>(
         "server.commands.parsing.argtype.integerCoordinate.name", "server.commands.parsing.argtype.integerCoordinate.usage", "5", "~-2", "0"
      ) {
         @Nullable
         class="kw">public IntCoord parse(@Nonnull String var1, ParseResult var2) {
            try {
               class="kw">return IntCoord.parse(var1);
            } catch (NumberFormatException var4) {
               var2.fail(Message.translation("server.commands.parsing.argtype.integerCoordinate.fail").param("input", var1));
               class="kw">return null;
            }
         }

         @Override
         class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
            if (var2.isEmpty() || var2.startsWith("~")) {
               var4.suggest("~");
            }
         }
      })
      .withSharedSuggestions(RELATIVE_DOUBLE_COORD);
   class="kw">public class="kw">static class="kw">final SingleArgumentType<RelativeInteger> RELATIVE_INTEGER = new SingleArgumentType<RelativeInteger>(
      "Relative Integer", "A tilde to mark an integer as relative to a base", "5", "~-2", "0"
   ) {
      @Nullable
      class="kw">public RelativeInteger parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         class="kw">return RelativeInteger.parse(var1, var2);
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<RelativeFloat> RELATIVE_FLOAT = (new SingleArgumentType<RelativeFloat>(
         "server.commands.parsing.argtype.relativeFloat.name", "server.commands.parsing.argtype.relativeFloat.usage", "90.0", "~-45.5", "~"
      ) {
         @Nullable
         class="kw">public RelativeFloat parse(@Nonnull String var1, @Nonnull ParseResult var2) {
            class="kw">return RelativeFloat.parse(var1, var2);
         }

         @Override
         class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
            if (var2.isEmpty() || var2.startsWith("~")) {
               var4.suggest("~");
            }
         }
      })
      .withSharedSuggestions(RELATIVE_DOUBLE_COORD);
   class="kw">public class="kw">static class="kw">final SingleArgumentType<PlayerRef> PLAYER_REF = (new SingleArgumentType<PlayerRef>(
         "server.commands.parsing.argtype.player.name", "server.commands.parsing.argtype.player.usage", "john_doe", "user123"
      ) {
         @Nullable
         class="kw">public PlayerRef parse(@Nonnull String var1, @Nonnull ParseResult var2) {
            PlayerRef var3 = null;

            for (World var5 : Universe.get().getWorlds().values()) {
               Collection var6 = var5.getPlayerRefs();
               var3 = NameMatching.DEFAULT.find(var6, var1, PlayerRef::getUsername);
               if (var3 != null) {
                  break;
               }
            }

            if (var3 == null) {
               var2.fail(Message.translation("server.commands.errors.noSuchPlayer").param("username", var1));
               class="kw">return null;
            } else {
               class="kw">return var3;
            }
         }

         @Override
         class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
            ArgTypes.suggestOnlinePlayers(var1, var2, var4);
         }

         @Nonnull
         class="kw">public PlayerRef processedGet(CommandSender var1, @Nonnull CommandContext var2, Argument<?, PlayerRef> var3) {
            PlayerRef var4 = var2.get(var3);
            if (var4 != null) {
               class="kw">return var4;
            } else if (var1 class="kw">instanceof PlayerRef var5) {
               class="kw">return var5;
            } else {
               throw new GeneralCommandException(Message.translation("server.commands.errors.playerOrArg").param("option", "player"));
            }
         }
      })
      .withSharedSuggestions(GAME_PROFILE_LOOKUP);
   class="kw">public class="kw">static class="kw">final SingleArgumentType<World> WORLD = new SingleArgumentType<World>(
      "server.commands.parsing.argtype.world.name", "server.commands.parsing.argtype.world.usage", "class="kw">default"
   ) {
      @Nullable
      class="kw">public World parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         World var3 = Universe.get().getWorld(var1);
         if (var3 == null) {
            var2.fail(Message.translation("server.commands.errors.noSuchWorld").param("name", var1));
            class="kw">return null;
         } else {
            class="kw">return var3;
         }
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         String var5 = var2.toLowerCase(Locale.ROOT);

         for (World var7 : Universe.get().getWorlds().values()) {
            String var8 = var7.getName();
            if (var8 != null && var8.toLowerCase(Locale.ROOT).startsWith(var5)) {
               var4.suggest(var8);
            }
         }
      }

      @Nullable
      class="kw">public World processedGet(CommandSender var1, @Nonnull CommandContext var2, @Nonnull Argument<?, World> var3) {
         World var4 = var3.get(var2);
         if (var4 != null) {
            class="kw">return var4;
         }

         Universe var5 = Universe.get();
         if (var2.isPlayer()) {
            Ref var6 = var2.senderAsPlayerRef();
            if (var6 != null && var6.isValid()) {
               class="kw">return var6.getStore().getExternalData().getWorld();
            }
         }

         if (var5.getWorlds().size() == 1) {
            Iterator var7 = var5.getWorlds().values().iterator();
            if (var7.hasNext()) {
               class="kw">return var7.next();
            }
         }

         throw new GeneralCommandException(Message.translation("server.commands.errors.playerOrArg").param("option", "world"));
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<ModelAsset> MODEL_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.model.name", ModelAsset.class, "server.commands.parsing.argtype.asset.model.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Weather> WEATHER_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.weather.name", Weather.class, "server.commands.parsing.argtype.asset.weather.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Interaction> INTERACTION_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.interaction.name", Interaction.class, "server.commands.parsing.argtype.asset.interaction.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<RootInteraction> ROOT_INTERACTION_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.rootinteraction.name", RootInteraction.class, "server.commands.parsing.argtype.asset.interaction.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<EntityEffect> EFFECT_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.effect.name", EntityEffect.class, "server.commands.parsing.argtype.asset.effect.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Environment> ENVIRONMENT_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.environment.name", Environment.class, "server.commands.parsing.argtype.asset.environment.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Item> ITEM_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.item.name", Item.class, "server.commands.parsing.argtype.asset.item.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<BlockType> BLOCK_TYPE_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.blocktype.name", BlockType.class, "server.commands.parsing.argtype.asset.blocktype.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<ParticleSystem> PARTICLE_SYSTEM = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.particlesystem.name", ParticleSystem.class, "server.commands.parsing.argtype.asset.particlesystem.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<HitboxCollisionConfig> HITBOX_COLLISION_CONFIG = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.hitboxcollisionconfig.name",
      HitboxCollisionConfig.class,
      "server.commands.parsing.argtype.asset.hitboxcollisionconfig.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<RepulsionConfig> REPULSION_CONFIG = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.repulsionconfig.name", RepulsionConfig.class, "server.commands.parsing.argtype.asset.repulsionconfig.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<SoundEvent> SOUND_EVENT_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.soundevent.name", SoundEvent.class, "server.commands.parsing.argtype.asset.soundevent.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<AmbienceFX> AMBIENCE_FX_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.ambiencefx.name", AmbienceFX.class, "server.commands.parsing.argtype.asset.ambiencefx.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<MusicContainer> MUSIC_CONTAINER_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.musiccontainer.name", MusicContainer.class, "server.commands.parsing.argtype.asset.musiccontainer.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<AudioState> AUDIO_STATE_ASSET = new AssetArgumentType(
      "server.commands.parsing.argtype.asset.audiostate.name", AudioState.class, "server.commands.parsing.argtype.asset.audiostate.usage"
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<SoundCategory> SOUND_CATEGORY = forEnum("server.commands.parsing.argtype.soundcategory.name", SoundCategory.class);
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> WORLD_GEN_PROVIDER_KEY = new CodecKeyArgumentType(
      "server.commands.parsing.argtype.worldgenprovider.name", "server.commands.parsing.argtype.worldgenprovider.usage", IWorldGenProvider.CODEC
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> WORLD_MAP_PROVIDER_KEY = new CodecKeyArgumentType(
      "server.commands.parsing.argtype.worldmapprovider.name", "server.commands.parsing.argtype.worldmapprovider.usage", IWorldMapProvider.CODEC
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> CHUNK_STORAGE_PROVIDER_KEY = new CodecKeyArgumentType(
      "server.commands.parsing.argtype.chunkstorageprovider.name", "server.commands.parsing.argtype.chunkstorageprovider.usage", IChunkStorageProvider.CODEC
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> AUTH_STORE_PROVIDER_KEY = new CodecKeyArgumentType(
      "server.commands.parsing.argtype.authstoreprovider.name", "server.commands.parsing.argtype.authstoreprovider.usage", AuthCredentialStoreProvider.CODEC
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> WORLD_GEN_PROVIDER_KEY_OR_DEFAULT = new CodecKeyArgumentType(
      "server.commands.parsing.argtype.worldgenprovider.name",
      "server.commands.parsing.argtype.worldgenprovider.usage",
      IWorldGenProvider.CODEC,
      Set.of("class="kw">default")
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> CHUNK_STORAGE_PROVIDER_KEY_OR_DEFAULT = new CodecKeyArgumentType(
      "server.commands.parsing.argtype.chunkstorageprovider.name",
      "server.commands.parsing.argtype.chunkstorageprovider.usage",
      IChunkStorageProvider.CODEC,
      Set.of("class="kw">default")
   );
   class="kw">public class="kw">static class="kw">final ArgWrapper<EntityWrappedArg, UUID> ENTITY_ID = new ArgWrapper<>(
      UUID.withOverriddenUsage("server.commands.parsing.argtype.entityid.usage"), EntityWrappedArg::new
   );
   class="kw">public class="kw">static class="kw">final SingleArgumentType<ArgTypes.IntegerComparisonOperator> INTEGER_COMPARISON_OPERATOR = new SingleArgumentType<ArgTypes.IntegerComparisonOperator>(
      "Integer Comparison Operator", "A mathematical sign for integer comparison", ">", "<", ">=", "<=", "%", "=", "!="
   ) {
      @Nullable
      class="kw">public ArgTypes.IntegerComparisonOperator parse(String var1, @Nonnull ParseResult var2) {
         ArgTypes.IntegerComparisonOperator var3 = ArgTypes.IntegerComparisonOperator.getFromStringRepresentation(var1);
         if (var3 == null) {
            var2.fail(Message.raw("Could not find an integer comparison operator for value: '" + var1 + "'."));
            class="kw">return null;
         } else {
            class="kw">return var3;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<ArgTypes.IntegerOperation> INTEGER_OPERATION = new SingleArgumentType<ArgTypes.IntegerOperation>(
      "Integer Operator", "A mathematical sign for performing an operation", "+", "-", "*", "/", "%", "="
   ) {
      @Nullable
      class="kw">public ArgTypes.IntegerOperation parse(String var1, @Nonnull ParseResult var2) {
         ArgTypes.IntegerOperation var3 = ArgTypes.IntegerOperation.getFromStringRepresentation(var1);
         if (var3 == null) {
            var2.fail(Message.raw("Could not find an integer operator for value: '" + var1 + "'."));
            class="kw">return null;
         } else {
            class="kw">return var3;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<Pair<Integer, Integer>> INT_RANGE = new MultiArgumentType<Pair<Integer, Integer>>(
      "Integer Range", "Two integers representing a minimum and maximum of a range", "-2 8", "5 5", "1 5"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<Integer> minValue = this.withParameter(
         "min", "Minimum value, must be less than or equal to max value", ArgTypes.INTEGER
      );
      class="kw">private class="kw">final WrappedArgumentType<Integer> maxValue = this.withParameter(
         "max", "Maximum value, must be greater than or equal to min value", ArgTypes.INTEGER
      );

      @Nullable
      class="kw">public Pair<Integer, Integer> parse(@Nonnull MultiArgumentContext var1, @Nonnull ParseResult var2) {
         if (var1.get(this.minValue) > var1.get(this.maxValue)) {
            var2.fail(
               Message.raw(
                  "You cannot set the minimum value as larger than the maximum value. Min: " + var1.get(this.minValue) + " Max: " + var1.get(this.maxValue)
               )
            );
            class="kw">return null;
         } else {
            class="kw">return Pair.of(var1.get(this.minValue), var1.get(this.maxValue));
         }
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<RelativeIntegerRange> RELATIVE_INT_RANGE = new MultiArgumentType<RelativeIntegerRange>(
      "Integer Range", "Two integers representing a minimum and maximum of a range", "~-2 ~8", "~5 ~5", "~1 ~5"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<RelativeInteger> minValue = this.withParameter(
         "min", "Minimum value, must be less than or equal to max value", ArgTypes.RELATIVE_INTEGER
      );
      class="kw">private class="kw">final WrappedArgumentType<RelativeInteger> maxValue = this.withParameter(
         "max", "Maximum value, must be greater than or equal to min value", ArgTypes.RELATIVE_INTEGER
      );

      @Nullable
      class="kw">public RelativeIntegerRange parse(@Nonnull MultiArgumentContext var1, @Nonnull ParseResult var2) {
         RelativeInteger var3 = this.minValue.get(var1);
         RelativeInteger var4 = this.maxValue.get(var1);
         if (var3 != null && var4 != null) {
            if (var3.isRelative() != var4.isRelative()) {
               var2.fail(Message.raw("Your range must have both min and max as relative, or both as not relative. You can not mix relatives in ranges."));
               class="kw">return null;
            } else if (var3.getRawValue() > var4.getRawValue()) {
               var2.fail(
                  Message.raw(
                     "You cannot set the minimum value as larger than the maximum value. Min: " + var1.get(this.minValue) + " Max: " + var1.get(this.maxValue)
                  )
               );
               class="kw">return null;
            } else {
               class="kw">return new RelativeIntegerRange(var1.get(this.minValue), var1.get(this.maxValue));
            }
         } else {
            var2.fail(Message.raw("Could not parse min or max value of the range."));
            class="kw">return null;
         }
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<Vector2i> VECTOR2I = new MultiArgumentType<Vector2i>(
      "Integer Vector 2D", "Two integers, generally corresponding to x/z axis", "124 232", "5 -3", "1 1"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<Integer> xValue = this.withParameter("x", "X value", ArgTypes.INTEGER);
      class="kw">private class="kw">final WrappedArgumentType<Integer> zValue = this.withParameter("z", "Z value", ArgTypes.INTEGER);

      @Nonnull
      class="kw">public Vector2i parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return new Vector2i(var1.get(this.xValue), var1.get(this.zValue));
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<Vector3i> VECTOR3I = new MultiArgumentType<Vector3i>(
      "Integer Vector", "Three integers, generally corresponding to x/y/z axis", "124 232 234", "5 0 -3", "1 1 1"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<Integer> xValue = this.withParameter("x", "X value", ArgTypes.INTEGER);
      class="kw">private class="kw">final WrappedArgumentType<Integer> yValue = this.withParameter("y", "Y value", ArgTypes.INTEGER);
      class="kw">private class="kw">final WrappedArgumentType<Integer> zValue = this.withParameter("z", "Z value", ArgTypes.INTEGER);

      @Nonnull
      class="kw">public Vector3i parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return new Vector3i(var1.get(this.xValue), var1.get(this.yValue), var1.get(this.zValue));
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<RelativeVector3i> RELATIVE_VECTOR3I = new MultiArgumentType<RelativeVector3i>(
      "Relative Integer Vector", "Three optionally relative integers, generally corresponding to x/y/z axis", "124 ~232 234", "~5 0 ~-3", "1 ~1 1"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<RelativeInteger> xValue = this.withParameter("x", "X value", ArgTypes.RELATIVE_INTEGER);
      class="kw">private class="kw">final WrappedArgumentType<RelativeInteger> yValue = this.withParameter("y", "Y value", ArgTypes.RELATIVE_INTEGER);
      class="kw">private class="kw">final WrappedArgumentType<RelativeInteger> zValue = this.withParameter("z", "Z value", ArgTypes.RELATIVE_INTEGER);

      @Nonnull
      class="kw">public RelativeVector3i parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return new RelativeVector3i(var1.get(this.xValue), var1.get(this.yValue), var1.get(this.zValue));
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<RelativeIntPosition> RELATIVE_BLOCK_POSITION = new MultiArgumentType<RelativeIntPosition>(
      "server.commands.parsing.argtype.relativeBlockPosition.name",
      "server.commands.parsing.argtype.relativeBlockPosition.usage",
      "124 232 234",
      "~5 ~ ~-3",
      "~ ~ ~"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<IntCoord> xValue = this.withParameter("x", "server.commands.parsing.argtype.xCoord.usage", ArgTypes.RELATIVE_INT_COORD);
      class="kw">private class="kw">final WrappedArgumentType<IntCoord> yValue = this.withParameter("y", "server.commands.parsing.argtype.yCoord.usage", ArgTypes.RELATIVE_INT_COORD);
      class="kw">private class="kw">final WrappedArgumentType<IntCoord> zValue = this.withParameter("z", "server.commands.parsing.argtype.zCoord.usage", ArgTypes.RELATIVE_INT_COORD);

      @Nonnull
      class="kw">public RelativeIntPosition parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return new RelativeIntPosition(var1.get(this.xValue), var1.get(this.yValue), var1.get(this.zValue));
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         ArgTypes.suggestPosition(var1, var2, var4, "~ ~ ~", var0 -> (int)Math.floor(var0.x) + " " + (int)Math.floor(var0.y) + " " + (int)Math.floor(var0.z));
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<RelativeDoublePosition> RELATIVE_POSITION = new MultiArgumentType<RelativeDoublePosition>(
      "server.commands.parsing.argtype.relativePosition.name",
      "server.commands.parsing.argtype.relativePosition.usage",
      "124.63 232.27 234.22",
      "~5.5 ~ ~",
      "~ ~ ~"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<Coord> xValue = this.withParameter("x", "server.commands.parsing.argtype.xCoord.usage", ArgTypes.RELATIVE_DOUBLE_COORD);
      class="kw">private class="kw">final WrappedArgumentType<Coord> yValue = this.withParameter("y", "server.commands.parsing.argtype.yCoord.usage", ArgTypes.RELATIVE_DOUBLE_COORD);
      class="kw">private class="kw">final WrappedArgumentType<Coord> zValue = this.withParameter("z", "server.commands.parsing.argtype.zCoord.usage", ArgTypes.RELATIVE_DOUBLE_COORD);

      @Nonnull
      class="kw">public RelativeDoublePosition parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return new RelativeDoublePosition(var1.get(this.xValue), var1.get(this.yValue), var1.get(this.zValue));
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         ArgTypes.suggestPosition(var1, var2, var4, "~ ~ ~", var0 -> String.format("%.2f %.2f %.2f", var0.x, var0.y, var0.z));
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<RelativeChunkPosition> RELATIVE_CHUNK_POSITION = new MultiArgumentType<RelativeChunkPosition>(
      "server.commands.parsing.argtype.relativeChunkPosition.name", "server.commands.parsing.argtype.relativeChunkPosition.usage", "5 10", "~c2 ~c-3", "~ ~"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<IntCoord> xValue = this.withParameter("x", "server.commands.parsing.argtype.xCoord.usage", ArgTypes.RELATIVE_INT_COORD);
      class="kw">private class="kw">final WrappedArgumentType<IntCoord> zValue = this.withParameter("z", "server.commands.parsing.argtype.zCoord.usage", ArgTypes.RELATIVE_INT_COORD);

      @Nonnull
      class="kw">public RelativeChunkPosition parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return new RelativeChunkPosition(var1.get(this.xValue), var1.get(this.zValue));
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         ArgTypes.suggestPosition(var1, var2, var4, "~ ~", var0 -> ((int)Math.floor(var0.x) >> 5) + " " + ((int)Math.floor(var0.z) >> 5));
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<Rotation3fc> ROTATION = new MultiArgumentType<Rotation3fc>(
      "server.commands.parsing.argtype.rotation.name", "server.commands.parsing.argtype.rotation.usage", "124.63 232.27 234.22"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<Float> pitch = this.withParameter(
         "server.commands.parsing.argtype.pitch.name", "server.commands.parsing.argtype.pitch.usage", ArgTypes.FLOAT
      );
      class="kw">private class="kw">final WrappedArgumentType<Float> yaw = this.withParameter(
         "server.commands.parsing.argtype.yaw.name", "server.commands.parsing.argtype.yaw.usage", ArgTypes.FLOAT
      );
      class="kw">private class="kw">final WrappedArgumentType<Float> roll = this.withParameter(
         "server.commands.parsing.argtype.roll.name", "server.commands.parsing.argtype.roll.usage", ArgTypes.FLOAT
      );

      @Nonnull
      class="kw">public Rotation3fc parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return new Rotation3f(var1.get(this.pitch), var1.get(this.yaw), var1.get(this.roll));
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<String> BLOCK_TYPE_KEY = new SingleArgumentType<String>("Block Type Key", "A block type", "Wood_Drywood_Planks_Half") {
      @Nullable
      class="kw">public String parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         try {
            class="kw">return var1;
         } catch (Exception var4) {
            var2.fail(Message.raw(var4.getMessage()));
            class="kw">return null;
         }
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         ArgTypes.suggestBlockTypeKeys(var2, "", var4);
      }

      @Override
      class="kw">public int getSuggestionValueCount() {
         class="kw">return BlockType.getAssetMap().getAssetMap().size();
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<Integer> BLOCK_ID = new ProcessedArgumentType<String, Integer>(
      "Block Id", Message.raw("A block type, converted to an int id"), BLOCK_TYPE_KEY, "Wood_Drywood_Planks_Half"
   ) {
      @Nonnull
      class="kw">public Integer processInput(String var1) {
         class="kw">return BlockType.getAssetMap().getIndex(var1);
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Integer> COLOR = new SingleArgumentType<Integer>(
      "server.commands.parsing.argtype.color.name", "server.commands.parsing.argtype.color.usage", "#FF0000", "#00FF00FF", "16711680", "0xFF0000"
   ) {
      @Nullable
      class="kw">public Integer parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         var1 = var1.trim();
         if (var1.isEmpty()) {
            var2.fail(Message.raw("Color cannot be empty"));
            class="kw">return null;
         }

         if (var1.charAt(0) == '#') {
            try {
               String var3 = var1.substring(1);
               long var4 = Long.parseLong(var3, 16);
               class="kw">switch (var3.length()) {
                  case 3:
                     int var6 = (int)(var4 >> 8 & 15L);
                     int var7 = (int)(var4 >> 4 & 15L);
                     int var8 = (int)(var4 & 15L);
                     class="kw">return 0xFF000000 | var6 << 20 | var6 << 16 | var7 << 12 | var7 << 8 | var8 << 4 | var8;
                  case 4:
                     int var9 = (int)(var4 >> 12 & 15L);
                     int var10 = (int)(var4 >> 8 & 15L);
                     int var11 = (int)(var4 >> 4 & 15L);
                     int var12 = (int)(var4 & 15L);
                     class="kw">return var9 << 28 | var9 << 24 | var10 << 20 | var10 << 16 | var11 << 12 | var11 << 8 | var12 << 4 | var12;
                  case 5:
                  case 7:
                  class="kw">default:
                     var2.fail(Message.raw("Invalid hex color format. Expected #RGB, #RGBA, #RRGGBB, or #RRGGBBAA, got: '" + var1 + "'"));
                     class="kw">return null;
                  case 6:
                     class="kw">return 0xFF000000 | (int)var4;
                  case 8:
                     class="kw">return (int)var4;
               }
            } catch (NumberFormatException var13) {
               var2.fail(Message.raw("Invalid hex color: '" + var1 + "'. " + var13.getMessage()));
               class="kw">return null;
            }
         } else if (var1.length() <= 2 || !var1.startsWith("0x") && !var1.startsWith("0X")) {
            try {
               class="kw">return Integer.parseInt(var1);
            } catch (NumberFormatException var15) {
               var2.fail(
                  Message.raw("Invalid color format. Expected hex color (#RRGGBB), hex integer (0xFF0000), or decimal integer (16711680), got: '" + var1 + "'")
               );
               class="kw">return null;
            }
         } else {
            try {
               class="kw">return Integer.parseUnsignedInt(var1.substring(2), 16);
            } catch (NumberFormatException var14) {
               var2.fail(Message.raw("Invalid hex integer color: '" + var1 + "'. " + var14.getMessage()));
               class="kw">return null;
            }
         }
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<Pair<Integer, String>> LAYER_ENTRY_TYPE = new MultiArgumentType<Pair<Integer, String>>(
      "Layer Entry Type", "A thickness for a corresponding block pattern", "1 Rock_Stone", "3 50%Rock_Basalt;50%Rock_Stone"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<Integer> thickness = this.withParameter("thickness", "How thick the layer should be", ArgTypes.INTEGER);
      class="kw">private class="kw">final WrappedArgumentType<String> blockPattern = this.withParameter(
         "blockPattern", "The block pattern to use for the layer. If using with percentages, separate values with a ';'", ArgTypes.STRING
      );

      @Nonnull
      class="kw">public Pair<Integer, String> parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return Pair.of(var1.get(this.thickness), var1.get(this.blockPattern));
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<Pair<Integer, String>> WEIGHTED_BLOCK_TYPE = new MultiArgumentType<Pair<Integer, String>>(
      "Weighted Block Type", "A weight corresponding to a blocktype", "5 Empty", "20 Rock_Stone", "2 Rock_Shale"
   ) {
      class="kw">private class="kw">final WrappedArgumentType<Integer> weight = this.withParameter(
         "weight", "The relative weight of this entry. Think of it as a lottery ticket", ArgTypes.INTEGER
      );
      class="kw">private class="kw">final WrappedArgumentType<String> blockType = this.withParameter(
         "blockType", "The BlockTypeKey associated with the weight", ArgTypes.BLOCK_TYPE_KEY
      );

      @Nonnull
      class="kw">public Pair<Integer, String> parse(@Nonnull MultiArgumentContext var1, ParseResult var2) {
         class="kw">return Pair.of(var1.get(this.weight), var1.get(this.blockType));
      }
   };
   class="kw">private class="kw">static class="kw">final ArgumentType<String> WEIGHTED_BLOCK_ENTRY = new SingleArgumentType<String>(
      "Weighted Block Entry", "A block with optional weight prefix (e.g., 20%Rock_Stone or Rock_Stone)", "Rock_Stone", "20%Rock_Stone", "50%Rock_Stone|Yaw=90"
   ) {
      @Nullable
      class="kw">public String parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         if (var1.isEmpty()) {
            var2.fail(Message.raw("Block entry cannot be empty"));
            class="kw">return null;
         }

         String var3 = var1;
         int var4 = var3.indexOf(37);
         if (var4 != -1) {
            var3 = var3.substring(var4 + 1);
         }

         int var5 = var3.indexOf(124);
         if (var5 != -1) {
            var3 = var3.substring(0, var5);
         }

         int var6 = BlockType.getAssetMap().getIndex(var3);
         if (var6 == Integer.MIN_VALUE) {
            var2.fail(Message.translation("server.builderTools.invalidBlockType").param("name", "").param("key", var3));
            class="kw">return null;
         } else {
            class="kw">return var1;
         }
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         int var5 = var2.indexOf(37);
         if (var5 >= 0) {
            String var6 = var2.substring(0, var5 + 1);
            String var7 = var2.substring(var5 + 1);
            int var8 = var7.indexOf(124);
            if (var8 < 0) {
               ArgTypes.suggestBlockTypeKeys(var7, var6, var4);
               if (!var7.isEmpty() && ArgTypes.isExactBlockTypeKey(var7)) {
                  var4.suggestContinuation(var2 + ",");
               }
            }
         } else if (!var2.isEmpty() && Character.isDigit(var2.charAt(0)) && var2.chars().allMatch(var0 -> Character.isDigit((char)var0) || var0 == 46)) {
            var4.suggestContinuation(var2 + "%");
         } else {
            ArgTypes.suggestBlockTypeKeys(var2, "", var4);
         }
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<BlockPattern> BLOCK_PATTERN = new ProcessedArgumentType<List<String>, BlockPattern>(
      "Block Pattern",
      Message.raw("A list of blocks with optional weights (e.g., [20%Rock_Stone, 80%Rock_Shale])"),
      new ListArgumentType<>(WEIGHTED_BLOCK_ENTRY),
      "[Rock_Stone]",
      "[20%Rock_Stone, 80%Rock_Shale]",
      "[50%Rock_Stone|Yaw=90, 50%Fluid_Water]"
   ) {
      @Nonnull
      class="kw">public BlockPattern processInput(@Nonnull List<String> var1) {
         String var2 = String.join(",", var1);
         class="kw">return BlockPattern.parse(var2);
      }
   };
   class="kw">private class="kw">static class="kw">final String[] MASK_PREFIXES = new String[]{"!", ">", "<", "~", "^", "#", "+n", "+e", "+s", "+w", "%xy", "%xz", "%zy"};
   class="kw">private class="kw">static class="kw">final String[] MASK_INVERT_PREFIXES = new String[]{"!>", "!<", "!~", "!^", "!#", "!+n", "!+e", "!+s", "!+w", "!%xy", "!%xz", "!%zy"};
   class="kw">private class="kw">static class="kw">final ArgumentType<BlockMask> INDIVIDUAL_BLOCK_MASK = new SingleArgumentType<BlockMask>(
      "Block Mask", "Create a block mask using symbols and block names", ">Grass_Full", "!Fluid_Water", "!^Fluid_Lava", "!#"
   ) {
      @Nullable
      class="kw">public BlockMask parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         try {
            BlockMask var3 = BlockMask.parse(var1);
            if (var3.hasInvalidBlocks()) {
               BlockFilter.ParsedFilterParts var4 = BlockFilter.parseComponents(var1);
               var2.fail(Message.translation("server.builderTools.invalidBlockType").param("key", var4.blocks()));
               class="kw">return null;
            } else {
               class="kw">return var3;
            }
         } catch (Exception var5) {
            var2.fail(Message.raw("There was an error in the parsing of your block mask: " + var1 + ", please try again."));
            class="kw">return null;
         }
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         if (var2.isEmpty()) {
            for (String var20 : ArgTypes.MASK_PREFIXES) {
               var4.suggest(var20);
            }
         } else if ("!".equals(var2)) {
            for (String var19 : ArgTypes.MASK_INVERT_PREFIXES) {
               var4.suggest(var19);
            }

            ArgTypes.suggestBlockTypeKeys(var2, "!", var4);
         } else {
            String var5 = var2;
            String var6 = "";

            for (String var10 : ArgTypes.MASK_INVERT_PREFIXES) {
               if (var5.startsWith(var10)) {
                  var6 = var10;
                  var5 = var5.substring(var10.length());
                  break;
               }
            }

            if (var6.isEmpty()) {
               for (String var22 : ArgTypes.MASK_PREFIXES) {
                  if (!var22.equals("#") && var5.startsWith(var22)) {
                     var6 = var22;
                     var5 = var5.substring(var22.length());
                     break;
                  }
               }
            }

            ArgTypes.suggestBlockTypeKeys(var5, var6, var4);
         }
      }
   };
   class="kw">public class="kw">static class="kw">final ArgumentType<BlockMask> BLOCK_MASK = new ProcessedArgumentType<List<BlockMask>, BlockMask>(
      "Block Mask",
      Message.raw("A list of block masks that combine together"),
      new ListArgumentType<>(INDIVIDUAL_BLOCK_MASK),
      "[!Fluid_Water, !^Fluid_Lava]",
      "[>Grass_Full, !#]"
   ) {
      class="kw">public BlockMask processInput(@Nonnull List<BlockMask> var1) {
         class="kw">return BlockMask.combine(var1.toArray(BlockMask[]::new));
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<Integer> TICK_RATE = new SingleArgumentType<Integer>(
      "server.commands.parsing.argtype.tickrate.name", "server.commands.parsing.argtype.tickrate.usage", "30tps", "33ms", "60", "20tps", "50ms"
   ) {
      @Nullable
      class="kw">public Integer parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         String var3 = var1.trim().toLowerCase(Locale.ROOT);
         if (var3.isEmpty()) {
            var2.fail(Message.translation("server.commands.parsing.argtype.tickrate.empty"));
            class="kw">return null;
         }

         try {
            if (var3.endsWith("tps")) {
               String var8 = var3.substring(0, var3.length() - 3).trim();
               class="kw">return Integer.parseInt(var8);
            }

            if (var3.endsWith("ms")) {
               String var4 = var3.substring(0, var3.length() - 2).trim();
               double var5 = Double.parseDouble(var4);
               if (var5 <= 0.0) {
                  var2.fail(Message.translation("server.commands.parsing.argtype.tickrate.invalidMs").param("input", var1));
                  class="kw">return null;
               } else {
                  class="kw">return (int)Math.round(1000.0 / var5);
               }
            } else {
               class="kw">return Integer.parseInt(var3);
            }
         } catch (NumberFormatException var7) {
            var2.fail(Message.translation("server.commands.parsing.argtype.tickrate.fail").param("input", var1));
            class="kw">return null;
         }
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         var4.suggest("30tps");
         var4.suggest("60tps");
         var4.suggest("20tps");
         var4.suggest("33ms");
         var4.suggest("16ms");
         var4.suggest("50ms");
      }
   };
   class="kw">public class="kw">static class="kw">final SingleArgumentType<GameMode> GAME_MODE = new GameModeArgumentType();

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

   @Nonnull
   class="kw">public class="kw">static <E class="kw">extends Enum<E>> SingleArgumentType<E> forEnum(String var0, @Nonnull Class<E> var1) {
      class="kw">return new EnumArgumentType<>(var0, var1);
   }

   class="kw">private class="kw">static boolean isExactBlockTypeKey(@Nonnull String var0) {
      for (String var2 : BlockType.getAssetMap().getAssetMap().keySet()) {
         if (var2.toString().equalsIgnoreCase(var0)) {
            class="kw">return true;
         }
      }

      class="kw">return false;
   }

   class="kw">private class="kw">static void suggestBlockTypeKeys(@Nonnull String var0, @Nonnull String var1, @Nonnull SuggestionResult var2) {
      Set var3 = BlockType.getAssetMap().getAssetMap().keySet();
      List var4 = new ObjectArrayList(var3.size());

      for (String var6 : var3) {
         var4.add(var6.toString());
      }

      SuggestionUtil.suggestFiltered(var4, var0, var1x -> var1 + var1x, var2);
   }

   class="kw">private class="kw">static void suggestOnlinePlayers(@Nonnull CommandSender var0, @Nonnull String var1, @Nonnull SuggestionResult var2) {
      String var3 = var1.toLowerCase(Locale.ROOT);

      for (World var5 : Universe.get().getWorlds().values()) {
         for (PlayerRef var7 : var5.getPlayerRefs()) {
            String var8 = var7.getUsername();
            if (var8 != null && var8.toLowerCase(Locale.ROOT).startsWith(var3)) {
               var2.suggest(var8);
            }
         }
      }
   }

   class="kw">private class="kw">static void suggestPosition(
      @Nonnull CommandSender var0, @Nonnull String var1, @Nonnull SuggestionResult var2, @Nonnull String var3, @Nonnull Function<Vector3d, String> var4
   ) {
      if (var1.isEmpty() || var1.startsWith("~")) {
         var2.suggest(var3);
      }

      if (var0 class="kw">instanceof PlayerRef var5) {
         Vector3d var6 = var5.getTransform().getPosition();
         var2.suggest(var4.apply(var6));
      }
   }

   class="kw">public enum IntegerComparisonOperator {
      GREATER_THAN((var0, var1) -> var0 > var1, ">"),
      GREATER_THAN_EQUAL_TO((var0, var1) -> var0 >= var1, ">="),
      LESS_THAN((var0, var1) -> var0 < var1, "<"),
      LESS_THAN_EQUAL_TO((var0, var1) -> var0 <= var1, "<="),
      MOD_EQUAL_ZERO((var0, var1) -> var0 % var1 == 0, "%"),
      MOD_NOT_EQUAL_ZERO((var0, var1) -> var0 % var1 != 0, "!%"),
      EQUAL_TO(Integer::equals, "="),
      NOT_EQUAL_TO((var0, var1) -> !var0.equals(var1), "!=");

      class="kw">private class="kw">final BiFunction<Integer, Integer, Boolean> comparisonFunction;
      class="kw">private class="kw">final String stringRepresentation;

      IntegerComparisonOperator(BiFunction<Integer, Integer, Boolean> nullxx, String nullxxx) {
         this.comparisonFunction = nullxx;
         this.stringRepresentation = nullxxx;
      }

      class="kw">public boolean compare(int var1, int var2) {
         class="kw">return this.comparisonFunction.apply(var1, var2);
      }

      class="kw">public String getStringRepresentation() {
         class="kw">return this.stringRepresentation;
      }

      @Nullable
      class="kw">public class="kw">static ArgTypes.IntegerComparisonOperator getFromStringRepresentation(String var0) {
         for (ArgTypes.IntegerComparisonOperator var4 : values()) {
            if (var4.stringRepresentation.equals(var0)) {
               class="kw">return var4;
            }
         }

         class="kw">return null;
      }
   }

   class="kw">public enum IntegerOperation {
      ADD(Integer::sum, "+"),
      SUBTRACT((var0, var1) -> var0 - var1, "-"),
      MULTIPLY((var0, var1) -> var0 * var1, "*"),
      DIVIDE((var0, var1) -> var0 / var1, "/"),
      MODULUS((var0, var1) -> var0 % var1, "%"),
      SET((var0, var1) -> var1, "=");

      @Nonnull
      class="kw">private class="kw">final BiFunction<Integer, Integer, Integer> operationFunction;
      @Nonnull
      class="kw">private class="kw">final String stringRepresentation;

      IntegerOperation(@Nonnull class="kw">final BiFunction<Integer, Integer, Integer> nullxx, @Nonnull class="kw">final String nullxxx) {
         this.operationFunction = nullxx;
         this.stringRepresentation = nullxxx;
      }

      class="kw">public int operate(int var1, int var2) {
         class="kw">return this.operationFunction.apply(var1, var2);
      }

      class="kw">public String getStringRepresentation() {
         class="kw">return this.stringRepresentation;
      }

      @Nullable
      class="kw">public class="kw">static ArgTypes.IntegerOperation getFromStringRepresentation(@Nonnull String var0) {
         for (ArgTypes.IntegerOperation var4 : values()) {
            if (var4.stringRepresentation.equals(var0)) {
               class="kw">return var4;
            }
         }

         class="kw">return null;
      }
   }
}