TeleportToPlayerCommand class

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

Файл: com/hypixel/hytale/builtin/teleport/commands/teleport/variant/TeleportToPlayerCommand.java

extends: AbstractPlayerCommand

Поля (15)

МодификаторыТипИмя
TransformComponent var10
TransformComponent var10
HeadRotation var11
HeadRotation var11
Vector3d var12
Vector3d var12
Rotation3f var13
Rotation3f var13
Transform var14
String var15
PlayerRef var6
Ref var7
Store var8
World var9
Teleport var9

Методы (1)

МодификаторыВозвратСигнатура
abstract super super("server.commands.teleport.toPlayer.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.teleport.components.TeleportHistory;
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.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.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.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HeadRotation;
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.permissions.HytalePermissions;
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 javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class TeleportToPlayerCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_TARGET_NOT_IN_WORLD = Message.translation("server.commands.errors.targetNotInWorld");
   @Nonnull
   class="kw">private class="kw">final RequiredArg<PlayerRef> targetPlayerArg = this.withRequiredArg(
      "targetPlayer", "server.commands.teleport.targetPlayer.desc", ArgTypes.PLAYER_REF
   );

   class="kw">public TeleportToPlayerCommand() {
      super("server.commands.teleport.toPlayer.desc");
      this.requirePermission(HytalePermissions.fromCommand("teleport.self"));
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      PlayerRef var6 = this.targetPlayerArg.get(var1);
      Ref var7 = var6.getReference();
      if (var7 != null && var7.isValid()) {
         Store var8 = var7.getStore();
         World var9 = var8.getExternalData().getWorld();
         TransformComponent var10 = var2.getComponent(var3, TransformComponent.getComponentType());
         assert var10 != null;
         HeadRotation var11 = var2.getComponent(var3, HeadRotation.getComponentType());
         assert var11 != null;
         Vector3d var12 = new Vector3d(var10.getPosition());
         Rotation3f var13 = new Rotation3f(var11.getRotation());
         var9.execute(() -> {
            TransformComponent var10 = var8.getComponent(var7, TransformComponent.getComponentType());
            assert var10 != null;
            HeadRotation var11 = var8.getComponent(var7, HeadRotation.getComponentType());
            assert var11 != null;
            Vector3d var12 = new Vector3d(var10.getPosition());
            Rotation3f var13 = new Rotation3f(var11.getRotation());
            Transform var14 = new Transform(var12, var13);
            String var15 = var6.getUsername();
            var5.execute(() -> {
               Teleport var9 = Teleport.createForPlayer(var9, var14);
               var2.addComponent(var3, Teleport.getComponentType(), var9);
               var1.sendMessage(Message.translation("server.commands.teleport.teleportedToPlayer").param("toName", var15));
               var2.ensureAndGetComponent(var3, TeleportHistory.getComponentType()).append(var5, var12, var13, "Teleport to " + var15);
            });
         });
      } else {
         var1.sendMessage(MESSAGE_COMMANDS_ERRORS_TARGET_NOT_IN_WORLD);
      }
   }
}