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