public class ParticlesASM extends ConnectionBaseASM
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.
playerConnType, playerConnTypeImpl, serverConnType, serverConnTypeImplAALOAD, 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(java.lang.String version,
TempClassLoader cl)
Chooses proper
ClassImplProvider provider based
on current Spigot version and defines necessary classes for
proper class generation. |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
generateParticles_1_13()
Generates a bytecode of class implementing
Particles_1_13 interface. |
byte[] |
generateParticles_1_8()
Generates a bytecode of class implementing
Particles_1_8 interface. |
getTypeImpldesc, getTypeImplpublic ParticlesASM(java.lang.String version,
TempClassLoader cl)
Chooses proper ClassImplProvider provider based
on current Spigot version and defines necessary classes for
proper class generation.
version - a package version string.cl - a TempClassLoader class loader on which
class definitions should occur.ParticleTypesImplProviderpublic byte[] generateParticles_1_8()
Generates a bytecode of class implementing Particles_1_8 interface.
byte[] array containing bytecode of class
implementing Particles_1_8 interfaceParticles_1_8public byte[] generateParticles_1_13()
Generates a bytecode of class implementing Particles_1_13 interface.
byte[] array containing bytecode of class
implementing Particles_1_13 interfaceParticles_1_13Copyright © 2020. All Rights Reserved.