BlockSpawnerGetCommand class
Пакет: com.hypixel.hytale.builtin.blockspawner.command
Файл: com/hypixel/hytale/builtin/blockspawner/command/BlockSpawnerGetCommand.java
extends: AbstractWorldCommand
Поля (12)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Ref |
var10 |
|
BlockSpawner |
var11 |
|
Ref |
var12 |
|
ChunkStore |
var13 |
|
long |
var14 |
|
Vector3i |
var4 |
|
|
var4 |
|
|
var4 |
|
RelativeIntPosition |
var5 |
|
Vector3i |
var6 |
|
Ref |
var8 |
|
WorldChunk |
var9 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_PROVIDE_POSITION) |
abstract |
throw new |
GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD) |
abstract |
throw new |
GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_GENERAL_BLOCK_TARGET_NOT_IN_RANGE) |
|
|
if if(var6 == null) |
|
|
if if(var11 == null) |
abstract |
|
super super("get", "server.commands.blockspawner.get.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.blockspawner.command;
class="kw">import com.hypixel.hytale.builtin.blockspawner.state.BlockSpawner;
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.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 BlockSpawnerGetCommand 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">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD = Message.translation("server.commands.errors.playerNotInWorld");
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_BLOCK_SPAWNER_NO_BLOCK_SPAWNER_SET = Message.translation("server.commands.blockspawner.noBlockSpawnerSet");
@Nonnull
class="kw">private class="kw">final OptionalArg<RelativeIntPosition> positionArg = this.withOptionalArg(
"position", "server.commands.blockspawner.position.desc", ArgTypes.RELATIVE_BLOCK_POSITION
);
class="kw">public BlockSpawnerGetCommand() {
super("get", "server.commands.blockspawner.get.desc");
}
@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 var12 = var1.senderAsPlayerRef();
if (var12 == null || !var12.isValid()) {
throw new GeneralCommandException(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
}
Vector3i var6 = TargetUtil.getTargetBlock(var12, 10.0, var3);
if (var6 == null) {
throw new GeneralCommandException(MESSAGE_GENERAL_BLOCK_TARGET_NOT_IN_RANGE);
}
var4 = var6;
}
ChunkStore var13 = var2.getChunkStore();
long var14 = ChunkUtil.indexChunkFromBlock(var4.x, var4.z);
Ref var8 = var13.getChunkReference(var14);
if (var8 != null && var8.isValid()) {
WorldChunk var9 = var13.getStore().getComponent(var8, WorldChunk.getComponentType());
assert var9 != null;
Ref var10 = var9.getBlockComponentEntity(var4.x, var4.y, var4.z);
if (var10 != null && var10.isValid()) {
BlockSpawner var11 = var13.getStore().getComponent(var10, BlockSpawner.getComponentType());
if (var11 == null) {
var1.sendMessage(Message.translation("server.general.containerNotFound").param("block", var4.toString()));
} else {
if (var11.getBlockSpawnerId() == null) {
var1.sendMessage(MESSAGE_COMMANDS_BLOCK_SPAWNER_NO_BLOCK_SPAWNER_SET);
} else {
var1.sendMessage(Message.translation("server.commands.blockspawner.currentBlockSpawner").param("id", var11.getBlockSpawnerId()));
}
}
} else {
var1.sendMessage(Message.translation("server.general.containerNotFound").param("block", var4.toString()));
}
} else {
var1.sendMessage(Message.translation("server.general.containerNotFound").param("block", var4.toString()));
}
}
}