WorldPruneCommand class

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

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

extends: AbstractAsyncCommand

Поля (6)

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

Методы (1)

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

Исходный код

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

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.basecommands.AbstractAsyncCommand;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;

class="kw">public class WorldPruneCommand class="kw">extends AbstractAsyncCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_WORLD_PRUNE_NONE_TO_PRUNE = Message.translation("server.commands.world.prune.noneToPrune");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_WORLD_PRUNE_PRUNE_ERROR = Message.translation("server.commands.world.prune.pruneError");

   class="kw">public WorldPruneCommand() {
      super("prune", "server.commands.world.prune.desc", true);
   }

   @Nonnull
   @Override
   class="kw">protected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1) {
      CommandSender var2 = var1.sender();
      World var3 = Universe.get().getDefaultWorld();
      Map var4 = Universe.get().getWorlds();
      Set var5 = new HashSet<>();
      var4.forEach((var2x, var3x) -> {
         if (!var3x.equals(var3) && var3x.getPlayerCount() == 0) {
            var5.add(var2x);
            var3x.getWorldConfig().setDeleteOnRemove(true);
         }
      });
      if (var5.isEmpty()) {
         var2.sendMessage(MESSAGE_COMMANDS_WORLD_PRUNE_NONE_TO_PRUNE);
         class="kw">return CompletableFuture.completedFuture(null);
      } else {
         class="kw">return CompletableFuture.runAsync(() -> {
            var5.forEach(var1x -> {
               try {
                  boolean var2 = Universe.get().removeWorld(var1x);
                  String var3 = var2 ? "server.commands.world.prune.prunedWorld" : "server.commands.world.prune.pruneFailed";
                  var2.sendMessage(Message.translation(var3).param("world", var1x));
               } catch (Throwable var4) {
                  var2.sendMessage(MESSAGE_COMMANDS_WORLD_PRUNE_PRUNE_ERROR);
                  ((HytaleLogger.Api)HytaleLogger.getLogger().at(Level.SEVERE).withCause(var4)).log("Error pruning world %s", var1x);
               }
            });
            var2.sendMessage(Message.translation("server.commands.world.prune.done").param("count", var5.size()));
         });
      }
   }
}