From 187e1f5848fbdd77df06ca9d18eda471edbfea92 Mon Sep 17 00:00:00 2001 From: DeltaNedas <39013340+DeltaNedas@users.noreply.github.com> Date: Wed, 29 Jan 2020 23:52:58 +0000 Subject: [PATCH] create new branch --- core/src/mindustry/mod/Mods.java | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 8ddd3c3300..d39060eddd 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -460,10 +460,26 @@ public class Mods implements Loadable{ eachEnabled(mod -> { if(mod.root.child("scripts").exists()){ content.setCurrentMod(mod); - mod.scripts = mod.root.child("scripts").findAll(f -> f.extension().equals("js")); - Log.debug("[{0}] Found {1} scripts.", mod.meta.name, mod.scripts.size); + if(mod.meta.mainScript == null){ + mod.scripts = mod.root.child("scripts").findAll(f -> f.extension().equals("js")); + Log.debug("[{0}] Found {1} scripts.", mod.meta.name, mod.scripts.size); - for(Fi file : mod.scripts){ + for(Fi file : mod.scripts){ + try{ + if(scripts == null){ + scripts = platform.createScripts(); + } + scripts.run(mod, file); + }catch(Throwable e){ + Core.app.post(() -> { + Log.err("Error loading script {0} for mod {1}.", file.name(), mod.meta.name); + e.printStackTrace(); + }); + break; + } + } + }else{ + Fi file = new Fi(mod.meta.mainscript + ".js"); try{ if(scripts == null){ scripts = platform.createScripts(); @@ -471,10 +487,9 @@ public class Mods implements Loadable{ scripts.run(mod, file); }catch(Throwable e){ Core.app.post(() -> { - Log.err("Error loading script {0} for mod {1}.", file.name(), mod.meta.name); - e.printStackTrace(); + Log.err("Error loading main script {0} for mod {1}.", file.name(), mod.meta.name); + e.printStacktrace(); }); - break; } } } @@ -794,7 +809,7 @@ public class Mods implements Loadable{ /** Plugin metadata information.*/ public static class ModMeta{ - public String name, displayName, author, description, version, main, minGameVersion; + public String name, displayName, author, description, version, main, minGameVersion, mainScript; public Array dependencies = Array.with(); /** Hidden mods are only server-side or client-side, and do not support adding new content. */ public boolean hidden;