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));
}
}