PasteAtPositionCommand class

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

Файл: com/hypixel/hytale/builtin/buildertools/commands/PasteCommand.java

extends: AbstractPlayerCommand

Поля (9)

МодификаторыТипИмя
private final RequiredArg<RelativeIntPosition> positionArg
private final FlagArg technicalFlag
RelativeIntPosition var10
Vector3i var11
boolean var12
ChunkStore var6
Player var7
TransformComponent var8
Vector3d var9

Методы (2)

МодификаторыВозвратСигнатура
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
abstract super super("server.commands.paste.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.FlagArg;
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.RelativeIntPosition;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.ChunkStore;
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">import org.joml.Vector3i;

class="kw">public class PasteCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">final FlagArg technicalFlag = this.withFlagArg("technical", "server.commands.paste.technical.desc");

   class="kw">public PasteCommand() {
      super("paste", "server.commands.paste.desc");
      this.setPermissionGroups("hytale:WorldEditor");
      this.requirePermission(HytalePermissions.EDITOR_SELECTION_CLIPBOARD);
      this.addUsageVariant(new PasteCommand.PasteAtPositionCommand());
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      ChunkStore var6 = var5.getChunkStore();
      Player var7 = var2.getComponent(var3, Player.getComponentType());
      assert var7 != null;
      TransformComponent var8 = var2.getComponent(var3, TransformComponent.getComponentType());
      assert var8 != null;
      Vector3d var9 = var8.getPosition();
      int var10 = MathUtil.floor(var9.x);
      int var11 = MathUtil.floor(var9.y);
      int var12 = MathUtil.floor(var9.z);
      boolean var13 = this.technicalFlag.get(var1);
      BuilderToolsPlugin.addToQueue(var7, var4, (var4x, var5x, var6x) -> var5x.paste(var4x, var10, var11, var12, var13, var6x));
   }

   class="kw">private class="kw">static class PasteAtPositionCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<RelativeIntPosition> positionArg = this.withRequiredArg(
         "position", "server.commands.paste.position.desc", ArgTypes.RELATIVE_BLOCK_POSITION
      );
      @Nonnull
      class="kw">private class="kw">final FlagArg technicalFlag = this.withFlagArg("technical", "server.commands.paste.technical.desc");

      class="kw">public PasteAtPositionCommand() {
         super("server.commands.paste.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         ChunkStore var6 = var5.getChunkStore();
         Player var7 = var2.getComponent(var3, Player.getComponentType());
         assert var7 != null;
         TransformComponent var8 = var2.getComponent(var3, TransformComponent.getComponentType());
         assert var8 != null;
         Vector3d var9 = var8.getPosition();
         RelativeIntPosition var10 = this.positionArg.get(var1);
         Vector3i var11 = var10.getBlockPosition(var9, var6);
         boolean var12 = this.technicalFlag.get(var1);
         BuilderToolsPlugin.addToQueue(var7, var4, (var2x, var3x, var4x) -> var3x.paste(var2x, var11.x, var11.y, var11.z, var12, var4x));
      }
   }
}