EncounterCommand class

Пакет: com.hypixel.hytale.builtin.encountermanager

Файл: com/hypixel/hytale/builtin/encountermanager/EncounterCommand.java

extends: AbstractCommandCollection

Поля (15)

МодификаторыТипИмя
private final RequiredArg<BuilderInfo> encounterArg
Holder var10
Model var11
Ref var12
NPCPlugin var3
int var4
BuilderInfo var5
String var5
ObjectIterator var6
TransformComponent var6
BuilderInfo var7
BuilderInfo var7
String var8
String var8
EncounterManager var9

Методы (8)

МодификаторыВозвратСигнатура
public Addpublic Add()
protected void executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5)
if if(var4 != Integer.MIN_VALUE)
if if(var6 == null)
public BuilderInfo parsepublic BuilderInfo parse(@Nonnull String var1, @Nonnull ParseResult var2)
public void suggestpublic void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4)
abstract super super("encounter", "server.commands.encounter.desc")
abstract super super("add", "server.commands.encounter.add.desc")

Исходный код

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

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.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.CommandSender;
class="kw">import com.hypixel.hytale.server.core.command.system.ParseResult;
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.SingleArgumentType;
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.exceptions.GeneralCommandException;
class="kw">import com.hypixel.hytale.server.core.command.system.suggestion.SuggestionResult;
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.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderInfo;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import java.awt.Color;
class="kw">import java.util.Locale;
class="kw">import javax.annotation.Nonnull;

class="kw">public class EncounterCommand class="kw">extends AbstractCommandCollection {
   @Nonnull
   class="kw">public class="kw">static class="kw">final SingleArgumentType<BuilderInfo> ENCOUNTER_ASSET = new SingleArgumentType<BuilderInfo>(
      "server.commands.encounter.argtype.name", "server.commands.encounter.argtype.usage"
   ) {
      class="kw">public BuilderInfo parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         NPCPlugin var3 = NPCPlugin.get();
         int var4 = var3.getIndex(var1);
         if (var4 != Integer.MIN_VALUE) {
            BuilderInfo var5 = var3.getBuilderManager().tryGetBuilderInfo(var4);
            if (var5 != null && var5.getBuilder().category() == EncounterManager.class) {
               if (!var5.getBuilder().isSpawnable()) {
                  var2.fail(Message.translation("server.commands.encounter.add.notspawnable").param("id", var1).color(Color.RED));
                  class="kw">return null;
               }

               class="kw">return var5;
            }
         }

         var2.fail(Message.translation("server.commands.notfound").param("type", "Encounter").param("id", var1).color(Color.RED));
         class="kw">return null;
      }

      @Override
      class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
         String var5 = var2.toLowerCase(Locale.ROOT);
         ObjectIterator var6 = NPCPlugin.get().getBuilderManager().getAllBuilders().values().iterator();

         while (var6.hasNext()) {
            BuilderInfo var7 = (BuilderInfo)var6.next();
            if (var7.getBuilder().category() == EncounterManager.class && var7.getBuilder().isSpawnable()) {
               String var8 = var7.getKeyName();
               if (var8.toLowerCase(Locale.ROOT).startsWith(var5)) {
                  var4.suggest(var8);
               }
            }
         }
      }
   };

   class="kw">public EncounterCommand() {
      super("encounter", "server.commands.encounter.desc");
      this.setPermissionGroups("hytale:WorldEditor");
      this.addSubCommand(new EncounterCommand.Add());
   }

   class="kw">private class="kw">static class Add class="kw">extends AbstractPlayerCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<BuilderInfo> encounterArg = this.withRequiredArg(
         "encounter", "server.commands.encounter.add.arg.encounter.desc", EncounterCommand.ENCOUNTER_ASSET
      );

      class="kw">public Add() {
         super("add", "server.commands.encounter.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());
         if (var6 == null) {
            throw new GeneralCommandException(Message.translation("server.commands.errors.playerOnly"));
         }

         BuilderInfo var7 = this.encounterArg.get(var1);
         String var8 = var7.getKeyName();
         EncounterManager var9 = new EncounterManager(var8, var7.getIndex());
         Holder var10 = EntityStore.REGISTRY.newHolder();
         var10.addComponent(EncounterManager.getComponentType(), var9);
         var10.addComponent(TransformComponent.getComponentType(), var6.clone());
         var10.addComponent(Nameplate.getComponentType(), new Nameplate(var8));
         var10.ensureComponent(UUIDComponent.getComponentType());
         var10.ensureComponent(HiddenFromAdventurePlayers.getComponentType());
         Model var11 = EncounterManagerPlugin.get().getMarkerModel();
         var10.addComponent(ModelComponent.getComponentType(), new ModelComponent(var11));
         var10.addComponent(PersistentModel.getComponentType(), new PersistentModel(var11.toReference()));
         Ref var12 = var2.addEntity(var10, AddReason.SPAWN);
         if (var12 != null && var12.isValid()) {
            var1.sendMessage(Message.translation("server.commands.encounter.add.added").param("encounterId", var8));
         } else {
            var1.sendMessage(Message.translation("server.commands.encounter.add.failed").param("encounterId", var8));
         }
      }
   }
}