Package org.spongepowered.asm.mixin
Class MixinEnvironment
- java.lang.Object
-
- org.spongepowered.asm.mixin.MixinEnvironment
-
- All Implemented Interfaces:
ITokenProvider
public final class MixinEnvironment extends java.lang.Object implements ITokenProvider
The mixin environment manages global state information for the mixin subsystem.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMixinEnvironment.CompatibilityLevelOperational compatibility level for the mixin subsystemstatic classMixinEnvironment.FeatureMixin features which can be specified in mixin configs as required for the config to be valid.static classMixinEnvironment.OptionMixin optionsstatic classMixinEnvironment.PhaseEnvironment phase, deliberately not implemented as an enumstatic classMixinEnvironment.SideRepresents a "side", client or dedicated server
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description MixinEnvironmentaddConfiguration(java.lang.String config)Deprecated.use Mixins::addConfiguration insteadvoidaddTransformerExclusion(java.lang.String name)Deprecated.Do not use this methodvoidaudit()Invoke a mixin environment audit processjava.lang.ObjectgetActiveTransformer()Get the active mixin transformer instance (if any)static MixinEnvironment.CompatibilityLevelgetCompatibilityLevel()Get the current compatibility levelstatic MixinEnvironmentgetCurrentEnvironment()Gets the current environmentstatic MixinEnvironmentgetDefaultEnvironment()Gets the default environmentstatic MixinEnvironmentgetEnvironment(MixinEnvironment.Phase phase)Get the mixin environment for the specified phasejava.util.Set<java.lang.String>getErrorHandlerClasses()Deprecated.use Mixins::getErrorHandlerClassesstatic MixinEnvironment.CompatibilityLevelgetMinCompatibilityLevel()Get the minimum (default) compatibility level supported by the current servicejava.util.List<java.lang.String>getMixinConfigs()Deprecated.no replacementjava.lang.StringgetObfuscationContext()Get the current obfuscation contextbooleangetOption(MixinEnvironment.Option option)Get the specified option from the current environment<E extends java.lang.Enum<E>>
EgetOption(MixinEnvironment.Option option, E defaultValue)Get the specified option from the current environmentjava.lang.StringgetOptionValue(MixinEnvironment.Option option)Get the specified option from the current environmentMixinEnvironment.PhasegetPhase()Get the phase for this environmentstatic ProfilergetProfiler()Deprecated.use Profiler.getProfiler("mixin")java.lang.StringgetRefmapObfuscationContext()Get the current obfuscation contextRemapperChaingetRemappers()Get the remapper chain for this environmentMixinEnvironment.SidegetSide()Get (and detect if necessary) the current sidejava.lang.IntegergetToken(java.lang.String token)Get a token value from this environmentjava.util.List<ITransformer>getTransformers()Deprecated.Do not use this methodjava.lang.StringgetVersion()Get the current mixin subsystem versionstatic voidinit(MixinEnvironment.Phase phase)Initialise the mixin environment in the specified phaseMixinEnvironmentregisterTokenProvider(IEnvironmentTokenProvider provider)Add a new token provider to this environmentMixinEnvironmentregisterTokenProviderClass(java.lang.String providerName)Add a new token provider class to this environmentvoidsetActiveTransformer(IMixinTransformer transformer)Set the mixin transformer instancestatic voidsetCompatibilityLevel(MixinEnvironment.CompatibilityLevel level)Deprecated.set compatibility level in configurationvoidsetObfuscationContext(java.lang.String context)Set the obfuscation contextvoidsetOption(MixinEnvironment.Option option, boolean value)Set the specified option for this environmentMixinEnvironmentsetSide(MixinEnvironment.Side side)Allows a third party to set the side if the side is currently UNKNOWNjava.lang.StringtoString()
-
-
-
Method Detail
-
getPhase
public MixinEnvironment.Phase getPhase()
Get the phase for this environment- Returns:
- the phase
-
getMixinConfigs
@Deprecated public java.util.List<java.lang.String> getMixinConfigs()
Deprecated.no replacementGet mixin configurations from the blackboard- Returns:
- list of registered mixin configs
-
addConfiguration
@Deprecated public MixinEnvironment addConfiguration(java.lang.String config)
Deprecated.use Mixins::addConfiguration insteadAdd a mixin configuration to the blackboard- Parameters:
config- Name of configuration resource to add- Returns:
- fluent interface
-
registerTokenProviderClass
public MixinEnvironment registerTokenProviderClass(java.lang.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 java.lang.Integer getToken(java.lang.String token)
Get a token value from this environment- Specified by:
getTokenin interfaceITokenProvider- Parameters:
token- Token to fetch- Returns:
- token value or null if the token is not present in the environment
-
getErrorHandlerClasses
@Deprecated public java.util.Set<java.lang.String> getErrorHandlerClasses()
Deprecated.use Mixins::getErrorHandlerClassesGet all registered error handlers for this environment- Returns:
- set of error handler class names
-
getActiveTransformer
public java.lang.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 java.lang.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 setvalue- New option value
-
getOptionValue
public java.lang.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 java.lang.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 getdefaultValue- value to use if the user-defined value is invalid- Returns:
- Option value
-
setObfuscationContext
public void setObfuscationContext(java.lang.String context)
Set the obfuscation context- Parameters:
context- new context
-
getObfuscationContext
public java.lang.String getObfuscationContext()
Get the current obfuscation context
-
getRefmapObfuscationContext
public java.lang.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 java.util.List<ITransformer> getTransformers()
Deprecated.Do not use this methodReturns (and generates if necessary) the transformer delegation list for this environment.- Returns:
- current transformer delegation list (read-only)
-
addTransformerExclusion
@Deprecated public void addTransformerExclusion(java.lang.String name)
Deprecated.Do not use this methodAdds a transformer to the transformer exclusions list- Parameters:
name- Class transformer exclusion to add
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.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
DEFAULTenvironment
-
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 java.lang.IllegalArgumentException
Deprecated.set compatibility level in configurationSet desired compatibility level for the entire environment- Parameters:
level- Level to set, ignored if less than the current level- Throws:
java.lang.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
-
-