diff options
author | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-05-28 21:29:35 +0800 |
---|---|---|
committer | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-05-28 21:29:35 +0800 |
commit | 51cdd4ca4ea64e1a9a67b99c274693a54f7f535d (patch) | |
tree | 38ad597119c2b38a69ee26822769075c9c5cdacc /featureClass/forgeEvents.js | |
parent | 0985bdd291c3b2889c1e2fbc20f51cd4d7bc1e96 (diff) | |
download | SoopyV2-51cdd4ca4ea64e1a9a67b99c274693a54f7f535d.tar.gz SoopyV2-51cdd4ca4ea64e1a9a67b99c274693a54f7f535d.tar.bz2 SoopyV2-51cdd4ca4ea64e1a9a67b99c274693a54f7f535d.zip |
+ asd
Diffstat (limited to 'featureClass/forgeEvents.js')
-rw-r--r-- | featureClass/forgeEvents.js | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/featureClass/forgeEvents.js b/featureClass/forgeEvents.js index e852c49..6f5315f 100644 --- a/featureClass/forgeEvents.js +++ b/featureClass/forgeEvents.js @@ -9,10 +9,15 @@ const L = s => `L${s};` const LoadedInsts = [] -function defineClassBytes(name, bytes) { +function defineClassBytes(name, bytes) { //should support multymc? ty dawjaw https://canary.discord.com/channels/119493402902528000/688773480954855537/979959207124168744 const classLoader = Packages.com.chattriggers.ctjs.CTJS.class.getClassLoader() - const defClass = ClassLoader.class.getDeclaredMethods()[23] // defineClass() + let defClass; + ClassLoader.class.getDeclaredMethods().forEach(m => { + if (m.toString() === "protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) throws java.lang.ClassFormatError") { + defClass = m; + } + }) defClass.setAccessible(true) @@ -44,7 +49,7 @@ const registerForge = (e, cb) => { con.visitCode() con.visitVarInsn(Opcodes.ALOAD, 0) con.visitMethodInsn(Opcodes.INVOKESPECIAL, obj, "<init>", "()V", false) - + con.visitVarInsn(Opcodes.ALOAD, 0) con.visitVarInsn(Opcodes.ALOAD, 1) con.visitFieldInsn(Opcodes.PUTFIELD, name, "callback", L(consumer)) @@ -75,7 +80,7 @@ const registerForge = (e, cb) => { const inst = defineClassBytes(name, cw.toByteArray()) .getDeclaredConstructor(Consumer.class) .newInstance(new java.util.function.Consumer({ - accept: function (t) { cb(t) } + accept: function (t) { cb(t) } })) LoadedInsts.push(inst) return inst; @@ -86,7 +91,7 @@ const unregisterForge = inst => { } register("gameUnload", () => { - LoadedInsts.forEach(unregisterForge) + LoadedInsts.forEach(unregisterForge) LoadedInsts.length = 0 }) |