ClearEntitiesCommand class

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

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

extends: AbstractPlayerCommand

Поля (12)

МодификаторыТипИмя
Vector3i var10
int var11
int var12
int var13
ReferenceArrayList var14
Store var15
ObjectListIterator var16
Ref var17
Player var6
BuilderToolsPlugin.BuilderState var7
BlockSelection var8
Vector3i var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var8 == null)
abstract super super("clearEntities", "server.commands.clearEntities.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.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
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.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.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectListIterator;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceArrayList;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;

class="kw">public class ClearEntitiesCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_NO_SELECTION = Message.translation("server.commands.clearEntities.noSelection");

   class="kw">public ClearEntitiesCommand() {
      super("clearEntities", "server.commands.clearEntities.desc");
      this.setPermissionGroups("hytale:WorldEditor");
      this.requirePermission(HytalePermissions.EDITOR_SELECTION_CLIPBOARD);
   }

   @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);
         BlockSelection var8 = var7.getSelection();
         if (var8 == null) {
            var1.sendMessage(MESSAGE_NO_SELECTION);
         } else {
            Vector3i var9 = var8.getSelectionMin();
            Vector3i var10 = var8.getSelectionMax();
            int var11 = var10.x() - var9.x();
            int var12 = var10.y() - var9.y();
            int var13 = var10.z() - var9.z();
            ReferenceArrayList var14 = new ReferenceArrayList();
            BuilderToolsPlugin.forEachCopyableInSelection(var5, var9.x(), var9.y(), var9.z(), var11, var12, var13, var14::add);
            Store var15 = var5.getEntityStore().getStore();
            ObjectListIterator var16 = var14.iterator();

            while (var16.hasNext()) {
               Ref var17 = (Ref<EntityStore>)var16.next();
               var15.removeEntity(var17, RemoveReason.REMOVE);
            }

            var1.sendMessage(Message.translation("server.commands.clearEntities.cleared").param("count", var14.size()));
         }
      }
   }
}