com.github.fierioziy.asm.utils.ClassImplProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ParticleNativeAPI Show documentation
Show all versions of ParticleNativeAPI Show documentation
Provides API for spawning particles on Spigot server.
package com.github.fierioziy.asm.utils;
import com.github.fierioziy.utils.TempClassLoader;
import org.objectweb.asm.MethodVisitor;
/**
* An interface used by classes generating
* implementation bytecode of particle types.
*
* A ParticlesASM
class uses it
* to handle cross-version particle type implementation.
*/
public interface ClassImplProvider {
/**
* Defines all implementations of certain particle
* types version on parameter class loader.
*
* @param cl a class loader on which implementation
* should be defined.
*/
void defineImplementation(TempClassLoader cl);
/**
* Visits all particle types implementation
* on parameter MethodVisitor
using
* parameter interface version.
*
* Technically speaking, it generates bytecode for
* instantiating all particle types implementations
* and storing them in instance fields.
*
* @param mv a MethodVisitor
on which
* instructions visiting occurs.
* @param interfaceVersion a ParticleVersion
enum
* providing informations about processed
* interface version.
*/
void visitParticleTypes(MethodVisitor mv, ParticleVersion interfaceVersion);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy