CutCommand class

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

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

extends: AbstractPlayerCommand

Поля (32)

МодификаторыТипИмя
private final FlagArg emptyFlag
private final FlagArg entitiesOnlyFlag
private final FlagArg keepAnchorsFlag
private final FlagArg noEntitiesFlag
return
int var10
int var10
int var11
int var11
int var12
int var13
int var14
int var15
int var16
int var17
Player var6
BlockSelection var6
Player var6
BuilderToolsPlugin.BuilderState var7
Vector3i var7
BuilderToolsPlugin.BuilderState var7
boolean var8
Vector3i var8
boolean var8
boolean var9
boolean var9
private final RequiredArg<Integer> xMaxArg
private final RequiredArg<Integer> xMinArg
private final RequiredArg<Integer> yMaxArg
private final RequiredArg<Integer> yMinArg
private final RequiredArg<Integer> zMaxArg
private final RequiredArg<Integer> zMinArg

Методы (8)

МодификаторыВозвратСигнатура
public CutRegionCommandpublic CutRegionCommand()
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
if if(!var8)
if if(!var9 || var8)
if if(!var8)
if if(!var9 || var8)
abstract super super("cut", "server.commands.cut.desc")
abstract super super("server.commands.cut.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.PrefabCopyException;
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.protocol.SoundCategory;
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.FlagArg;
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.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.permissions.HytalePermissions;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.standard.BlockSelection;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.util.TempAssetIdUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;

class="kw">public class CutCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_BUILDER_TOOLS_COPY_CUT_NO_SELECTION = Message.translation("server.builderTools.copycut.noSelection");
   @Nonnull
   class="kw">private class="kw">final FlagArg noEntitiesFlag = this.withFlagArg("noEntities", "server.commands.cut.noEntities.desc");
   @Nonnull
   class="kw">private class="kw">final FlagArg entitiesOnlyFlag = this.withFlagArg("onlyEntities", "server.commands.cut.entitiesonly.desc");
   @Nonnull
   class="kw">private class="kw">final FlagArg emptyFlag = this.withFlagArg("empty", "server.commands.cut.empty.desc");
   @Nonnull
   class="kw">private class="kw">final FlagArg keepAnchorsFlag = this.withFlagArg("keepanchors", "server.commands.cut.keepanchors.desc");

   class="kw">public CutCommand() {
      super("cut", "server.commands.cut.desc");
      this.setPermissionGroups("hytale:WorldEditor");
      this.requirePermission(HytalePermissions.EDITOR_SELECTION_CLIPBOARD);
      this.addUsageVariant(new CutCommand.CutRegionCommand());
   }

   @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);
         boolean var8 = this.entitiesOnlyFlag.get(var1);
         boolean var9 = this.noEntitiesFlag.get(var1);
         int var10 = 2;
         if (!var8) {
            var10 |= 8;
         }

         if (this.emptyFlag.get(var1)) {
            var10 |= 4;
         }

         if (this.keepAnchorsFlag.get(var1)) {
            var10 |= 64;
         }

         if (!var9 || var8) {
            var10 |= 16;
         }

         int var11 = var10;
         BuilderToolsPlugin.addToQueue(var6, var4, (var3x, var4x, var5x) -> {
            try {
               BlockSelection var6 = var7.getSelection();
               if (var6 == null || !var6.hasSelectionBounds()) {
                  var1.sendMessage(MESSAGE_BUILDER_TOOLS_COPY_CUT_NO_SELECTION);
                  class="kw">return;
               }

               Vector3i var7 = var6.getSelectionMin();
               Vector3i var8 = var6.getSelectionMax();
               var7.copyOrCut(var3x, var7.x(), var7.y(), var7.z(), var8.x(), var8.y(), var8.z(), var11, var5x);
            } catch (PrefabCopyException var9) {
               var1.sendMessage(Message.translation("server.builderTools.copycut.copyFailedReason").param("reason", var9.getMessage()));
            }
         });
      }
   }

   class="kw">private class="kw">static class CutRegionCommand class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> xMinArg = this.withRequiredArg("xMin", "server.commands.cut.xMin.desc", ArgTypes.INTEGER);
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> yMinArg = this.withRequiredArg("yMin", "server.commands.cut.yMin.desc", ArgTypes.INTEGER);
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> zMinArg = this.withRequiredArg("zMin", "server.commands.cut.zMin.desc", ArgTypes.INTEGER);
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> xMaxArg = this.withRequiredArg("xMax", "server.commands.cut.xMax.desc", ArgTypes.INTEGER);
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> yMaxArg = this.withRequiredArg("yMax", "server.commands.cut.yMax.desc", ArgTypes.INTEGER);
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> zMaxArg = this.withRequiredArg("zMax", "server.commands.cut.zMax.desc", ArgTypes.INTEGER);
      @Nonnull
      class="kw">private class="kw">final FlagArg noEntitiesFlag = this.withFlagArg("noEntities", "server.commands.cut.noEntities.desc");
      @Nonnull
      class="kw">private class="kw">final FlagArg entitiesOnlyFlag = this.withFlagArg("onlyEntities", "server.commands.cut.entitiesonly.desc");
      @Nonnull
      class="kw">private class="kw">final FlagArg emptyFlag = this.withFlagArg("empty", "server.commands.cut.empty.desc");
      @Nonnull
      class="kw">private class="kw">final FlagArg keepAnchorsFlag = this.withFlagArg("keepanchors", "server.commands.cut.keepanchors.desc");

      class="kw">public CutRegionCommand() {
         super("server.commands.cut.desc");
      }

      @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);
            boolean var8 = this.entitiesOnlyFlag.get(var1);
            boolean var9 = this.noEntitiesFlag.get(var1);
            int var10 = 2;
            if (!var8) {
               var10 |= 8;
            }

            if (this.emptyFlag.get(var1)) {
               var10 |= 4;
            }

            if (this.keepAnchorsFlag.get(var1)) {
               var10 |= 64;
            }

            if (!var9 || var8) {
               var10 |= 16;
            }

            int var11 = this.xMinArg.get(var1);
            int var12 = this.yMinArg.get(var1);
            int var13 = this.zMinArg.get(var1);
            int var14 = this.xMaxArg.get(var1);
            int var15 = this.yMaxArg.get(var1);
            int var16 = this.zMaxArg.get(var1);
            int var17 = var10;
            BuilderToolsPlugin.addToQueue(var6, var4, (var9x, var10x, var11x) -> {
               try {
                  var7.copyOrCut(var9x, var11, var12, var13, var14, var15, var16, var17, var11x);
               } catch (PrefabCopyException var13) {
                  var1.sendMessage(Message.translation("server.builderTools.copycut.copyFailedReason").param("reason", var13.getMessage()));
                  SoundUtil.playSoundEvent2d(var9x, TempAssetIdUtil.getSoundEventIndex("CREATE_ERROR"), SoundCategory.UI, var11x);
               }
            });
         }
      }
   }
}