NPCMemoryProvider class

Пакет: com.hypixel.hytale.builtin.adventure.memories.memories.npc

Файл: com/hypixel/hytale/builtin/adventure/memories/memories/npc/NPCMemoryProvider.java

extends: MemoryProvider<NPCMemory>

Поля (20)

МодификаторыТипИмя
final double DEFAULT_RADIUS
Map var1
Int2ObjectMap var2
ExecutionContext var2
ExecutionContext var2
ExecutionContext var2
ExecutionContext var2
ObjectIterator var3
Scope var3
Scope var3
Scope var3
Scope var3
BuilderInfo var4
Builder var5
String var6
NPCMemory var7
var7
var7
String var8
String var9

Методы (7)

МодификаторыВозвратСигнатура
if if(var6 != null)
if if(var0 instanceof ISpawnableWithModel var1)
if if(var0 instanceof ISpawnableWithModel var1)
if if(var0 instanceof ISpawnableWithModel var1)
if if(var0 instanceof ISpawnableWithModel var1)
static boolean isMemoryboolean isMemory(@Nonnull Builder<?> var0)
abstract super super("NPC", NPCMemory.CODEC, 10.0)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.memories.MemoriesPlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.memories.memories.Memory;
class="kw">import com.hypixel.hytale.builtin.adventure.memories.memories.MemoryProvider;
class="kw">import com.hypixel.hytale.logger.sentry.SkipSentryException;
class="kw">import com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Builder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderInfo;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.spawning.ISpawnableWithModel;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class NPCMemoryProvider class="kw">extends MemoryProvider<NPCMemory> {
   class="kw">public class="kw">static class="kw">final double DEFAULT_RADIUS = 10.0;

   class="kw">public NPCMemoryProvider() {
      super("NPC", NPCMemory.CODEC, 10.0);
   }

   @Nonnull
   @Override
   class="kw">public Map<String, Set<Memory>> getAllMemories() {
      Map var1 = new Object2ObjectOpenHashMap();
      Int2ObjectMap var2 = NPCPlugin.get().getBuilderManager().getAllBuilders();
      ObjectIterator var3 = var2.values().iterator();

      while (var3.hasNext()) {
         BuilderInfo var4 = (BuilderInfo)var3.next();

         try {
            Builder var5 = var4.getBuilder();
            if (var5.isSpawnable() && !var5.isDeprecated() && var4.isValid() && isMemory(var5)) {
               String var6 = getCategory(var5);
               if (var6 != null) {
                  String var8 = getMemoriesNameOverride(var5);
                  String var9 = getNPCNameTranslationKey(var5);
                  NPCMemory var7;
                  if (var8 != null && !var8.isEmpty()) {
                     var7 = new NPCMemory(var8, var9);
                  } else {
                     var7 = new NPCMemory(var4.getKeyName(), var9);
                  }

                  var1.computeIfAbsent(var6, var0 -> new HashSet<>()).add(var7);
               }
            }
         } catch (SkipSentryException var10) {
            MemoriesPlugin.get().getLogger().at(Level.SEVERE).log("%s", var10.getMessage());
         }
      }

      class="kw">return var1;
   }

   @Nullable
   class="kw">private class="kw">static String getCategory(@Nonnull Builder<?> var0) {
      if (var0 class="kw">instanceof ISpawnableWithModel var1) {
         ExecutionContext var2 = new ExecutionContext();
         var2.setScope(var1.createExecutionScope());
         Scope var3 = var1.createModifierScope(var2);
         class="kw">return var1.getMemoriesCategory(var2, var3);
      } else {
         class="kw">return "Other";
      }
   }

   class="kw">private class="kw">static boolean isMemory(@Nonnull Builder<?> var0) {
      if (var0 class="kw">instanceof ISpawnableWithModel var1) {
         ExecutionContext var2 = new ExecutionContext();
         var2.setScope(var1.createExecutionScope());
         Scope var3 = var1.createModifierScope(var2);
         class="kw">return var1.isMemory(var2, var3);
      } else {
         class="kw">return false;
      }
   }

   @Nullable
   class="kw">private class="kw">static String getMemoriesNameOverride(@Nonnull Builder<?> var0) {
      if (var0 class="kw">instanceof ISpawnableWithModel var1) {
         ExecutionContext var2 = new ExecutionContext();
         var2.setScope(var1.createExecutionScope());
         Scope var3 = var1.createModifierScope(var2);
         class="kw">return var1.getMemoriesNameOverride(var2, var3);
      } else {
         class="kw">return null;
      }
   }

   @Nonnull
   class="kw">private class="kw">static String getNPCNameTranslationKey(@Nonnull Builder<?> var0) {
      if (var0 class="kw">instanceof ISpawnableWithModel var1) {
         ExecutionContext var2 = new ExecutionContext();
         var2.setScope(var1.createExecutionScope());
         Scope var3 = var1.createModifierScope(var2);
         class="kw">return var1.getNameTranslationKey(var2, var3);
      } else {
         throw new SkipSentryException(new IllegalStateException("Cannot get translation key for a non spawnable NPC role!"));
      }
   }
}