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