WorldEventManager class

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

Файл: com/hypixel/hytale/builtin/adventure/worldevents/WorldEventManager.java

implements: Resource<EntityStore>

Поля (9)

МодификаторыТипИмя
final ReferenceList<WorldEvent> events
ObjectIterator var2
WorldEvent var2
WorldEvent var2
Entry var3
int var3
int var4
WorldEvent var4
ReferenceSet var5

Методы (18)

МодификаторыВозвратСигнатура
abstract throw new UnsupportedOperationExceptionthrow new UnsupportedOperationException()
public boolean addpublic boolean add(@Nonnull WorldEvent var1)
public boolean addAllpublic boolean addAll(@Nonnull Collection<? extends WorldEvent> var1)
public void clearvoid clear()
abstract for for(int var3 = 0; var3 < this.events.size()
public <T> void forEach<T> void forEach(@Nullable T var1, @Nonnull BiConsumer<WorldEvent, T> var2)
static ResourceType<EntityStore, WorldEventManager> getResourceTypeResourceType<EntityStore, WorldEventManager> getResourceType()
if if(var2 != null)
if if(var2 != null)
if if(var3 != -1)
if if(var3 < var4)
public void registervoid register(@Nonnull WorldEvent var1)
public boolean removepublic boolean remove(Object var1)
public boolean removeAllpublic boolean removeAll(@Nonnull Collection<?> var1)
public boolean removeIfpublic boolean removeIf(@Nonnull Predicate<? super WorldEvent> var1)
public boolean retainAllpublic boolean retainAll(@Nonnull Collection<?> var1)
public void unregistervoid unregister(@Nonnull WorldEvent var1)
public void unregistervoid unregister(@Nonnull UUID var1)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.WorldEvent;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceArrayList;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceCollection;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceList;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceSet;
class="kw">import it.unimi.dsi.fastutil.objects.ReferenceSets;
class="kw">import java.util.Collection;
class="kw">import java.util.UUID;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.function.BiConsumer;
class="kw">import java.util.function.Predicate;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import javax.annotation.concurrent.NotThreadSafe;

@NotThreadSafe
class="kw">public class WorldEventManager class="kw">implements Resource<EntityStore> {
   class="kw">protected class="kw">final ReferenceList<WorldEvent> events = new ReferenceArrayList();
   class="kw">protected class="kw">final Object2ObjectMap<UUID, WorldEvent> idLookup = new Object2ObjectOpenHashMap();
   class="kw">protected class="kw">final Object2ObjectMap<String, ReferenceSet<WorldEvent>> assetLookup = new Object2ObjectOpenHashMap();
   class="kw">protected class="kw">static class="kw">final ReferenceSet<WorldEvent> REMOVE_ONLY_EMPTY_SET = new ReferenceOpenHashSet<WorldEvent>() {
      class="kw">public boolean remove(Object var1) {
         class="kw">return false;
      }

      class="kw">public boolean removeIf(@Nonnull Predicate<? super WorldEvent> var1) {
         class="kw">return false;
      }

      class="kw">public boolean removeAll(@Nonnull Collection<?> var1) {
         class="kw">return false;
      }

      class="kw">public boolean retainAll(@Nonnull Collection<?> var1) {
         class="kw">return false;
      }

      class="kw">public boolean add(@Nonnull WorldEvent var1) {
         throw new UnsupportedOperationException();
      }

      class="kw">public boolean addAll(@Nonnull Collection<? class="kw">extends WorldEvent> var1) {
         throw new UnsupportedOperationException();
      }
   };

   class="kw">public WorldEventManager() {
   }

   class="kw">public WorldEventManager(@Nonnull WorldEventManager var1) {
      this.events.addAll(var1.events);
      this.idLookup.putAll(var1.idLookup);
      ObjectIterator var2 = var1.assetLookup.entrySet().iterator();

      while (var2.hasNext()) {
         Entry var3 = (Entry<String, ReferenceSet<WorldEvent>>)var2.next();
         this.assetLookup.put(var3.getKey(), new ReferenceOpenHashSet((ReferenceCollection)var3.getValue()));
      }
   }

   class="kw">public void clear() {
      this.events.clear();
      this.idLookup.clear();
      this.assetLookup.clear();
   }

   class="kw">public void register(@Nonnull WorldEvent var1) {
      if (!var1.uuid.equals(WorldEvent.EMPTY_ID)) {
         WorldEvent var2 = (WorldEvent)this.idLookup.put(var1.uuid, var1);
         if (var2 != null) {
            this.events.remove(var2);
            ((ReferenceSet)this.assetLookup.getOrDefault(var2.asset, REMOVE_ONLY_EMPTY_SET)).remove(var2);
         }

         this.events.add(var1);
         ((ReferenceSet)this.assetLookup.computeIfAbsent(var1.asset, var0 -> new ReferenceOpenHashSet())).add(var1);
      }
   }

   class="kw">public void unregister(@Nonnull WorldEvent var1) {
      this.unregister(var1.uuid);
   }

   class="kw">public void unregister(@Nonnull UUID var1) {
      if (!var1.equals(WorldEvent.EMPTY_ID)) {
         WorldEvent var2 = (WorldEvent)this.idLookup.remove(var1);
         if (var2 != null) {
            int var3 = this.events.indexOf(var2);
            if (var3 != -1) {
               int var4 = this.events.size() - 1;
               if (var3 < var4) {
                  this.events.set(var3, (WorldEvent)this.events.get(var4));
               }

               this.events.remove(var4);
            }

            ReferenceSet var5 = (ReferenceSet<WorldEvent>)this.assetLookup.getOrDefault(var2.asset, REMOVE_ONLY_EMPTY_SET);
            if (var5.remove(var2) && var5.isEmpty()) {
               this.assetLookup.remove(var2.asset);
            }
         }
      }
   }

   class="kw">public <T> void forEach(@Nullable T var1, @Nonnull BiConsumer<WorldEvent, T> var2) {
      for (int var3 = 0; var3 < this.events.size(); var3++) {
         WorldEvent var4 = (WorldEvent)this.events.get(var3);
         var2.accept(var4, var1);
      }
   }

   @Nullable
   class="kw">public WorldEvent get(@Nonnull UUID var1) {
      class="kw">return (WorldEvent)this.idLookup.get(var1);
   }

   @Nonnull
   class="kw">public ReferenceSet<WorldEvent> allOf(@Nonnull String var1) {
      class="kw">return (ReferenceSet<WorldEvent>)this.assetLookup.getOrDefault(var1, ReferenceSets.emptySet());
   }

   @Nonnull
   class="kw">public WorldEventManager clone() {
      class="kw">return new WorldEventManager(this);
   }

   class="kw">public class="kw">static ResourceType<EntityStore, WorldEventManager> getResourceType() {
      class="kw">return WorldEventsPlugin.get().getWorldEventManagerResourceType();
   }
}