TargetPrefabSpawnerCommand class
Пакет: com.hypixel.hytale.server.core.modules.prefabspawner.commands
Файл: com/hypixel/hytale/server/core/modules/prefabspawner/commands/TargetPrefabSpawnerCommand.java
extends: AbstractWorldCommand
Поля (10)
| Модификаторы | Тип | Имя |
|---|---|---|
|
WorldChunk |
var10 |
|
Ref |
var11 |
|
Vector3i |
var4 |
|
|
var4 |
|
|
var4 |
|
RelativeIntPosition |
var5 |
|
Vector3i |
var6 |
|
PrefabSpawnerBlock |
var7 |
|
BlockModule.BlockStateInfo |
var8 |
|
Ref |
var9 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_PROVIDE_POSITION) |
abstract |
throw new |
GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_GENERAL_BLOCK_TARGET_NOT_IN_RANGE) |
abstract abstract |
void |
executevoid execute(@Nonnull CommandContext var1, @Nonnull PrefabSpawnerBlock var2, @Nonnull BlockModule.BlockStateInfo var3) |
|
|
if if(var6 == null) |
|
|
if if(var11 == null) |
|
|
if if(var7 == null) |
abstract |
|
super super(var1, var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.prefabspawner.commands;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
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.OptionalArg;
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.AbstractWorldCommand;
class="kw">import com.hypixel.hytale.server.core.command.system.exceptions.GeneralCommandException;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.prefabspawner.PrefabSpawnerBlock;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.WorldChunk;
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 com.hypixel.hytale.server.core.util.TargetUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;
class="kw">public class="kw">abstract class TargetPrefabSpawnerCommand class="kw">extends AbstractWorldCommand {
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_GENERAL_BLOCK_TARGET_NOT_IN_RANGE = Message.translation("server.general.blockTargetNotInRange");
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_PROVIDE_POSITION = Message.translation("server.commands.errors.providePosition");
@Nonnull
class="kw">protected class="kw">final OptionalArg<RelativeIntPosition> positionArg = this.withOptionalArg(
"position", "server.commands.prefabspawner.position.desc", ArgTypes.RELATIVE_BLOCK_POSITION
);
class="kw">public TargetPrefabSpawnerCommand(@Nonnull String var1, @Nonnull String var2) {
super(var1, var2);
}
@Override
class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
Vector3i var4;
if (this.positionArg.provided(var1)) {
RelativeIntPosition var5 = this.positionArg.get(var1);
var4 = var5.getBlockPosition(var1, var3);
} else {
if (!var1.isPlayer()) {
throw new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_PROVIDE_POSITION);
}
Ref var9 = var1.senderAsPlayerRef();
Vector3i var6 = TargetUtil.getTargetBlock(var9, 10.0, var3);
if (var6 == null) {
throw new GeneralCommandException(MESSAGE_GENERAL_BLOCK_TARGET_NOT_IN_RANGE);
}
var4 = var6;
}
WorldChunk var10 = var2.getChunk(ChunkUtil.indexChunkFromBlock(var4.x, var4.z));
Ref var11 = var10.getBlockComponentEntity(var4.x, var4.y, var4.z);
if (var11 == null) {
var1.sendMessage(Message.translation("server.commands.prefabspawner.spawnerNotFoundAtTarget").param("pos", var4.toString()));
} else {
PrefabSpawnerBlock var7 = var11.getStore().getComponent(var11, PrefabSpawnerBlock.getComponentType());
if (var7 == null) {
var1.sendMessage(Message.translation("server.commands.prefabspawner.spawnerNotFoundAtTarget").param("pos", var4.toString()));
} else {
BlockModule.BlockStateInfo var8 = var11.getStore().getComponent(var11, BlockModule.BlockStateInfo.getComponentType());
assert var8 != null;
this.execute(var1, var7, var8);
}
}
}
class="kw">protected class="kw">abstract void execute(@Nonnull CommandContext var1, @Nonnull PrefabSpawnerBlock var2, @Nonnull BlockModule.BlockStateInfo var3);
}