SpawnSuppressionCommand class

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

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

extends: AbstractCommandCollection

Поля (13)

МодификаторыТипИмя
private static final Message MESSAGE_COMMANDS_SPAWNING_SUPPRESSION_DUMP_DUMPED
private static final Message MESSAGE_COMMANDS_SPAWNING_SUPPRESSION_DUMP_DUMPED
private final RequiredArg<SpawnSuppression> suppressionArg
SpawnSuppressionController var1
Model var10
Nameplate var11
StringBuilder var2
List var4
String var4
TransformComponent var6
SpawnSuppression var7
Rotation3f var8
Holder var9

Методы (10)

МодификаторыВозвратСигнатура
public Addpublic Add()
public Dumppublic Dump()
public DumpAllpublic DumpAll()
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("suppression", "server.commands.spawning.suppression.desc")
abstract super super("add", "server.commands.spawning.suppression.add.desc")
abstract super super("dump", "server.commands.spawning.suppression.dump.desc")
abstract super super("dumpall", "server.commands.spawning.suppression.dump.all.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.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
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.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.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.Universe;
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.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.spawning.SpawningPlugin;
class="kw">import com.hypixel.hytale.server.spawning.assets.spawnsuppression.SpawnSuppression;
class="kw">import com.hypixel.hytale.server.spawning.suppression.component.ChunkSuppressionEntry;
class="kw">import com.hypixel.hytale.server.spawning.suppression.component.SpawnSuppressionComponent;
class="kw">import com.hypixel.hytale.server.spawning.suppression.component.SpawnSuppressionController;
class="kw">import java.util.List;
class="kw">import java.util.stream.Collectors;
class="kw">import javax.annotation.Nonnull;

class="kw">public class SpawnSuppressionCommand class="kw">extends AbstractCommandCollection {
   @Nonnull
   class="kw">private class="kw">static class="kw">final AssetArgumentType<SpawnSuppression, ?> SPAWN_SUPPRESSION_ASSET_TYPE = new AssetArgumentType(
      "server.commands.spawning.suppression.arg.suppression.name", SpawnSuppression.class, "server.commands.spawning.suppression.arg.suppression.usage"
   );

   class="kw">public SpawnSuppressionCommand() {
      super("suppression", "server.commands.spawning.suppression.desc");
      this.addSubCommand(new SpawnSuppressionCommand.Dump());
      this.addSubCommand(new SpawnSuppressionCommand.DumpAll());
      this.addSubCommand(new SpawnSuppressionCommand.Add());
   }

   @Nonnull
   class="kw">private class="kw">static String dumpWorld(@Nonnull World var0) {
      SpawnSuppressionController var1 = var0.getEntityStore().getStore().getResource(SpawnSuppressionController.getResourceType());
      StringBuilder var2 = new StringBuilder("World: ").append(var0.getName()).append("\n  Spawn Suppressors:");
      var1.getSpawnSuppressorMap().values().forEach(var1x -> var2.append("\n    ").append(var1x.getSuppressionId()).append(": ").append(var1x.getPosition()));
      var2.append("\n  Chunk Annotations:");
      var1.getChunkSuppressionMap().forEach((var1x, var3) -> {
         var2.append("\n    Chunk ").append(var1x).append(": ");
         List var4 = var3.getSuppressionSpans();
         var4.forEach(var1xx -> {
            var2.append("\n      From y=").append(var1xx.getMinY()).append(" to y=").append(var1xx.getMaxY());
            var2.append("\n      Suppressing Roles: [ ");
            if (var1xx.getSuppressedRoles() != null) {
               var2.append(var1xx.getSuppressedRoles().stream().map(var0x -> NPCPlugin.get().getName(var0x)).collect(Collectors.joining(", ")));
            }

            var2.append(" ]");
         });
      });
      class="kw">return var2.toString();
   }

   class="kw">private class="kw">static class Add class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<SpawnSuppression> suppressionArg = this.withRequiredArg(
         "suppression", "server.commands.spawning.suppression.add.arg.suppression.desc", SpawnSuppressionCommand.SPAWN_SUPPRESSION_ASSET_TYPE
      );

      class="kw">public Add() {
         super("add", "server.commands.spawning.suppression.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
      ) {
         TransformComponent var6 = var2.getComponent(var3, TransformComponent.getComponentType());
         assert var6 != null;
         SpawnSuppression var7 = this.suppressionArg.get(var1);
         Rotation3f var8 = var6.getRotation();
         Holder var9 = EntityStore.REGISTRY.newHolder();
         var9.addComponent(SpawnSuppressionComponent.getComponentType(), new SpawnSuppressionComponent(var7.getId()));
         var9.addComponent(TransformComponent.getComponentType(), new TransformComponent(var6.getPosition(), var8));
         var9.ensureComponent(UUIDComponent.getComponentType());
         var9.ensureComponent(HiddenFromAdventurePlayers.getComponentType());
         Model var10 = SpawningPlugin.get().getSpawnMarkerModel();
         var9.addComponent(ModelComponent.getComponentType(), new ModelComponent(var10));
         var9.addComponent(PersistentModel.getComponentType(), new PersistentModel(var10.toReference()));
         Nameplate var11 = new Nameplate("SpawnSuppression: " + var7);
         var9.addComponent(Nameplate.getComponentType(), var11);
         var2.addEntity(var9, AddReason.SPAWN);
         var1.sendMessage(Message.translation("server.commands.spawning.suppression.add.added").param("suppressionId", var7.getId()));
      }
   }

   class="kw">private class="kw">static class Dump class="kw">extends AbstractWorldCommand {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_SPAWNING_SUPPRESSION_DUMP_DUMPED = Message.translation("server.commands.spawning.suppression.dump.dumped");

      class="kw">public Dump() {
         super("dump", "server.commands.spawning.suppression.dump.desc");
      }

      @Override
      class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
         String var4 = SpawnSuppressionCommand.dumpWorld(var2);
         var1.sendMessage(MESSAGE_COMMANDS_SPAWNING_SUPPRESSION_DUMP_DUMPED);
         ((HytaleLogger.Api)SpawningPlugin.get().getLogger().atInfo()).log("%s", var4);
      }
   }

   class="kw">private class="kw">static class DumpAll class="kw">extends AbstractWorldCommand {
      @Nonnull
      class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_SPAWNING_SUPPRESSION_DUMP_DUMPED = Message.translation("server.commands.spawning.suppression.dump.dumped");

      class="kw">public DumpAll() {
         super("dumpall", "server.commands.spawning.suppression.dump.all.desc");
      }

      @Override
      class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
         Universe.get()
            .getWorlds()
            .values()
            .forEach(var0 -> ((HytaleLogger.Api)SpawningPlugin.get().getLogger().atInfo()).log("%s", SpawnSuppressionCommand.dumpWorld(var0)));
         var1.sendMessage(MESSAGE_COMMANDS_SPAWNING_SUPPRESSION_DUMP_DUMPED);
      }
   }
}