EventBus class
Пакет: com.hypixel.hytale.event
Файл: com/hypixel/hytale/event/EventBus.java
implements: IEventBus
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Set |
var1 |
|
Class |
var2 |
|
|
var2 |
|
EventBusRegistry |
var2 |
|
EventBusRegistry |
var2 |
|
SyncEventBusRegistry |
var3 |
|
AsyncEventBusRegistry |
var3 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(this.timeEvents) |
|
|
if if(this.timeEvents) |
public |
void |
shutdownvoid shutdown() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.event;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import java.util.function.Consumer;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class EventBus class="kw">implements IEventBus {
@Nonnull
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
@Nonnull
class="kw">private class="kw">final Map<Class<? class="kw">extends IBaseEvent<?>>, EventBusRegistry<?, ?, ?>> registryMap = new ConcurrentHashMap<>();
class="kw">private class="kw">final boolean timeEvents;
class="kw">public EventBus(boolean var1) {
this.timeEvents = var1;
}
class="kw">public void shutdown() {
this.registryMap.values().forEach(EventBusRegistry::shutdown);
}
@Nonnull
class="kw">public Set<Class<? class="kw">extends IBaseEvent<?>>> getRegisteredEventClasses() {
class="kw">return new HashSet<>(this.registryMap.keySet());
}
@Nonnull
class="kw">public Set<String> getRegisteredEventClassNames() {
Set var1 = new HashSet<>();
for (Class var3 : this.registryMap.keySet()) {
var1.add(var3.getSimpleName());
}
class="kw">return var1;
}
@Nullable
class="kw">public EventBusRegistry<?, ?, ?> getRegistry(@Nonnull String var1) {
Class var2 = null;
for (Class var4 : this.registryMap.keySet()) {
if (var4.getSimpleName().equalsIgnoreCase(var1) || var4.getName().equalsIgnoreCase(var1)) {
var2 = var4;
}
}
class="kw">return var2 == null ? null : this.getRegistry(var2);
}
@Nonnull
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventBusRegistry<KeyType, EventType, ?> getRegistry(@Nonnull Class<? super EventType> var1) {
class="kw">return IAsyncEvent.class.isAssignableFrom(var1) ? this.getAsyncRegistry(var1) : this.getSyncRegistry(var1);
}
@Nonnull
class="kw">public <KeyType, EventType class="kw">extends IEvent<KeyType>> EventBusRegistry<KeyType, EventType, ?> getSyncRegistry(@Nonnull Class<? super EventType> var1) {
EventBusRegistry var2 = (EventBusRegistry<?, ? class="kw">extends IBaseEvent<?>, ? class="kw">extends EventBusRegistry.EventConsumerMap<? class="kw">extends IBaseEvent<?>, ?, ?>>)this.registryMap
.computeIfAbsent((Class<? class="kw">extends IBaseEvent<?>>)var1, var0 -> new SyncEventBusRegistry(LOGGER, (Class<EventType>)var0));
if (this.timeEvents) {
var2.setTimeEvents(true);
}
class="kw">return (EventBusRegistry<KeyType, EventType, ?>)var2;
}
@Nonnull
class="kw">private <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> AsyncEventBusRegistry<KeyType, EventType> getAsyncRegistry(@Nonnull Class<? super EventType> var1) {
EventBusRegistry var2 = (EventBusRegistry<?, ? class="kw">extends IBaseEvent<?>, ? class="kw">extends EventBusRegistry.EventConsumerMap<? class="kw">extends IBaseEvent<?>, ?, ?>>)this.registryMap
.computeIfAbsent((Class<? class="kw">extends IBaseEvent<?>>)var1, var0 -> new AsyncEventBusRegistry(LOGGER, (Class<EventType>)var0));
if (this.timeEvents) {
var2.setTimeEvents(true);
}
class="kw">return (AsyncEventBusRegistry<KeyType, EventType>)var2;
}
@Override
class="kw">public <EventType class="kw">extends IBaseEvent<Void>> EventRegistration<Void, EventType> register(
@Nonnull Class<? super EventType> var1, @Nonnull Consumer<EventType> var2
) {
class="kw">return this.register((short)0, var1, null, var2);
}
@Override
class="kw">public <EventType class="kw">extends IBaseEvent<Void>> EventRegistration<Void, EventType> register(
@Nonnull EventPriority var1, @Nonnull Class<? super EventType> var2, @Nonnull Consumer<EventType> var3
) {
class="kw">return this.register(var1.getValue(), var2, null, var3);
}
@Override
class="kw">public <EventType class="kw">extends IBaseEvent<Void>> EventRegistration<Void, EventType> register(
short var1, @Nonnull Class<? super EventType> var2, @Nonnull Consumer<EventType> var3
) {
class="kw">return this.register(var1, var2, null, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> register(
@Nonnull Class<? super EventType> var1, @Nonnull KeyType var2, @Nonnull Consumer<EventType> var3
) {
class="kw">return this.register((short)0, var1, var2, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> register(
@Nonnull EventPriority var1, @Nonnull Class<? super EventType> var2, @Nonnull KeyType var3, @Nonnull Consumer<EventType> var4
) {
class="kw">return this.register(var1.getValue(), var2, var3, var4);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> register(
short var1, @Nonnull Class<? super EventType> var2, @Nullable KeyType var3, @Nonnull Consumer<EventType> var4
) {
class="kw">return this.<KeyType, EventType>getRegistry(var2).register(var1, var3, var4);
}
@Override
class="kw">public <EventType class="kw">extends IAsyncEvent<Void>> EventRegistration<Void, EventType> registerAsync(
@Nonnull Class<? super EventType> var1, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var2
) {
class="kw">return this.registerAsync((short)0, var1, null, var2);
}
@Override
class="kw">public <EventType class="kw">extends IAsyncEvent<Void>> EventRegistration<Void, EventType> registerAsync(
@Nonnull EventPriority var1, @Nonnull Class<? super EventType> var2, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var3
) {
class="kw">return this.registerAsync(var1.getValue(), var2, null, var3);
}
@Override
class="kw">public <EventType class="kw">extends IAsyncEvent<Void>> EventRegistration<Void, EventType> registerAsync(
short var1, Class<? super EventType> var2, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var3
) {
class="kw">return this.registerAsync(var1, var2, null, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsync(
@Nonnull Class<? super EventType> var1, @Nonnull KeyType var2, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var3
) {
class="kw">return this.registerAsync((short)0, var1, var2, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsync(
@Nonnull EventPriority var1,
Class<? super EventType> var2,
@Nonnull KeyType var3,
@Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var4
) {
class="kw">return this.registerAsync(var1.getValue(), var2, var3, var4);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsync(
short var1,
@Nonnull Class<? super EventType> var2,
@Nullable KeyType var3,
@Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var4
) {
class="kw">return this.<KeyType, EventType>getAsyncRegistry(var2).registerAsync(var1, var3, var4);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerGlobal(
@Nonnull Class<? super EventType> var1, @Nonnull Consumer<EventType> var2
) {
class="kw">return this.registerGlobal((short)0, var1, var2);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerGlobal(
@Nonnull EventPriority var1, @Nonnull Class<? super EventType> var2, @Nonnull Consumer<EventType> var3
) {
class="kw">return this.registerGlobal(var1.getValue(), var2, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerGlobal(
short var1, @Nonnull Class<? super EventType> var2, @Nonnull Consumer<EventType> var3
) {
class="kw">return this.<KeyType, EventType>getRegistry(var2).registerGlobal(var1, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncGlobal(
@Nonnull Class<? super EventType> var1, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var2
) {
class="kw">return this.registerAsyncGlobal((short)0, var1, var2);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncGlobal(
@Nonnull EventPriority var1, @Nonnull Class<? super EventType> var2, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var3
) {
class="kw">return this.registerAsyncGlobal(var1.getValue(), var2, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncGlobal(
short var1, @Nonnull Class<? super EventType> var2, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var3
) {
class="kw">return this.<KeyType, EventType>getAsyncRegistry(var2).registerAsyncGlobal(var1, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerUnhandled(
@Nonnull Class<? super EventType> var1, @Nonnull Consumer<EventType> var2
) {
class="kw">return this.registerUnhandled((short)0, var1, var2);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerUnhandled(
@Nonnull EventPriority var1, @Nonnull Class<? super EventType> var2, @Nonnull Consumer<EventType> var3
) {
class="kw">return this.registerUnhandled(var1.getValue(), var2, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerUnhandled(
short var1, @Nonnull Class<? super EventType> var2, @Nonnull Consumer<EventType> var3
) {
class="kw">return this.<KeyType, EventType>getRegistry(var2).registerUnhandled(var1, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncUnhandled(
@Nonnull Class<? super EventType> var1, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var2
) {
class="kw">return this.registerAsyncUnhandled((short)0, var1, var2);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncUnhandled(
@Nonnull EventPriority var1, @Nonnull Class<? super EventType> var2, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var3
) {
class="kw">return this.registerAsyncUnhandled(var1.getValue(), var2, var3);
}
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncUnhandled(
short var1, @Nonnull Class<? super EventType> var2, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> var3
) {
class="kw">return this.<KeyType, EventType>getAsyncRegistry(var2).registerAsyncUnhandled(var1, var3);
}
@Nonnull
@Override
class="kw">public <KeyType, EventType class="kw">extends IEvent<KeyType>> IEventDispatcher<EventType, EventType> dispatchFor(@Nonnull Class<? super EventType> var1, KeyType var2) {
SyncEventBusRegistry var3 = (SyncEventBusRegistry<KeyType, EventType>)this.registryMap.get(var1);
class="kw">return var3 != null && var3.isAlive() ? var3.dispatchFor(var2) : SyncEventBusRegistry.NO_OP;
}
@Nonnull
@Override
class="kw">public <KeyType, EventType class="kw">extends IAsyncEvent<KeyType>> IEventDispatcher<EventType, CompletableFuture<EventType>> dispatchForAsync(
@Nonnull Class<? super EventType> var1, KeyType var2
) {
AsyncEventBusRegistry var3 = (AsyncEventBusRegistry<KeyType, EventType>)this.registryMap.get(var1);
class="kw">return var3 != null && var3.isAlive() ? var3.dispatchFor(var2) : AsyncEventBusRegistry.NO_OP;
}
}