Class DefineClassRule

java.lang.Object
io.papermc.reflectionrewriter.DefineClassRule
All Implemented Interfaces:
io.papermc.asm.rules.method.MethodRewriteRule, io.papermc.asm.rules.RewriteRule

@DefaultQualifier(org.checkerframework.checker.nullness.qual.NonNull.class) public final class DefineClassRule extends Object implements io.papermc.asm.rules.method.MethodRewriteRule
  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.papermc.asm.rules.method.MethodRewriteRule

    io.papermc.asm.rules.method.MethodRewriteRule.Rewrite, io.papermc.asm.rules.method.MethodRewriteRule.RewriteSingle

    Nested classes/interfaces inherited from interface io.papermc.asm.rules.RewriteRule

    io.papermc.asm.rules.RewriteRule.Chain, io.papermc.asm.rules.RewriteRule.ChainBuilder, io.papermc.asm.rules.RewriteRule.MethodGeneratorFactory
  • Field Summary

    Fields inherited from interface io.papermc.asm.rules.method.MethodRewriteRule

    LAMBDA_METAFACTORY_OWNER

    Fields inherited from interface io.papermc.asm.rules.RewriteRule

    EMPTY
  • Method Summary

    Modifier and Type
    Method
    Description
    static io.papermc.asm.rules.RewriteRule
    create(String proxyClassName)
    Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
    static io.papermc.asm.rules.RewriteRule
    create(String proxyClassName, boolean assumeClassLoader)
    Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
    @Nullable io.papermc.asm.rules.method.MethodRewriteRule.Rewrite
    rewrite(io.papermc.asm.ClassProcessingContext context, boolean invokeDynamic, int opcode, String owner, String name, MethodTypeDesc descriptor, boolean isInterface)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.papermc.asm.rules.method.MethodRewriteRule

    createVisitor, shouldProcess

    Methods inherited from interface io.papermc.asm.rules.RewriteRule

    generateMethods
  • Method Details

    • rewrite

      public @Nullable io.papermc.asm.rules.method.MethodRewriteRule.Rewrite rewrite(io.papermc.asm.ClassProcessingContext context, boolean invokeDynamic, int opcode, String owner, String name, MethodTypeDesc descriptor, boolean isInterface)
      Specified by:
      rewrite in interface io.papermc.asm.rules.method.MethodRewriteRule
    • create

      public static io.papermc.asm.rules.RewriteRule create(String proxyClassName)
      Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
      Parameters:
      proxyClassName - proxy class name
      Returns:
      new rule
    • create

      public static io.papermc.asm.rules.RewriteRule create(String proxyClassName, boolean assumeClassLoader)
      Create a rewrite rule for MethodHandles.Lookup#defineClass and (Secure)ClassLoader#defineClass.
      Parameters:
      proxyClassName - proxy class name
      assumeClassLoader - whether to assume a class is a ClassLoader if it cannot be determined using the ClassInfoProvider
      Returns:
      new rule