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