public class ParticlesASM extends ClassSkeletonASM
A class used to create bytecode for Particles related
interface implementations.
It is responsible for providing proper bytecode for all methods
in certain Particles interface.
Bytecode generation consist of generating field for every method
in certain's Particles interface with same name
as the getter method in interface.
Next, a constructor bytecode is generated to instantiate every field
with an implementation of certain version ParticleType related
class or default ParticleType related class if certain
particle does not exist in current Spigot version.
implType, interfaceTypes, superTypeinternal, refs, suffixAALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7, ASM8_EXPERIMENTAL, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V9| Constructor and Description |
|---|
ParticlesASM(InternalResolver resolver,
SpigotParticleVersion particleVersion,
ParticleTypesProvider particleTypesProvider,
ClassMapping serverConnTypeImpl) |
| Modifier and Type | Method and Description |
|---|---|
void |
writeConstructor(org.objectweb.asm.ClassWriter cw)
Writes constructor code to a class.
|
void |
writeFields(org.objectweb.asm.ClassWriter cw)
Writes fields necessary to properly represent certain particle.
|
void |
writeMethods(org.objectweb.asm.ClassWriter cw)
Writes all necessary methods to a class.
|
defineClass, getImplType, getSuperTypepublic ParticlesASM(InternalResolver resolver, SpigotParticleVersion particleVersion, ParticleTypesProvider particleTypesProvider, ClassMapping serverConnTypeImpl)
public void writeFields(org.objectweb.asm.ClassWriter cw)
ClassSkeletonASMWrites fields necessary to properly represent certain particle.
writeFields in class ClassSkeletonASMcw - a ClassWriter on which fields writing should happen.public void writeConstructor(org.objectweb.asm.ClassWriter cw)
ClassSkeletonASMWrites constructor code to a class.
writeConstructor in class ClassSkeletonASMcw - a ClassWriter on which constructor
writing should happen.public void writeMethods(org.objectweb.asm.ClassWriter cw)
ClassSkeletonASMWrites all necessary methods to a class.
writeMethods in class ClassSkeletonASMcw - a ClassWriter on which constructor
writing should happen.Copyright © 2022. All Rights Reserved.