Skip to content

Commit fe1a702

Browse files
committed
Use callSync
1 parent 9968061 commit fe1a702

2 files changed

Lines changed: 22 additions & 21 deletions

File tree

src/main/java/ch/njol/skript/ScriptLoader.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import java.io.InputStream;
3939
import java.nio.file.Files;
4040
import java.nio.file.Path;
41+
import java.sql.Struct;
4142
import java.util.*;
4243
import java.util.concurrent.*;
4344
import java.util.function.Supplier;
@@ -846,8 +847,11 @@ public static ScriptInfo unloadScripts(Set<Script> scripts) {
846847
script.eventRegistry().events(ScriptUnloadEvent.class)
847848
.forEach(event -> event.onUnload(parser, script));
848849

849-
for (Structure structure : script.getStructures())
850-
structure.unload();
850+
Stream<Structure> structuresStream = script.getStructures().stream();
851+
if (isParallel())
852+
structuresStream = structuresStream.parallel();
853+
854+
structuresStream.forEachOrdered(Structure::unload);
851855
}
852856

853857
parser.setInactive();

src/main/java/ch/njol/skript/command/ScriptCommand.java

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -460,27 +460,24 @@ public void registerHelp() {
460460
}
461461

462462
public void unregisterHelp() {
463-
new Task(Skript.getInstance(), 0) {
464-
@Override
465-
public void run() {
466-
Bukkit.getHelpMap().getHelpTopics().removeAll(helps);
467-
468-
final HelpTopic aliases = Bukkit.getHelpMap().getHelpTopic("Aliases");
469-
if (aliases != null && aliases instanceof IndexHelpTopic) {
470-
try {
471-
final Field topics = IndexHelpTopic.class.getDeclaredField("allTopics");
472-
topics.setAccessible(true);
473-
@SuppressWarnings("unchecked")
474-
final ArrayList<HelpTopic> as = new ArrayList<>((Collection<HelpTopic>) topics.get(aliases));
475-
as.removeAll(helps);
476-
topics.set(aliases, as);
477-
} catch (final Exception e) {
478-
Skript.outdatedError(e);//, "error unregistering aliases for /" + getName());
479-
}
463+
Task.callSync(() -> {
464+
Bukkit.getHelpMap().getHelpTopics().removeAll(helps);
465+
final HelpTopic aliases = Bukkit.getHelpMap().getHelpTopic("Aliases");
466+
if (aliases != null && aliases instanceof IndexHelpTopic) {
467+
try {
468+
final Field topics = IndexHelpTopic.class.getDeclaredField("allTopics");
469+
topics.setAccessible(true);
470+
@SuppressWarnings("unchecked")
471+
final ArrayList<HelpTopic> as = new ArrayList<>((Collection<HelpTopic>) topics.get(aliases));
472+
as.removeAll(helps);
473+
topics.set(aliases, as);
474+
} catch (final Exception e) {
475+
Skript.outdatedError(e);//, "error unregistering aliases for /" + getName());
480476
}
481-
helps.clear();
482477
}
483-
};
478+
helps.clear();
479+
return null;
480+
});
484481
}
485482

486483
public String getName() {

0 commit comments

Comments
 (0)