HyCodeYourTale
classpublicabstractPriority 3

InfoProviderBase

com.hypixel.hytale.server.npc.sensorinfo.InfoProviderBase

implements InfoProvider

4

Methods

4

Public Methods

2

Fields

3

Constructors

Constructors

public
InfoProviderBase()
public
InfoProviderBase(ParameterProvider parameterProvider)
public
InfoProviderBase(ParameterProvider parameterProvider, ExtraInfoProvider[] providers)

Methods

Public Methods (4)

public
<E extends ExtraInfoProvider> E getExtraInfo(Class<E> clazz)
@Nullable@Override
public
ParameterProvider getParameterProvider(int parameter)
@Nullable@Override
public
<E extends ExtraInfoProvider> E getPassedExtraInfo(Class<E> clazz)
@Override
public
<E extends ExtraInfoProvider> void passExtraInfo(E provider)
@Override

Fields

Protected Fields (2)

protectedParameterProvider parameterProvider
protectedExtraInfoProvider passedExtraInfo

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.server.npc.sensorinfo;

import com.hypixel.hytale.server.npc.sensorinfo.parameterproviders.ParameterProvider;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public abstract class InfoProviderBase implements InfoProvider {
   protected final ParameterProvider parameterProvider;
   @Nullable
   protected final Map<Class<? extends ExtraInfoProvider>, ExtraInfoProvider> extraProviders;
   protected ExtraInfoProvider passedExtraInfo;

   public InfoProviderBase() {
      this(null);
   }

   public InfoProviderBase(ParameterProvider parameterProvider) {
      this.parameterProvider = parameterProvider;
      this.extraProviders = null;
   }

   public InfoProviderBase(ParameterProvider parameterProvider, @Nonnull ExtraInfoProvider... providers) {
      this.parameterProvider = parameterProvider;
      this.extraProviders = new HashMap<>();

      for (ExtraInfoProvider provider : providers) {
         if (this.extraProviders.put(provider.getType(), provider) != null) {
            throw new IllegalArgumentException("More than one type of " + provider.getType().getSimpleName() + " provider registered!");
         }
      }
   }

   @Nullable
   @Override
   public ParameterProvider getParameterProvider(int parameter) {
      return this.parameterProvider == null ? null : this.parameterProvider.getParameterProvider(parameter);
   }

   @Nullable
   @Override
   public <E extends ExtraInfoProvider> E getExtraInfo(Class<E> clazz) {
      return (E)(this.extraProviders == null ? null : this.extraProviders.get(clazz));
   }

   @Override
   public <E extends ExtraInfoProvider> void passExtraInfo(E provider) {
      this.passedExtraInfo = provider;
   }

   @Override
   public <E extends ExtraInfoProvider> E getPassedExtraInfo(Class<E> clazz) {
      return (E)this.passedExtraInfo;
   }
}