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);
}
}
}