SpawnBlockCommand class

Пакет: com.hypixel.hytale.server.core.command.commands.world

Файл: com/hypixel/hytale/server/core/command/commands/world/SpawnBlockCommand.java

extends: AbstractWorldCommand

Поля (8)

МодификаторыТипИмя
UUIDComponent var10
String var11
String var4
Vector3d var5
Rotation3fc var6
TimeResource var7
Holder var8
TransformComponent var9

Методы (1)

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

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.commands.world;

class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.Holder;
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.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.DefaultArg;
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.AbstractWorldCommand;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.entity.entities.BlockEntity;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.time.TimeResource;
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 SpawnBlockCommand class="kw">extends AbstractWorldCommand {
   @Nonnull
   class="kw">private class="kw">final RequiredArg<String> blockArg = this.withRequiredArg("block", "server.commands.spawnblock.arg.block.desc", ArgTypes.BLOCK_TYPE_KEY);
   @Nonnull
   class="kw">private class="kw">final RequiredArg<RelativeDoublePosition> positionArg = this.withRequiredArg(
      "position", "server.commands.spawnblock.arg.position.desc", ArgTypes.RELATIVE_POSITION
   );
   @Nonnull
   class="kw">private class="kw">final DefaultArg<Rotation3fc> rotationArg = this.withDefaultArg(
      "rotation", "server.commands.spawnblock.arg.rotation.desc", ArgTypes.ROTATION, Rotation3f.IDENTITY, "server.commands.spawnblock.arg.rotation.desc"
   );

   class="kw">public SpawnBlockCommand() {
      super("spawnblock", "server.commands.spawnblock.desc");
      this.setPermissionGroups("hytale:WorldEditor");
   }

   @Override
   class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      String var4 = var1.get(this.blockArg);
      Vector3d var5 = var1.get(this.positionArg).getRelativePosition(var1, var2, var3);
      Rotation3fc var6 = this.rotationArg.get(var1);
      TimeResource var7 = var2.getEntityStore().getStore().getResource(TimeResource.getResourceType());
      Holder var8 = BlockEntity.assembleDefaultBlockEntity(var7, var4, var5);
      TransformComponent var9 = var8.ensureAndGetComponent(TransformComponent.getComponentType());
      var9.setPosition(var5);
      var9.setRotation(new Rotation3f(var6));
      UUIDComponent var10 = var8.getComponent(UUIDComponent.getComponentType());
      String var11 = var10 == null ? "None" : var10.getUuid().toString();
      var2.getEntityStore().getStore().addEntity(var8, AddReason.SPAWN);
      var1.sendMessage(Message.translation("server.commands.spawnblock.success").param("id", var11));
   }
}