|
25 | 25 | import java.util.Calendar; |
26 | 26 | import java.util.List; |
27 | 27 | import java.util.jar.JarFile; |
| 28 | +import java.util.stream.Stream; |
28 | 29 |
|
29 | 30 | public class Parser { |
30 | 31 |
|
@@ -89,25 +90,17 @@ public static void init(String[] mainPackages, String[] subPackages, String[] pr |
89 | 90 | registration = new SkriptRegistration(skript); |
90 | 91 | DefaultRegistration.register(); |
91 | 92 |
|
92 | | - // Ensure Skript loads first |
93 | | - mainPackages = Arrays.copyOf(mainPackages, mainPackages.length + 1); |
94 | | - mainPackages[mainPackages.length - 1] = "io.github.syst3ms.skriptparser"; |
95 | | - |
96 | | - // Combine main and sub-packages |
97 | | - List<String> sub = new ArrayList<>(); |
98 | | - sub.addAll(Arrays.asList(subPackages)); |
99 | | - sub.addAll(Arrays.asList("expressions", "effects", "event", "lang", "sections", "tags")); |
100 | | - subPackages = sub.toArray(new String[0]); |
101 | | - List<String> allPackages = new ArrayList<>(List.of(mainPackages)); |
102 | | - for (String subPackage : subPackages) { |
103 | | - for (String main : mainPackages) { |
104 | | - allPackages.add(main + "." + subPackage); |
105 | | - } |
106 | | - } |
| 93 | + String[] allPackages = Stream.concat( |
| 94 | + Stream.of("expressions", "effects", "event", "lang", "sections", "structures", "tags") |
| 95 | + .map(subPackage -> "io.github.syst3ms.skriptparser." + subPackage), |
| 96 | + Stream.of(subPackages) |
| 97 | + .flatMap(subPackage -> Stream.of(mainPackages) |
| 98 | + .map(main -> main + "." + subPackage)) |
| 99 | + ).toArray(String[]::new); |
107 | 100 |
|
108 | 101 | try { |
109 | 102 | // Load all classes in the specified packages |
110 | | - new Reflections(allPackages.toArray(new String[0]), Scanners.SubTypes.filterResultsBy(s -> true)) |
| 103 | + new Reflections(allPackages, Scanners.SubTypes.filterResultsBy(s -> true)) |
111 | 104 | .getSubTypesOf(Object.class) |
112 | 105 | .forEach(clazz -> { |
113 | 106 | try { |
|
0 commit comments