Class MixinEnvironment

java.lang.Object
org.spongepowered.asm.mixin.MixinEnvironment
All Implemented Interfaces:
ITokenProvider

public final class MixinEnvironment extends Object implements ITokenProvider
The mixin environment manages global state information for the mixin subsystem.
  • Method Details

    • getPhase

      public MixinEnvironment.Phase getPhase()
      Get the phase for this environment
      Returns:
      the phase
    • getMixinConfigs

      @Deprecated public List<String> getMixinConfigs()
      Deprecated.
      no replacement
      Get mixin configurations from the blackboard
      Returns:
      list of registered mixin configs
    • addConfiguration

      @Deprecated public MixinEnvironment addConfiguration(String config)
      Deprecated.
      use Mixins::addConfiguration instead
      Add a mixin configuration to the blackboard
      Parameters:
      config - Name of configuration resource to add
      Returns:
      fluent interface
    • registerTokenProviderClass

      public MixinEnvironment registerTokenProviderClass(String providerName)
      Add a new token provider class to this environment
      Parameters:
      providerName - Class name of the token provider to add
      Returns:
      fluent interface
    • registerTokenProvider

      public MixinEnvironment registerTokenProvider(IEnvironmentTokenProvider provider)
      Add a new token provider to this environment
      Parameters:
      provider - Token provider to add
      Returns:
      fluent interface
    • getToken

      public Integer getToken(String token)
      Get a token value from this environment
      Specified by:
      getToken in interface ITokenProvider
      Parameters:
      token - Token to fetch
      Returns:
      token value or null if the token is not present in the environment
    • getErrorHandlerClasses

      @Deprecated public Set<String> getErrorHandlerClasses()
      Deprecated.
      use Mixins::getErrorHandlerClasses
      Get all registered error handlers for this environment
      Returns:
      set of error handler class names
    • getActiveTransformer

      public Object getActiveTransformer()
      Get the active mixin transformer instance (if any)
      Returns:
      active mixin transformer instance
    • setActiveTransformer

      public void setActiveTransformer(IMixinTransformer transformer)
      Set the mixin transformer instance
      Parameters:
      transformer - Mixin Transformer
    • setSide

      public MixinEnvironment setSide(MixinEnvironment.Side side)
      Allows a third party to set the side if the side is currently UNKNOWN
      Parameters:
      side - Side to set to
      Returns:
      fluent interface
    • getSide

      public MixinEnvironment.Side getSide()
      Get (and detect if necessary) the current side
      Returns:
      current side (or UNKNOWN if could not be determined)
    • getVersion

      public String getVersion()
      Get the current mixin subsystem version
      Returns:
      current version
    • getOption

      public boolean getOption(MixinEnvironment.Option option)
      Get the specified option from the current environment
      Parameters:
      option - Option to get
      Returns:
      Option value
    • setOption

      public void setOption(MixinEnvironment.Option option, boolean value)
      Set the specified option for this environment
      Parameters:
      option - Option to set
      value - New option value
    • getOptionValue

      public String getOptionValue(MixinEnvironment.Option option)
      Get the specified option from the current environment
      Parameters:
      option - Option to get
      Returns:
      Option value
    • getOption

      public <E extends Enum<E>> E getOption(MixinEnvironment.Option option, E defaultValue)
      Get the specified option from the current environment
      Type Parameters:
      E - enum type
      Parameters:
      option - Option to get
      defaultValue - value to use if the user-defined value is invalid
      Returns:
      Option value
    • setObfuscationContext

      public void setObfuscationContext(String context)
      Set the obfuscation context
      Parameters:
      context - new context
    • getObfuscationContext

      public String getObfuscationContext()
      Get the current obfuscation context
    • getRefmapObfuscationContext

      public String getRefmapObfuscationContext()
      Get the current obfuscation context
    • getRemappers

      public RemapperChain getRemappers()
      Get the remapper chain for this environment
    • audit

      public void audit()
      Invoke a mixin environment audit process
    • getTransformers

      @Deprecated public List<ITransformer> getTransformers()
      Deprecated.
      Do not use this method
      Returns (and generates if necessary) the transformer delegation list for this environment.
      Returns:
      current transformer delegation list (read-only)
    • addTransformerExclusion

      @Deprecated public void addTransformerExclusion(String name)
      Deprecated.
      Do not use this method
      Adds a transformer to the transformer exclusions list
      Parameters:
      name - Class transformer exclusion to add
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • init

      public static void init(MixinEnvironment.Phase phase)
      Initialise the mixin environment in the specified phase
      Parameters:
      phase - initial phase
    • getEnvironment

      public static MixinEnvironment getEnvironment(MixinEnvironment.Phase phase)
      Get the mixin environment for the specified phase
      Parameters:
      phase - phase to fetch environment for
      Returns:
      the environment
    • getDefaultEnvironment

      public static MixinEnvironment getDefaultEnvironment()
      Gets the default environment
      Returns:
      the DEFAULT environment
    • getCurrentEnvironment

      public static MixinEnvironment getCurrentEnvironment()
      Gets the current environment
      Returns:
      the currently active environment
    • getCompatibilityLevel

      public static MixinEnvironment.CompatibilityLevel getCompatibilityLevel()
      Get the current compatibility level
    • getMinCompatibilityLevel

      public static MixinEnvironment.CompatibilityLevel getMinCompatibilityLevel()
      Get the minimum (default) compatibility level supported by the current service
    • setCompatibilityLevel

      @Deprecated public static void setCompatibilityLevel(MixinEnvironment.CompatibilityLevel level) throws IllegalArgumentException
      Deprecated.
      set compatibility level in configuration
      Set desired compatibility level for the entire environment
      Parameters:
      level - Level to set, ignored if less than the current level
      Throws:
      IllegalArgumentException - if the specified level is not supported
    • getProfiler

      @Deprecated public static Profiler getProfiler()
      Deprecated.
      use Profiler.getProfiler("mixin")
      Get the performance profiler
      Returns:
      profiler