PrefabEditExitCommand class

Пакет: com.hypixel.hytale.builtin.buildertools.prefabeditor.commands

Файл: com/hypixel/hytale/builtin/buildertools/prefabeditor/commands/PrefabEditExitCommand.java

extends: AbstractAsyncPlayerCommand

Поля (5)

МодификаторыТипИмя
CompletableFuture var10
Player var6
PrefabEditSessionManager var7
PrefabEditSession var8
List var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var8 != null)
abstract super super("exit", "server.commands.editprefab.exit.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.prefabeditor.commands;

class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.buildertools.prefabeditor.PrefabEditSession;
class="kw">import com.hypixel.hytale.builtin.buildertools.prefabeditor.PrefabEditSessionManager;
class="kw">import com.hypixel.hytale.builtin.buildertools.prefabeditor.PrefabEditingMetadata;
class="kw">import com.hypixel.hytale.builtin.buildertools.prefabeditor.ui.PrefabEditorExitConfirmPage;
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.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractAsyncPlayerCommand;
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.List;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.stream.Collectors;
class="kw">import javax.annotation.Nonnull;

class="kw">public class PrefabEditExitCommand class="kw">extends AbstractAsyncPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_EDIT_PREFAB_EDIT_NOT_EDITING_A_PREFAB = Message.translation(
      "server.commands.editprefab.exit.notEditingAPrefab"
   );

   class="kw">public PrefabEditExitCommand() {
      super("exit", "server.commands.editprefab.exit.desc");
   }

   @Nonnull
   @Override
   class="kw">protected CompletableFuture<Void> executeAsync(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      Player var6 = var2.getComponent(var3, Player.getComponentType());
      assert var6 != null;
      PrefabEditSessionManager var7 = BuilderToolsPlugin.get().getPrefabEditSessionManager();
      if (!var7.isEditingAPrefab(var4.getUuid())) {
         var1.sendMessage(MESSAGE_COMMANDS_EDIT_PREFAB_EDIT_NOT_EDITING_A_PREFAB);
         class="kw">return CompletableFuture.completedFuture(null);
      }

      PrefabEditSession var8 = var7.getPrefabEditSession(var4.getUuid());
      if (var8 != null) {
         List var9 = var8.getLoadedPrefabMetadata().values().stream().filter(PrefabEditingMetadata::isDirty).collect(Collectors.toList());
         if (!var9.isEmpty()) {
            var6.getPageManager().openCustomPage(var3, var2, new PrefabEditorExitConfirmPage(var4, var8, var5, var9));
            class="kw">return CompletableFuture.completedFuture(null);
         }
      }

      CompletableFuture var10 = var7.exitEditSession(var3, var5, var4, var2);
      class="kw">return var10 != null ? var10 : CompletableFuture.completedFuture(null);
   }
}