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();
}
}