InstanceSpawnCommand class

Пакет: com.hypixel.hytale.builtin.instances.command

Файл: com/hypixel/hytale/builtin/instances/command/InstanceSpawnCommand.java

extends: AbstractPlayerCommand

Поля (8)

МодификаторыТипИмя
Transform var10
TransformComponent var5
Vector3d var6
var6
var6
TransformComponent var7
String var8
CompletableFuture var9

Методы (2)

МодификаторыВозвратСигнатура
protected Rotation3fc getSpawnRotationRotation3fc getSpawnRotation(@Nonnull Ref<EntityStore> var1, @Nonnull CommandContext var2, @Nonnull DefaultArg<Rotation3fc> var3, @Nonnull ComponentAccessor<EntityStore> var4)
abstract super super("spawn", "server.commands.instances.spawn.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.instances.InstanceValidator;
class="kw">import com.hypixel.hytale.builtin.instances.InstancesPlugin;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Rotation3fc;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.DefaultArg;
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.arguments.types.RelativeDoublePosition;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class InstanceSpawnCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">final RequiredArg<String> instanceNameArg = this.withRequiredArg("instanceName", "server.commands.instances.spawn.arg.name", ArgTypes.STRING)
      .addValidator(new InstanceValidator());
   @Nonnull
   class="kw">private class="kw">final OptionalArg<RelativeDoublePosition> positionArg = this.withOptionalArg(
      "position", "server.commands.instances.spawn.arg.position", ArgTypes.RELATIVE_POSITION
   );
   @Nonnull
   class="kw">private class="kw">final DefaultArg<Rotation3fc> rotationArg = this.withDefaultArg(
      "rotation",
      "server.commands.instances.spawn.arg.rotation",
      ArgTypes.ROTATION,
      Rotation3f.IDENTITY,
      "server.commands.instances.spawn.arg.rotation.class="kw">default"
   );

   class="kw">public InstanceSpawnCommand() {
      super("spawn", "server.commands.instances.spawn.desc");
      this.addAliases("sp");
   }

   class="kw">protected Rotation3fc getSpawnRotation(
      @Nonnull Ref<EntityStore> var1, @Nonnull CommandContext var2, @Nonnull DefaultArg<Rotation3fc> var3, @Nonnull ComponentAccessor<EntityStore> var4
   ) {
      if (!var3.provided(var2) && var2.isPlayer()) {
         TransformComponent var5 = var4.getComponent(var1, TransformComponent.getComponentType());
         assert var5 != null;
         class="kw">return new Rotation3f(var5.getRotation());
      } else {
         class="kw">return var3.get(var2);
      }
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      Vector3d var6;
      if (!this.positionArg.provided(var1)) {
         TransformComponent var7 = var2.getComponent(var3, TransformComponent.getComponentType());
         assert var7 != null;
         var6 = var7.getPosition();
      } else {
         var6 = this.positionArg.get(var1).getRelativePosition(var1, var5, var2);
      }

      Transform var10 = new Transform(new Vector3d(var6), new Rotation3f(this.getSpawnRotation(var3, var1, this.rotationArg, var2)));
      String var8 = this.instanceNameArg.get(var1);
      CompletableFuture var9 = InstancesPlugin.get().spawnInstance(var8, var5, var10);
      InstancesPlugin.teleportPlayerToLoadingInstance(var3, var2, var9, null);
   }
}