CommandContext class

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

Файл: com/hypixel/hytale/server/core/command/system/CommandContext.java

Поля (5)

МодификаторыТипИмя
return this.sender instanceof PlayerRef
Object var3
SenderTypeException var3
int var5
Object var6

Методы (7)

МодификаторыВозвратСигнатура
<DataType> void appendArgumentData<DataType> void appendArgumentData(@Nonnull Argument<?, DataType> var1, @Nonnull String[] var2, boolean var3, @Nonnull ParseResult var4)
public <DataType> DataType get<DataType> DataType get(@Nonnull Argument<?, DataType> var1)
public String[] getInputString[] getInput(@Nonnull Argument<?, ?> var1)
if if(var2.length == 0 && var1 instanceof DefaultArg var7)
public boolean isPlayerboolean isPlayer()
public boolean providedboolean provided(@Nonnull Argument<?, ?> var1)
public void sendMessagevoid sendMessage(@Nonnull Message var1)

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.AbstractOptionalArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.Argument;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.DefaultArg;
class="kw">import com.hypixel.hytale.server.core.command.system.exceptions.SenderTypeException;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">final class CommandContext {
   @Nonnull
   class="kw">private class="kw">final AbstractCommand calledCommand;
   @Nonnull
   class="kw">private class="kw">final String inputString;
   @Nonnull
   class="kw">private class="kw">final CommandSender sender;
   @Nonnull
   class="kw">private class="kw">final Map<Argument<?, ?>, Object> argValues;
   @Nonnull
   class="kw">private class="kw">final Map<Argument<?, ?>, String[]> argInput;

   class="kw">public CommandContext(@Nonnull AbstractCommand var1, @Nonnull CommandSender var2, @Nonnull String var3) {
      this.calledCommand = var1;
      this.inputString = var3;
      this.sender = var2;
      this.argValues = new Object2ObjectOpenHashMap();
      this.argInput = new Object2ObjectOpenHashMap();
   }

   <DataType> void appendArgumentData(@Nonnull Argument<?, DataType> var1, @Nonnull String[] var2, boolean var3, @Nonnull ParseResult var4) {
      if (var2.length == 0 && var1 class="kw">instanceof DefaultArg var7) {
         this.argValues.put(var1, var7.getDefaultValue());
      } else {
         int var5 = var1.getArgumentType().getNumberOfParameters();
         if ((!var3 || var2.length % var5 == 0) && (var3 || var2.length == var5)) {
            Object var6 = var1.getArgumentType().parse(var2, var4);
            if (!var4.failed()) {
               var1.validate(var6, var4);
               if (!var4.failed()) {
                  this.argValues.put(var1, var6);
                  this.argInput.put(var1, var2);
               }
            }
         } else {
            var4.fail(
               Message.translation("server.commands.parsing.error.wrongNumberOfParametersForArgument")
                  .param("argument", var1.getName())
                  .param("expected", var1.getArgumentType().getNumberOfParameters())
                  .param("actual", var2.length)
                  .param("input", String.join(" ", var2))
            );
         }
      }
   }

   class="kw">public <DataType> DataType get(@Nonnull Argument<?, DataType> var1) {
      if (!this.argValues.containsKey(var1) && var1 class="kw">instanceof AbstractOptionalArg.DefaultValueArgument var2) {
         Object var3 = var2.getDefaultValue();
         this.argValues.put(var1, var3);
         class="kw">return (DataType)var3;
      } else {
         class="kw">return (DataType)this.argValues.get(var1);
      }
   }

   class="kw">public String[] getInput(@Nonnull Argument<?, ?> var1) {
      class="kw">return this.argInput.get(var1);
   }

   class="kw">public boolean provided(@Nonnull Argument<?, ?> var1) {
      class="kw">return this.argValues.containsKey(var1);
   }

   @Nonnull
   class="kw">public String getInputString() {
      class="kw">return this.inputString;
   }

   class="kw">public void sendMessage(@Nonnull Message var1) {
      this.sender.sendMessage(var1);
   }

   class="kw">public boolean isPlayer() {
      class="kw">return this.sender class="kw">instanceof PlayerRef;
   }

   @Nonnull
   class="kw">public <T class="kw">extends CommandSender> T senderAs(@Nonnull Class<T> var1) {
      try {
         class="kw">return var1.cast(this.sender);
      } catch (ClassCastException var4) {
         SenderTypeException var3 = new SenderTypeException(var1);
         var3.initCause(var4);
         throw var3;
      }
   }

   @Nullable
   class="kw">public Ref<EntityStore> senderAsPlayerRef() {
      class="kw">return this.sender class="kw">instanceof PlayerRef var1 ? var1.getReference() : null;
   }

   @Nonnull
   class="kw">public CommandSender sender() {
      class="kw">return this.sender;
   }

   @Nonnull
   class="kw">public AbstractCommand getCalledCommand() {
      class="kw">return this.calledCommand;
   }
}