NPCDumpCommand class

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

Файл: com/hypixel/hytale/server/npc/commands/NPCDumpCommand.java

extends: NPCWorldCommandBase

Поля (15)

МодификаторыТипИмя
IAnnotatedComponent var11
List var12
JsonArray var13
JsonObject var15
ComponentInfo var5
ComponentInfo var5
StringBuilder var6
JsonObject var6
Role var7
int var7
ExecutionSupport var8
JsonArray var8
List var9
IAnnotatedComponent var9
int var9

Методы (16)

МодификаторыВозвратСигнатура
static void dumpComponentvoid dumpComponent(@Nonnull ExecutionSupport var0, @Nonnull IAnnotatedComponent var1, int var2, int var3, @Nonnull List<ComponentInfo> var4)
abstract dumpComponent dumpComponent(var8, var7, -1, 0, var9)
abstract dumpComponent dumpComponent(var0, var9, var8, var3 + 1, var4)
static void dumpComponentsAsJsonvoid dumpComponentsAsJson(@Nonnull ExecutionSupport var0, @Nonnull IAnnotatedComponent var1, int var2, int var3, @Nonnull JsonElement var4)
abstract dumpComponentsAsJson dumpComponentsAsJson(var8, var7, -1, 0, var15)
abstract dumpComponentsAsJson dumpComponentsAsJson(var0, var11, var10, var3 + 1, var8)
for for(ComponentInfo var11 : var9)
for for(int var8 = 0; var8 < var7; var8++)
for for(int var10 = 0; var10 < var9; var10++)
for for(String var15 : var12)
if if(var7 != null)
if if(var1 instanceof IAnnotatedComponentCollection var6)
if if(var9 != null)
if if(var1 instanceof IAnnotatedComponentCollection var7)
if if(var11 != null)
abstract super super("dump", "server.commands.npc.dump.desc")

Исходный код

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

class="kw">import com.google.gson.JsonArray;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.google.gson.JsonObject;
class="kw">import com.google.gson.JsonPrimitive;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
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.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.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.role.Role;
class="kw">import com.hypixel.hytale.server.npc.util.ComponentInfo;
class="kw">import com.hypixel.hytale.server.npc.util.IAnnotatedComponent;
class="kw">import com.hypixel.hytale.server.npc.util.IAnnotatedComponentCollection;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;

class="kw">public class NPCDumpCommand class="kw">extends NPCWorldCommandBase {
   @Nonnull
   class="kw">private class="kw">final FlagArg jsonArg = this.withFlagArg("json", "server.commands.npc.dump.json");

   class="kw">public NPCDumpCommand() {
      super("dump", "server.commands.npc.dump.desc");
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull NPCEntity var2, @Nonnull World var3, @Nonnull Store<EntityStore> var4, @Nonnull Ref<EntityStore> var5
   ) {
      StringBuilder var6 = new StringBuilder(var2.getRoleName());
      var6.append(":\n");
      Role var7 = var2.getRole();
      if (var7 != null) {
         ExecutionSupport var8 = var7.acquireExecutionSupport(var5, var4);

         try {
            if (!this.jsonArg.get(var1)) {
               List var9 = new ObjectArrayList();
               dumpComponent(var8, var7, -1, 0, var9);

               for (ComponentInfo var11 : var9) {
                  var6.append(var11).append('\n');
               }
            } else {
               JsonObject var15 = new JsonObject();
               dumpComponentsAsJson(var8, var7, -1, 0, var15);
               var6.append(var15);
            }
         } class="kw">finally {
            var8.clearForReuse();
         }
      }

      NPCPlugin.get().getLogger().at(Level.INFO).log("%s", var6.toString());
   }

   class="kw">private class="kw">static void dumpComponent(@Nonnull ExecutionSupport var0, @Nonnull IAnnotatedComponent var1, int var2, int var3, @Nonnull List<ComponentInfo> var4) {
      ComponentInfo var5 = new ComponentInfo(var1.getClass().getSimpleName(), var2, var3);
      var4.add(var5);
      if (var1 class="kw">instanceof IAnnotatedComponentCollection var6) {
         int var7 = var6.componentCount();

         for (int var8 = 0; var8 < var7; var8++) {
            IAnnotatedComponent var9 = var6.getComponent(var8);
            if (var9 != null) {
               dumpComponent(var0, var9, var8, var3 + 1, var4);
            }
         }
      }

      var1.getInfo(var0, var5);
   }

   class="kw">private class="kw">static void dumpComponentsAsJson(@Nonnull ExecutionSupport var0, @Nonnull IAnnotatedComponent var1, int var2, int var3, @Nonnull JsonElement var4) {
      ComponentInfo var5 = new ComponentInfo(var1.getClass().getSimpleName(), var2, var3);
      JsonObject var6 = var4.isJsonObject() ? var4.getAsJsonObject() : new JsonObject();
      var6.add("name", new JsonPrimitive(var5.getName()));
      if (var5.getIndex() >= 0) {
         var6.add("index", new JsonPrimitive(var5.getIndex()));
      }

      if (var1 class="kw">instanceof IAnnotatedComponentCollection var7) {
         JsonArray var8 = new JsonArray();
         var6.add("children", var8);
         int var9 = var7.componentCount();

         for (int var10 = 0; var10 < var9; var10++) {
            IAnnotatedComponent var11 = var7.getComponent(var10);
            if (var11 != null) {
               dumpComponentsAsJson(var0, var11, var10, var3 + 1, var8);
            }
         }
      }

      var1.getInfo(var0, var5);
      List var12 = var5.getFields();
      if (!var12.isEmpty()) {
         JsonArray var13 = new JsonArray();

         for (String var15 : var12) {
            var13.add(var15);
         }

         var6.add("parameters", var13);
      }

      if (var4.isJsonArray()) {
         var4.getAsJsonArray().add(var6);
      }
   }
}