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