mirror of
https://github.com/zaaarf/lillero.git
synced 2024-11-22 15:34:49 +01:00
feat: added service interface
This commit is contained in:
parent
aa54db5cef
commit
3bf289bfb3
1 changed files with 57 additions and 0 deletions
57
src/main/java/ftbsc/lll/IInjector.java
Normal file
57
src/main/java/ftbsc/lll/IInjector.java
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
package ftbsc.lll;
|
||||||
|
|
||||||
|
import org.objectweb.asm.tree.ClassNode;
|
||||||
|
import org.objectweb.asm.tree.MethodNode;
|
||||||
|
|
||||||
|
public interface IInjector {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return name of injector, for logging
|
||||||
|
*/
|
||||||
|
String name();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return reason for patching for this injector, for loggin
|
||||||
|
*/
|
||||||
|
default String reason() { return ""; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is used by the Launch Plugin to identify which classes should be
|
||||||
|
* altered, and on which classes this injector should operate.
|
||||||
|
*
|
||||||
|
* Class name should be dot-separated, for example "net.minecraft.client.Minecraft"
|
||||||
|
*
|
||||||
|
* @return target class to operate onto
|
||||||
|
*/
|
||||||
|
String targetClass();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is used by the Launch Plugin to identify which methods to provide
|
||||||
|
* to this injector for patching. It should return the Searge name of wanted function.
|
||||||
|
* example: "func_71407_l", which is "tick()" on "Minecraft" class in 1.16.5
|
||||||
|
*
|
||||||
|
* @return target method name to operate onto
|
||||||
|
*/
|
||||||
|
String methodName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is used by the Launch Plugin to identify which methods to provide
|
||||||
|
* to this injector for patching. It should return the method descriptor, with
|
||||||
|
* parameters and return types. example: "()V" for void parameters and return.
|
||||||
|
*
|
||||||
|
* TODO better example...
|
||||||
|
*
|
||||||
|
* @return target method name to operate onto
|
||||||
|
*/
|
||||||
|
String methodDesc();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Once the Launch Plugin has identified classes and methods for injectors,
|
||||||
|
* this method will be called providing the correct class and method nodes for patching.
|
||||||
|
*
|
||||||
|
* @param clazz class node which is being patched
|
||||||
|
* @param method main method node of requested function for patching
|
||||||
|
*/
|
||||||
|
void inject(ClassNode clazz, MethodNode method);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue