WorldPathBuilderCommand class

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

Файл: com/hypixel/hytale/builtin/path/commands/WorldPathBuilderCommand.java

extends: AbstractCommandCollection

Поля (41)

МодификаторыТипИмя
private static final Message MESSAGE_UNIVERSE_WORLD_PATH_NO_POINTS_DEFINED
private static final Message MESSAGE_UNIVERSE_WORLD_PATH_POINTS_CLEARED
private static final Message MESSAGE_UNIVERSE_WORLD_PATH_POINT_ADDED
private static final Message MESSAGE_UNIVERSE_WORLD_PATH_POINT_SET
private static final Message MESSAGE_UNIVERSE_WORLD_PATH_SAVED
private final RequiredArg<Integer> indexArg
private final RequiredArg<Integer> indexArg
private final OptionalArg<Integer> indexArg
private final RequiredArg<String> nameArg
private final RequiredArg<String> nameArg
Teleport var10
WorldPathBuilder var2
WorldPathBuilder var2
UUIDComponent var3
Teleport var3
String var4
WorldPathBuilder var5
TransformComponent var6
WorldPathBuilder var6
WorldPathBuilder var6
String var6
WorldPathBuilder var6
String var6
WorldPathBuilder var6
WorldPathBuilder var6
Transform var6
Transform var7
Integer var7
WorldPath var7
int var7
WorldPath var7
TransformComponent var7
ObjectArrayList var7
WorldPath var8
WorldPathConfig var8
WorldPath var8
CompletableFuture var8
Transform var9
WorldPath var9
int var9
ScheduledFuture[] var9

Методы (37)

МодификаторыВозвратСигнатура
public WorldPathBuilderAddCommandpublic WorldPathBuilderAddCommand()
public WorldPathBuilderClearCommandpublic WorldPathBuilderClearCommand()
public WorldPathBuilderGotoCommandpublic WorldPathBuilderGotoCommand()
public WorldPathBuilderLoadCommandpublic WorldPathBuilderLoadCommand()
public WorldPathBuilderRemoveCommandpublic WorldPathBuilderRemoveCommand()
public WorldPathBuilderSaveCommandpublic WorldPathBuilderSaveCommand()
public WorldPathBuilderSetCommandpublic WorldPathBuilderSetCommand()
public WorldPathBuilderSimulateCommandpublic WorldPathBuilderSimulateCommand()
public WorldPathBuilderStopCommandpublic WorldPathBuilderStopCommand()
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
if if(var2 == null)
if if(var2 != null)
if if(var6 != null)
if if(var6 != null)
if if(var7 == null)
if if(var6 != null)
if if(var6 != null)
if if(var6 != null)
if if(var6 == null)
abstract super super("builder", "server.commands.worldpath.builder.desc")
abstract super super("add", "server.commands.worldpath.builder.add.desc")
abstract super super("clear", "server.commands.worldpath.builder.clear.desc")
abstract super super("goto", "server.commands.worldpath.builder.goto.desc")
abstract super super("load", "server.commands.worldpath.builder.load.desc")
abstract super super("remove", "server.commands.worldpath.builder.remove.desc")
abstract super super("save", "server.commands.worldpath.builder.save.desc")
abstract super super("set", "server.commands.worldpath.builder.set.desc")
abstract super super("simulate", "server.commands.worldpath.builder.simulate.desc")
abstract super super("stop", "server.commands.worldpath.builder.stop.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.path.WorldPathBuilder;
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.HytaleServer;
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.arguments.system.OptionalArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractCommandCollection;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.path.WorldPath;
class="kw">import com.hypixel.hytale.server.core.universe.world.path.WorldPathConfig;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.concurrent.ScheduledFuture;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class WorldPathBuilderCommand class="kw">extends AbstractCommandCollection {
   class="kw">public WorldPathBuilderCommand() {
      super("builder", "server.commands.worldpath.builder.desc");
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderStopCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderLoadCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderSimulateCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderClearCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderAddCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderSetCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderGotoCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderRemoveCommand());
      this.addSubCommand(new WorldPathBuilderCommand.WorldPathBuilderSaveCommand());
   }

   @Nonnull
   class="kw">private class="kw">static WorldPathBuilder createBuilder(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nullable WorldPath var2) {
      UUIDComponent var3 = var1.getComponent(var0, UUIDComponent.getComponentType());
      assert var3 != null;
      String var4 = "Builder-" + var3.getUuid();
      WorldPathBuilder var5 = new WorldPathBuilder();
      if (var2 == null) {
         var5.setPath(new WorldPath(var4, new ObjectArrayList()));
      } else {
         var5.setPath(new WorldPath(var4, new ObjectArrayList(var2.getWaypoints())));
      }

      class="kw">return var5;
   }

   @Nullable
   class="kw">private class="kw">static WorldPathBuilder getBuilder(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1) {
      class="kw">return var1.getComponent(var0, WorldPathBuilder.getComponentType());
   }

   @Nonnull
   class="kw">private class="kw">static WorldPathBuilder getOrCreateBuilder(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1) {
      WorldPathBuilder var2 = var1.getComponent(var0, WorldPathBuilder.getComponentType());
      class="kw">return var2 != null ? var2 : putBuilder(var0, var1, createBuilder(var0, var1, null));
   }

   @Nullable
   class="kw">private class="kw">static WorldPath removeBuilder(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1) {
      WorldPathBuilder var2 = var1.getComponent(var0, WorldPathBuilder.getComponentType());
      if (var2 != null) {
         var1.removeComponent(var0, WorldPathBuilder.getComponentType());
         class="kw">return var2.getPath();
      } else {
         class="kw">return null;
      }
   }

   @Nonnull
   class="kw">private class="kw">static WorldPathBuilder putBuilder(@Nonnull Ref<EntityStore> var0, @Nonnull Store<EntityStore> var1, @Nonnull WorldPathBuilder var2) {
      var1.putComponent(var0, WorldPathBuilder.getComponentType(), var2);
      class="kw">return var2;
   }

   class="kw">private class="kw">static class WorldPathBuilderAddCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_UNIVERSE_WORLD_PATH_POINT_ADDED = Message.translation("server.universe.worldpath.pointAdded");

      class="kw">public WorldPathBuilderAddCommand() {
         super("add", "server.commands.worldpath.builder.add.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         TransformComponent var6 = var2.getComponent(var3, TransformComponent.getComponentType());
         assert var6 != null;
         Transform var7 = new Transform(var6.getTransform());
         WorldPathBuilderCommand.getOrCreateBuilder(var3, var2).getPath().getWaypoints().add(var7);
         var1.sendMessage(MESSAGE_UNIVERSE_WORLD_PATH_POINT_ADDED);
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderClearCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_UNIVERSE_WORLD_PATH_POINTS_CLEARED = Message.translation("server.universe.worldpath.pointsCleared");

      class="kw">public WorldPathBuilderClearCommand() {
         super("clear", "server.commands.worldpath.builder.clear.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         WorldPathBuilder var6 = WorldPathBuilderCommand.getBuilder(var3, var2);
         if (var6 != null) {
            var6.getPath().getWaypoints().clear();
            var1.sendMessage(MESSAGE_UNIVERSE_WORLD_PATH_POINTS_CLEARED);
         }
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderGotoCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> indexArg = this.withRequiredArg("index", "server.commands.worldpath.builder.goto.index.desc", ArgTypes.INTEGER);

      class="kw">public WorldPathBuilderGotoCommand() {
         super("goto", "server.commands.worldpath.builder.goto.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         WorldPathBuilder var6 = WorldPathBuilderCommand.getBuilder(var3, var2);
         if (var6 != null) {
            Integer var7 = this.indexArg.get(var1);
            WorldPath var8 = var6.getPath();
            Transform var9 = var8.getWaypoints().get(var7);
            Teleport var10 = Teleport.createForPlayer(null, var9);
            var2.addComponent(var3, Teleport.getComponentType(), var10);
            var1.sendMessage(Message.translation("server.universe.worldpath.teleportedToPoint").param("index", var7));
         }
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderLoadCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<String> nameArg = this.withRequiredArg("name", "server.commands.worldpath.builder.load.name.desc", ArgTypes.STRING);

      class="kw">public WorldPathBuilderLoadCommand() {
         super("load", "server.commands.worldpath.builder.load.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         String var6 = this.nameArg.get(var1);
         WorldPath var7 = var5.getWorldPathConfig().getPath(var6);
         if (var7 == null) {
            var1.sendMessage(Message.translation("server.universe.worldpath.noPathFound").param("path", var6));
         } else {
            WorldPathBuilderCommand.putBuilder(var3, var2, WorldPathBuilderCommand.createBuilder(var3, var2, var7));
         }
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderRemoveCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> indexArg = this.withRequiredArg("index", "server.commands.worldpath.builder.remove.index.desc", ArgTypes.INTEGER);

      class="kw">public WorldPathBuilderRemoveCommand() {
         super("remove", "server.commands.worldpath.builder.remove.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         WorldPathBuilder var6 = WorldPathBuilderCommand.getBuilder(var3, var2);
         if (var6 != null) {
            int var7 = this.indexArg.get(var1);
            var6.getPath().getWaypoints().remove(var7);
            var1.sendMessage(Message.translation("server.universe.worldpath.removedIndex").param("index", var7));
         }
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderSaveCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_UNIVERSE_WORLD_PATH_NO_POINTS_DEFINED = Message.translation("server.universe.worldpath.noPointsDefined");
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_UNIVERSE_WORLD_PATH_SAVED = Message.translation("server.universe.worldpath.saved");
      @Nonnull
      class="kw">private class="kw">final RequiredArg<String> nameArg = this.withRequiredArg("name", "server.commands.worldpath.builder.save.name.desc", ArgTypes.STRING);

      class="kw">public WorldPathBuilderSaveCommand() {
         super("save", "server.commands.worldpath.builder.save.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         String var6 = this.nameArg.get(var1);
         WorldPath var7 = WorldPathBuilderCommand.removeBuilder(var3, var2);
         if (var7 != null && !var7.getWaypoints().isEmpty()) {
            WorldPathConfig var8 = var5.getWorldPathConfig();
            WorldPath var9 = new WorldPath(var6, var7.getWaypoints());
            var8.putPath(var9);
            var8.save(var5);
            var1.sendMessage(MESSAGE_UNIVERSE_WORLD_PATH_SAVED);
         } else {
            var1.sendMessage(MESSAGE_UNIVERSE_WORLD_PATH_NO_POINTS_DEFINED);
         }
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderSetCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_UNIVERSE_WORLD_PATH_POINT_SET = Message.translation("server.universe.worldpath.pointSet");
      @Nonnull
      class="kw">private class="kw">final OptionalArg<Integer> indexArg = this.withOptionalArg("index", "server.commands.worldpath.builder.set.index.desc", ArgTypes.INTEGER);

      class="kw">public WorldPathBuilderSetCommand() {
         super("set", "server.commands.worldpath.builder.set.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         WorldPathBuilder var6 = WorldPathBuilderCommand.getBuilder(var3, var2);
         if (var6 != null) {
            TransformComponent var7 = var2.getComponent(var3, TransformComponent.getComponentType());
            assert var7 != null;
            WorldPath var8 = var6.getPath();
            int var9 = this.indexArg.provided(var1) ? this.indexArg.get(var1) : var8.getWaypoints().size() - 1;
            var8.getWaypoints().set(var9, new Transform(var7.getTransform()));
            var1.sendMessage(MESSAGE_UNIVERSE_WORLD_PATH_POINT_SET);
         }
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderSimulateCommand class="kw">extends AbstractPlayerCommand {
      class="kw">public WorldPathBuilderSimulateCommand() {
         super("simulate", "server.commands.worldpath.builder.simulate.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         WorldPathBuilder var6 = WorldPathBuilderCommand.getBuilder(var3, var2);
         if (var6 != null) {
            ObjectArrayList var7 = new ObjectArrayList(var6.getPath().getWaypoints());
            CompletableFuture var8 = new CompletableFuture<>();
            ScheduledFuture[] var9 = new ScheduledFuture[1];
            var9[0] = HytaleServer.SCHEDULED_EXECUTOR.scheduleWithFixedDelay(() -> {
               Transform var6 = (Transform)var7.removeFirst();
               if (var6 == null) {
                  var8.complete(null);
                  var9[0].cancel(false);
               } else {
                  var5.execute(() -> {
                     Teleport var3 = Teleport.createForPlayer(var6);
                     var2.addComponent(var3, Teleport.getComponentType(), var3);
                  });
               }
            }, 1L, 1L, TimeUnit.SECONDS);
         }
      }
   }

   class="kw">private class="kw">static class WorldPathBuilderStopCommand class="kw">extends AbstractPlayerCommand {
      class="kw">public WorldPathBuilderStopCommand() {
         super("stop", "server.commands.worldpath.builder.stop.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         WorldPathBuilderCommand.removeBuilder(var3, var2);
      }
   }
}