SpawnMarkersCommand class

Пакет: com.hypixel.hytale.server.spawning.commands

Файл: com/hypixel/hytale/server/spawning/commands/SpawnMarkersCommand.java

extends: AbstractCommandCollection

Поля (12)

МодификаторыТипИмя
private static final Message COMMANDS_ERRORS_PLAYER_ONLY
private final FlagArg flipArg
private final RequiredArg<SpawnMarker> markerArg
TransformComponent var10
Model var11
Ref var12
WorldConfig var4
WorldConfig var4
TransformComponent var6
SpawnMarker var7
SpawnMarkerEntity var8
Holder var9

Методы (11)

МодификаторыВозвратСигнатура
public Addpublic Add()
public DisableCommandpublic DisableCommand()
public EnableCommandpublic EnableCommand()
abstract throw new GeneralCommandExceptionthrow new GeneralCommandException(COMMANDS_ERRORS_PLAYER_ONLY)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3)
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3)
abstract super super("markers", "server.commands.spawning.markers.desc")
abstract super super("add", "server.commands.spawning.markers.add.desc")
abstract super super("disable", "server.commands.spawning.markers.disable.desc")
abstract super super("enable", "server.commands.spawning.markers.enable.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.Axis;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.Model;
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.AssetArgumentType;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractCommandCollection;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
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.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.entity.nameplate.Nameplate;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HiddenFromAdventurePlayers;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentModel;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.WorldConfig;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.spawning.assets.spawnmarker.config.SpawnMarker;
class="kw">import com.hypixel.hytale.server.spawning.spawnmarkers.SpawnMarkerEntity;
class="kw">import javax.annotation.Nonnull;

class="kw">public class SpawnMarkersCommand class="kw">extends AbstractCommandCollection {
   @Nonnull
   class="kw">private class="kw">static class="kw">final AssetArgumentType<SpawnMarker, ?> SPAWN_MARKER_ASSET_TYPE = new AssetArgumentType(
      "server.commands.spawning.markers.arg.marker.name", SpawnMarker.class, "server.commands.spawning.markers.arg.marker.usage"
   );

   class="kw">public SpawnMarkersCommand() {
      super("markers", "server.commands.spawning.markers.desc");
      this.addSubCommand(new SpawnMarkersCommand.EnableCommand());
      this.addSubCommand(new SpawnMarkersCommand.DisableCommand());
      this.addSubCommand(new SpawnMarkersCommand.Add());
   }

   class="kw">private class="kw">static class Add class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message COMMANDS_ERRORS_PLAYER_ONLY = Message.translation("server.commands.errors.playerOnly");
      @Nonnull
      class="kw">private class="kw">final RequiredArg<SpawnMarker> markerArg = this.withRequiredArg(
         "marker", "server.commands.spawning.markers.add.arg.marker.desc", SpawnMarkersCommand.SPAWN_MARKER_ASSET_TYPE
      );
      @Nonnull
      class="kw">private class="kw">final FlagArg flipArg = this.withFlagArg("flip", "server.commands.spawning.markers.add.flip.desc");

      class="kw">public Add() {
         super("add", "server.commands.spawning.markers.add.desc");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         if (!var1.isPlayer()) {
            throw new GeneralCommandException(COMMANDS_ERRORS_PLAYER_ONLY);
         }

         TransformComponent var6 = var2.getComponent(var3, TransformComponent.getComponentType());
         assert var6 != null;
         SpawnMarker var7 = this.markerArg.get(var1);
         SpawnMarkerEntity var8 = new SpawnMarkerEntity();
         var8.setSpawnMarker(var7);
         Holder var9 = EntityStore.REGISTRY.newHolder();
         var9.addComponent(SpawnMarkerEntity.getComponentType(), var8);
         TransformComponent var10 = var6.clone();
         if (this.flipArg.get(var1)) {
            var10.getRotation().flipRotationOnAxis(Axis.Y);
         }

         var9.addComponent(TransformComponent.getComponentType(), var10);
         var9.addComponent(Nameplate.getComponentType(), new Nameplate(var7.getId()));
         var9.ensureComponent(UUIDComponent.getComponentType());
         var9.ensureComponent(HiddenFromAdventurePlayers.getComponentType());
         Model var11 = SpawnMarkerEntity.getModel(var7);
         var9.addComponent(ModelComponent.getComponentType(), new ModelComponent(var11));
         var9.addComponent(PersistentModel.getComponentType(), new PersistentModel(var11.toReference()));
         Ref var12 = var2.addEntity(var9, AddReason.SPAWN);
         if (var12 != null && var12.isValid()) {
            var1.sendMessage(Message.translation("server.commands.spawning.markers.add.added").param("markerId", var7.getId()));
         } else {
            var1.sendMessage(Message.translation("server.commands.spawning.markers.add.failed").param("markerId", var7.getId()));
         }
      }
   }

   class="kw">private class="kw">static class DisableCommand class="kw">extends AbstractWorldCommand {
      class="kw">public DisableCommand() {
         super("disable", "server.commands.spawning.markers.disable.desc");
      }

      @Override
      class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
         WorldConfig var4 = var2.getWorldConfig();
         var4.setIsSpawnMarkersEnabled(false);
         var4.markChanged();
         var1.sendMessage(Message.translation("server.commands.spawning.markers.disabled").param("worldName", var2.getName()));
      }
   }

   class="kw">private class="kw">static class EnableCommand class="kw">extends AbstractWorldCommand {
      class="kw">public EnableCommand() {
         super("enable", "server.commands.spawning.markers.enable.desc");
      }

      @Override
      class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
         WorldConfig var4 = var2.getWorldConfig();
         var4.setIsSpawnMarkersEnabled(true);
         var4.markChanged();
         var1.sendMessage(Message.translation("server.commands.spawning.markers.enabled").param("worldName", var2.getName()));
      }
   }
}