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