ClearBlocksCommand class

Пакет: com.hypixel.hytale.builtin.buildertools.commands

Файл: com/hypixel/hytale/builtin/buildertools/commands/ClearBlocksCommand.java

extends: AbstractPlayerCommand

Поля (14)

МодификаторыТипИмя
private final RequiredArg<RelativeIntPosition> positionOneArg
private final RequiredArg<RelativeIntPosition> positionTwoArg
RelativeIntPosition var10
RelativeIntPosition var11
Vector3i var12
Vector3i var13
Vector3i var14
Vector3i var15
ChunkStore var6
Player var6
Player var7
BuilderToolsPlugin.BuilderState var7
TransformComponent var8
Vector3d var9

Методы (3)

МодификаторыВозвратСигнатура
new AbstractPlayerCommandnew AbstractPlayerCommand("server.commands.clear.desc")
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
abstract super super("clearBlocks", "server.commands.clear.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.commands;

class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.buildertools.PrototypePlayerBuilderToolSettings;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
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.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.RelativeIntPosition;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockPattern;
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.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class ClearBlocksCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_CLEAR_NO_SELECTION = Message.translation("server.commands.clear.noSelection");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_CLEAR_SUCCESS = Message.translation("server.commands.clear.success");

   class="kw">public ClearBlocksCommand() {
      super("clearBlocks", "server.commands.clear.desc");
      this.setPermissionGroups("hytale:WorldEditor");
      this.addAliases("clear");
      this.addUsageVariant(
         new AbstractPlayerCommand("server.commands.clear.desc") {
            @Nonnull
            class="kw">private class="kw">final RequiredArg<RelativeIntPosition> positionOneArg = this.withRequiredArg(
               "positionOne", "server.commands.clear.positionOne.desc", ArgTypes.RELATIVE_BLOCK_POSITION
            );
            @Nonnull
            class="kw">private class="kw">final RequiredArg<RelativeIntPosition> positionTwoArg = this.withRequiredArg(
               "positionTwo", "server.commands.clear.positionTwo.desc", ArgTypes.RELATIVE_BLOCK_POSITION
            );

            @Override
            class="kw">protected void execute(
               @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
            ) {
               ChunkStore var6 = var5.getChunkStore();
               Player var7 = var2.getComponent(var3, Player.getComponentType());
               assert var7 != null;
               TransformComponent var8 = var2.getComponent(var3, TransformComponent.getComponentType());
               assert var8 != null;
               if (PrototypePlayerBuilderToolSettings.isOkayToDoCommandsOnSelection(var3, var4, var2)) {
                  Vector3d var9 = var8.getPosition();
                  RelativeIntPosition var10 = this.positionOneArg.get(var1);
                  RelativeIntPosition var11 = this.positionTwoArg.get(var1);
                  Vector3i var12 = var10.getBlockPosition(var9, var6);
                  Vector3i var13 = var11.getBlockPosition(var9, var6);
                  Vector3i var14 = Vector3iUtil.min(var12, var13);
                  Vector3i var15 = Vector3iUtil.max(var12, var13);
                  BuilderToolsPlugin.addToQueue(var7, var4, (var2x, var3x, var4x) -> var3x.clear(var14.x, var14.y, var14.z, var15.x, var15.y, var15.z, var4x));
                  var4.sendMessage(ClearBlocksCommand.MESSAGE_COMMANDS_CLEAR_SUCCESS);
               }
            }
         }
      );
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      Player var6 = var2.getComponent(var3, Player.getComponentType());
      assert var6 != null;
      if (PrototypePlayerBuilderToolSettings.isOkayToDoCommandsOnSelection(var3, var4, var2)) {
         BuilderToolsPlugin.BuilderState var7 = BuilderToolsPlugin.getState(var6, var4);
         if (var7.getSelection() == null) {
            var4.sendMessage(MESSAGE_COMMANDS_CLEAR_NO_SELECTION);
         } else {
            BuilderToolsPlugin.addToQueue(var6, var4, (var0, var1x, var2x) -> var1x.set(BlockPattern.EMPTY, var2x));
            var4.sendMessage(MESSAGE_COMMANDS_CLEAR_SUCCESS);
         }
      }
   }
}