DefaultValueArgument interface
Пакет: com.hypixel.hytale.server.core.command.system.arguments.system
Файл: com/hypixel/hytale/server/core/command/system/arguments/system/AbstractOptionalArg.java
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
DataType |
getDefaultValueDataType getDefaultValue() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.system.arguments.system;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.AbstractCommand;
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.types.ArgumentType;
class="kw">import com.hypixel.hytale.server.core.permissions.PermissionQuery;
class="kw">import java.util.Collections;
class="kw">import java.util.HashSet;
class="kw">import java.util.Locale;
class="kw">import java.util.Set;
class="kw">import java.util.stream.Collectors;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">abstract class AbstractOptionalArg<Arg class="kw">extends Argument<Arg, DataType>, DataType> class="kw">extends Argument<Arg, DataType> {
@Nonnull
class="kw">private class="kw">final Set<String> aliases = new HashSet<>();
@Nullable
class="kw">private PermissionQuery permission;
class="kw">private Set<AbstractOptionalArg<?, ?>> requiredIf;
class="kw">private Set<AbstractOptionalArg<?, ?>> requiredIfAbsent;
class="kw">private Set<AbstractOptionalArg<?, ?>> availableOnlyIfAll;
class="kw">private Set<AbstractOptionalArg<?, ?>> availableOnlyIfAllAbsent;
AbstractOptionalArg(@Nonnull AbstractCommand var1, @Nonnull String var2, @Nonnull String var3, @Nonnull ArgumentType<DataType> var4) {
super(var1, var2, var3, var4);
}
class="kw">public class="kw">final Arg addAliases(@Nonnull String... var1) {
if (this.getCommandRegisteredTo().hasBeenRegistered()) {
throw new IllegalStateException("Cannot change aliases for an argument after a command has already been registered");
}
for (String var5 : var1) {
this.aliases.add(var5.toLowerCase(Locale.ROOT));
}
class="kw">return this.getThis();
}
class="kw">public Arg requiredIf(@Nonnull AbstractOptionalArg<?, ?> var1, @Nullable AbstractOptionalArg<?, ?>... var2) {
if (this.requiredIf == null) {
this.requiredIf = new HashSet<>();
}
if (!this.addDependencyArg(this.requiredIf, this.requiredIfAbsent, var1, var2)) {
throw new IllegalStateException("Cannot have one argument in both requiredIf and requiredIfAbsent. Argument: " + var1.getName());
} else {
class="kw">return this.getThis();
}
}
class="kw">public Arg requiredIf(@Nonnull AbstractOptionalArg<?, ?> var1) {
class="kw">return this.requiredIf(var1, (AbstractOptionalArg<?, ?>[])null);
}
class="kw">public Arg requiredIfAbsent(@Nonnull AbstractOptionalArg<?, ?> var1, @Nullable AbstractOptionalArg<?, ?>... var2) {
if (this.requiredIfAbsent == null) {
this.requiredIfAbsent = new HashSet<>();
}
if (!this.addDependencyArg(this.requiredIfAbsent, this.requiredIf, var1, var2)) {
throw new IllegalStateException("Cannot have one argument in both requiredIf and requiredIfAbsent. Argument: " + var1.getName());
} else {
class="kw">return this.getThis();
}
}
class="kw">public Arg requiredIfAbsent(@Nonnull AbstractOptionalArg<?, ?> var1) {
class="kw">return this.requiredIfAbsent(var1, (AbstractOptionalArg<?, ?>[])null);
}
class="kw">public Arg availableOnlyIfAll(@Nonnull AbstractOptionalArg<?, ?> var1, @Nullable AbstractOptionalArg<?, ?>... var2) {
if (this.availableOnlyIfAll == null) {
this.availableOnlyIfAll = new HashSet<>();
}
if (!this.addDependencyArg(this.availableOnlyIfAll, this.availableOnlyIfAllAbsent, var1, var2)) {
throw new IllegalStateException("Cannot have one argument in both availableIf and availableIfAbsent. Argument: " + var1.getName());
} else {
class="kw">return this.getThis();
}
}
class="kw">public Arg availableOnlyIfAll(@Nonnull AbstractOptionalArg<?, ?> var1) {
class="kw">return this.availableOnlyIfAll(var1, (AbstractOptionalArg<?, ?>[])null);
}
class="kw">public Arg availableOnlyIfAllAbsent(@Nonnull AbstractOptionalArg<?, ?> var1, @Nullable AbstractOptionalArg<?, ?>... var2) {
if (this.availableOnlyIfAllAbsent == null) {
this.availableOnlyIfAllAbsent = new HashSet<>();
}
if (!this.addDependencyArg(this.availableOnlyIfAllAbsent, this.availableOnlyIfAll, var1, var2)) {
throw new IllegalStateException("Cannot have one argument in both availableIf and availableIfAbsent. Argument: " + var1.getName());
} else {
class="kw">return this.getThis();
}
}
class="kw">public Arg availableOnlyIfAllAbsent(@Nonnull AbstractOptionalArg<?, ?> var1) {
class="kw">return this.availableOnlyIfAllAbsent(var1, (AbstractOptionalArg<?, ?>[])null);
}
class="kw">private boolean addDependencyArg(
@Nonnull Set<AbstractOptionalArg<?, ?>> var1,
@Nullable Set<AbstractOptionalArg<?, ?>> var2,
AbstractOptionalArg<?, ?> var3,
@Nullable AbstractOptionalArg<?, ?>... var4
) {
if (this.getCommandRegisteredTo().hasBeenRegistered()) {
throw new IllegalStateException("Cannot change argument dependencies after command has completed registration");
}
if (var2 != null && var2.contains(var3)) {
class="kw">return false;
}
var1.add(var3);
if (var4 != null) {
if (var2 != null) {
for (AbstractOptionalArg var8 : var4) {
if (var2.contains(var8)) {
class="kw">return false;
}
}
}
Collections.addAll(this.requiredIfAbsent, var4);
}
class="kw">return true;
}
class="kw">public boolean verifyArgumentDependencies(@Nonnull CommandContext var1, @Nonnull ParseResult var2) {
boolean var3 = var1.provided(this);
if (!var3) {
if (this.requiredIf != null) {
for (AbstractOptionalArg var10 : this.requiredIf) {
if (var10.provided(var1)) {
var2.fail(
Message.translation("server.commands.parsing.error.optionalArgRequiredIf")
.param("required", this.getName())
.param("requirer", var10.getName())
);
class="kw">return false;
}
}
}
if (this.requiredIfAbsent != null) {
for (AbstractOptionalArg var11 : this.requiredIfAbsent) {
if (!var11.provided(var1)) {
var2.fail(
Message.translation("server.commands.parsing.error.optionalArgRequiredIf")
.param("required", this.getName())
.param("requirer", var11.getName())
);
class="kw">return false;
}
}
}
class="kw">return true;
} else {
if (this.availableOnlyIfAll != null) {
for (AbstractOptionalArg var5 : this.availableOnlyIfAll) {
if (!var5.provided(var1)) {
var2.fail(
Message.translation("server.commands.parsing.error.optionalArgAvailableIf")
.param("available", this.getName())
.param("required", this.availableOnlyIfAll.stream().map(Argument::getName).collect(Collectors.joining(", ")))
);
class="kw">return false;
}
}
}
if (this.availableOnlyIfAllAbsent != null) {
for (AbstractOptionalArg var9 : this.availableOnlyIfAllAbsent) {
if (var9.provided(var1)) {
var2.fail(
Message.translation("server.commands.parsing.error.optionalArgAvailableIfAbsent")
.param("available", this.getName())
.param("required", this.availableOnlyIfAllAbsent.stream().map(Argument::getName).collect(Collectors.joining(", ")))
);
class="kw">return false;
}
}
}
class="kw">return true;
}
}
@Nonnull
class="kw">public Arg setPermission(@Nonnull String var1) {
if (this.getCommandRegisteredTo().hasBeenRegistered()) {
throw new IllegalStateException("Cannot change permissions after a command has already been registered");
}
this.permission = PermissionQuery.of(var1);
class="kw">return this.getThis();
}
@Nonnull
class="kw">public Set<String> getAliases() {
class="kw">return Collections.unmodifiableSet(this.aliases);
}
@Nullable
class="kw">public String getPermission() {
class="kw">return this.permission == null ? null : this.permission.getId();
}
class="kw">public boolean hasPermission(@Nonnull CommandSender var1) {
class="kw">return this.permission == null || var1.hasPermission(this.permission);
}
class="kw">public class="kw">interface DefaultValueArgument<DataType> {
DataType getDefaultValue();
}
}