HelpCommand class

Пакет: com.hypixel.hytale.server.core.command.commands.utility.help

Файл: com/hypixel/hytale/server/core/command/commands/utility/help/HelpCommand.java

extends: AbstractAsyncCommand

Поля (14)

МодификаторыТипИмя
private final RequiredArg<String> commandArg
String var1
World var10
String var11
CommandSender var2
AbstractCommand var2
String var2
Player var3
AbstractCommand var3
PlayerRef var4
Ref var6
ArrayList var7
Store var8
Message var9

Методы (8)

МодификаторыВозвратСигнатура
HelpCommandVariant HelpCommandVariant()
protected CompletableFuture<Void> executeAsyncprotected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1)
if if(var3 != null && var4 != null)
if if(var1 == null)
if if(var0 == null)
abstract return openHelpUIreturn openHelpUI(var1, null)
abstract super super("help", "server.commands.help.desc")
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);
      }
   }
}