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