WorldAddCommand class

Пакет: com.hypixel.hytale.server.core.universe.world.commands.world

Файл: com/hypixel/hytale/server/core/universe/world/commands/world/WorldAddCommand.java

extends: CommandBase

Поля (4)

МодификаторыТипИмя
CommandSender var2
String var3
String var4
String var5

Методы (1)

МодификаторыВозвратСигнатура
abstract super super("add", "server.commands.addworld.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.commands.world;

class="kw">import com.hypixel.hytale.common.util.CompletableFutureUtil;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.Message;
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.arguments.system.DefaultArg;
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.CommandBase;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import java.util.Objects;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;

class="kw">public class WorldAddCommand class="kw">extends CommandBase {
   @Nonnull
   class="kw">private class="kw">final RequiredArg<String> nameArg = this.withRequiredArg("name", "server.commands.addworld.arg.name.desc", ArgTypes.STRING);
   @Nonnull
   class="kw">private class="kw">final DefaultArg<String> genArg = this.withDefaultArg(
      "gen", "server.commands.addworld.arg.gen.desc", ArgTypes.WORLD_GEN_PROVIDER_KEY_OR_DEFAULT, "class="kw">default", ""
   );
   @Nonnull
   class="kw">private class="kw">final DefaultArg<String> storageArg = this.withDefaultArg(
      "storage", "server.commands.addworld.arg.storage.desc", ArgTypes.CHUNK_STORAGE_PROVIDER_KEY_OR_DEFAULT, "class="kw">default", ""
   );

   class="kw">public WorldAddCommand() {
      super("add", "server.commands.addworld.desc");
   }

   @Override
   class="kw">protected void executeSync(@Nonnull CommandContext var1) {
      CommandSender var2 = var1.sender();
      String var3 = var1.get(this.nameArg);
      if (Universe.get().getWorld(var3) != null) {
         var2.sendMessage(Message.translation("server.universe.addWorld.alreadyExists").param("worldName", var3));
      } else if (Universe.get().isWorldLoadable(var3)) {
         var2.sendMessage(Message.translation("server.universe.addWorld.alreadyExistsDisk").param("worldName", var3));
      } else {
         String var4 = var1.get(this.genArg);
         String var5 = var1.get(this.storageArg);
         CompletableFutureUtil._catch(
            Universe.get()
               .addWorld(var3, var4, var5)
               .thenRun(
                  () -> var2.sendMessage(
                     Message.translation("server.universe.addWorld.worldCreated")
                        .param("worldName", var3)
                        .param("generator", Objects.requireNonNullElse(var4, "class="kw">default"))
                        .param("storage", Objects.requireNonNullElse(var5, "class="kw">default"))
                  )
               )
               .exceptionally(
                  var2x -> {
                     ((HytaleLogger.Api)LOGGER.at(Level.SEVERE).withCause(var2x)).log("Failed to add world '%s'", var3);
                     var2.sendMessage(
                        Message.translation("server.universe.addWorld.failed")
                           .param("worldName", var3)
                           .param("error", var2x.getCause() != null ? var2x.getCause().getMessage() : var2x.getMessage())
                     );
                     class="kw">return null;
                  }
               )
         );
      }
   }
}