diff --git a/android/src/mindustry/android/AndroidLauncher.java b/android/src/mindustry/android/AndroidLauncher.java index 1b0402da69..8f03d5fdb7 100644 --- a/android/src/mindustry/android/AndroidLauncher.java +++ b/android/src/mindustry/android/AndroidLauncher.java @@ -18,7 +18,6 @@ import dalvik.system.*; import mindustry.*; import mindustry.game.Saves.*; import mindustry.io.*; -import mindustry.mod.*; import mindustry.net.*; import mindustry.ui.dialogs.*; @@ -67,9 +66,7 @@ public class AndroidLauncher extends AndroidApplication{ @Override public rhino.Context getScriptContext(){ - rhino.Context result = AndroidRhinoContext.enter(((Context)AndroidLauncher.this).getCacheDir()); - result.setClassShutter(Scripts::allowClass); - return result; + return AndroidRhinoContext.enter(getCacheDir()); } @Override diff --git a/android/src/mindustry/android/AndroidRhinoContext.java b/android/src/mindustry/android/AndroidRhinoContext.java index 0147f118b8..99eb209ff1 100644 --- a/android/src/mindustry/android/AndroidRhinoContext.java +++ b/android/src/mindustry/android/AndroidRhinoContext.java @@ -13,6 +13,8 @@ import com.android.dx.dex.cf.*; import com.android.dx.dex.file.DexFile; import com.android.dx.merge.*; import dalvik.system.*; +import mindustry.*; +import mindustry.mod.*; import rhino.*; import java.io.*; @@ -78,6 +80,16 @@ public class AndroidRhinoContext{ initApplicationClassLoader(createClassLoader(AndroidContextFactory.class.getClassLoader())); } + @Override + protected Context makeContext(){ + Context ctx = super.makeContext(); + ctx.setClassShutter(Scripts::allowClass); + if(Vars.mods != null){ + ctx.setApplicationClassLoader(Vars.mods.mainLoader()); + } + return ctx; + } + /** * Create a ClassLoader which is able to deal with bytecode * @param parent the parent of the create classloader diff --git a/core/src/mindustry/core/Platform.java b/core/src/mindustry/core/Platform.java index 2adf5dc790..c889e9992a 100644 --- a/core/src/mindustry/core/Platform.java +++ b/core/src/mindustry/core/Platform.java @@ -7,6 +7,7 @@ import arc.math.*; import arc.struct.*; import arc.util.*; import arc.util.serialization.*; +import mindustry.*; import mindustry.mod.*; import mindustry.net.*; import mindustry.net.Net.*; @@ -64,6 +65,9 @@ public interface Platform{ protected Context makeContext(){ Context ctx = super.makeContext(); ctx.setClassShutter(Scripts::allowClass); + if(Vars.mods != null){ + ctx.setApplicationClassLoader(Vars.mods.mainLoader()); + } return ctx; } });