HelpCommandVariant class
Пакет: com.hypixel.hytale.server.core.command.commands.utility.help
Файл: com/hypixel/hytale/server/core/command/commands/utility/help/HelpCommand.java
extends: AbstractAsyncCommand
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final RequiredArg<String> |
commandArg |
|
String |
var2 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
protected CompletableFuture<Void> |
executeAsyncprotected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1) |
abstract |
|
super super("server.commands.help.command.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.commands.utility.help;
class="kw">import com.hypixel.hytale.common.util.StringUtil;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
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.CommandManager;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandSender;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractAsyncCommand;
class="kw">import com.hypixel.hytale.server.core.command.system.pages.CommandListPage;
class="kw">import com.hypixel.hytale.server.core.console.ConsoleModule;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
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 java.util.ArrayList;
class="kw">import java.util.Comparator;
class="kw">import java.util.Locale;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class HelpCommand class="kw">extends AbstractAsyncCommand {
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD = Message.translation("server.commands.errors.playerNotInWorld");
class="kw">public HelpCommand() {
super("help", "server.commands.help.desc");
this.addAliases("?");
this.setPermissionGroups("hytale:Adventurer");
this.addUsageVariant(new HelpCommand.HelpCommandVariant());
}
@Nonnull
@Override
class="kw">protected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1) {
class="kw">return openHelpUI(var1, null);
}
@Nonnull
class="kw">static CompletableFuture<Void> openHelpUI(@Nonnull CommandContext var0, @Nullable String var1) {
if (var0.isPlayer()) {
Ref var6 = var0.senderAsPlayerRef();
if (var6 != null && var6.isValid()) {
Store var8 = var6.getStore();
World var10 = var8.getExternalData().getWorld();
String var11 = resolveCommandName(var1);
class="kw">return CompletableFuture.runAsync(() -> {
Player var3 = var8.getComponent(var6, Player.getComponentType());
PlayerRef var4 = var8.getComponent(var6, PlayerRef.getComponentType());
if (var3 != null && var4 != null) {
var3.getPageManager().openCustomPage(var6, var8, new CommandListPage(var4, var11));
}
}, var10);
} else {
var0.sendMessage(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
class="kw">return CompletableFuture.completedFuture(null);
}
} else {
CommandSender var2 = var0.sender();
if (var1 == null) {
ArrayList var7 = new ArrayList<>();
for (AbstractCommand var5 : CommandManager.get().getCommandRegistration().values()) {
if (var5.hasPermission(var2) && var5.getName() != null) {
var7.add("/" + var5.getName());
}
}
var7.sort(Comparator.naturalOrder());
Message var9 = Message.translation("server.commands.help.console.header");
var9.insert(StringUtil.formatColumns(var7, ConsoleModule.terminalWidth()));
var0.sendMessage(var9);
class="kw">return CompletableFuture.completedFuture(null);
} else {
AbstractCommand var3 = CommandManager.get().resolveCommand(var1.toLowerCase(Locale.ROOT));
if (var3 != null && var3.hasPermission(var2)) {
var0.sendMessage(var3.getUsageString(var2));
} else {
var0.sendMessage(Message.translation("server.modules.command.notFound").param("cmd", var1));
}
class="kw">return CompletableFuture.completedFuture(null);
}
}
}
@Nullable
class="kw">private class="kw">static String resolveCommandName(@Nullable String var0) {
if (var0 == null) {
class="kw">return null;
}
String var1 = var0.toLowerCase(Locale.ROOT);
AbstractCommand var2 = CommandManager.get().resolveCommand(var1);
class="kw">return var2 != null && var2.getName() != null ? var2.getName() : var1;
}
class="kw">private class="kw">static class HelpCommandVariant class="kw">extends AbstractAsyncCommand {
@Nonnull
class="kw">private class="kw">final RequiredArg<String> commandArg = this.withRequiredArg("command", "server.commands.help.command.name.desc", ArgTypes.STRING);
HelpCommandVariant() {
super("server.commands.help.command.desc");
}
@Nonnull
@Override
class="kw">protected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1) {
String var2 = this.commandArg.get(var1);
class="kw">return HelpCommand.openHelpUI(var1, var2);
}
}
}