PrefabEditBackCommand class

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

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

extends: AbstractAsyncPlayerCommand

Поля (11)

МодификаторыТипИмя
Player var10
World var11
var11
Transform var12
var12
var12
Teleport var13
PrefabEditSessionManager var6
PrefabEditSession var7
String var8
String var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var11 != null)
abstract super super("back", "server.commands.editprefab.back.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.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Transform;
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.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
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.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;

class="kw">public class PrefabEditBackCommand class="kw">extends AbstractAsyncPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_EDIT_PREFAB_NOT_IN_EDIT_SESSION = Message.translation("server.commands.editprefab.notInEditSession");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ALREADY_IN_EDIT_SESSION = Message.translation("server.commands.editprefab.alreadyInEditSession");

   class="kw">public PrefabEditBackCommand() {
      super("back", "server.commands.editprefab.back.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
   ) {
      PrefabEditSessionManager var6 = BuilderToolsPlugin.get().getPrefabEditSessionManager();
      if (!var6.isEditingAPrefab(var4.getUuid())) {
         var1.sendMessage(MESSAGE_COMMANDS_EDIT_PREFAB_NOT_IN_EDIT_SESSION);
         class="kw">return CompletableFuture.completedFuture(null);
      }

      PrefabEditSession var7 = var6.getPrefabEditSession(var4.getUuid());
      String var8 = var7.getWorldName();
      String var9 = Universe.get().getWorld(var4.getWorldUuid()).getName();
      if (var9.equalsIgnoreCase(var8)) {
         Player var10 = var3.getStore().getComponent(var3, Player.getComponentType());
         World var11 = Universe.get().getWorld(var7.getWorldArrivedFrom());
         Transform var12;
         if (var11 != null) {
            var12 = var10.getPlayerConfigData().getPerWorldData(var11.getName()).getLastPosition();
         } else {
            var11 = Universe.get().getDefaultWorld();
            var12 = var11.getWorldConfig().getSpawnProvider().getSpawnPoint(var11, var4.getUuid());
         }

         Teleport var13 = Teleport.createForPlayer(var11, var12);
         var7.clearSelectedPrefab(var3, var2);
         class="kw">return CompletableFuture.runAsync(() -> var3.getStore().putComponent(var3, Teleport.getComponentType(), var13), var5);
      } else {
         class="kw">return var6.sendToEditWorld(var3, var5, var4);
      }
   }
}