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;
}
}