Call JavaPlugin#onLoad only after all ClassLoader's are created (bukkit)
This commit is contained in:
parent
a84189e290
commit
90b248f321
1 changed files with 13 additions and 1 deletions
|
|
@ -58,6 +58,7 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin, BukkitPlu
|
||||||
public PluginResults<Plugin> loadPluginDescriptions(List<BukkitPluginDescription> descriptions) {
|
public PluginResults<Plugin> loadPluginDescriptions(List<BukkitPluginDescription> descriptions) {
|
||||||
PluginResults<Plugin> pluginResults = new PluginResults<>();
|
PluginResults<Plugin> pluginResults = new PluginResults<>();
|
||||||
|
|
||||||
|
List<Plugin> plugins = new ArrayList<>();
|
||||||
for (BukkitPluginDescription description : descriptions) {
|
for (BukkitPluginDescription description : descriptions) {
|
||||||
String pluginId = description.getId();
|
String pluginId = description.getId();
|
||||||
|
|
||||||
|
|
@ -82,8 +83,19 @@ public class BukkitPluginManager extends AbstractPluginManager<Plugin, BukkitPlu
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin == null) return pluginResults.addResult(pluginId, Result.INVALID_PLUGIN);
|
if (plugin == null) return pluginResults.addResult(pluginId, Result.INVALID_PLUGIN);
|
||||||
|
plugins.add(plugin);
|
||||||
Bukkit.getPluginManager().callEvent(new BukkitPluginLoadEvent(plugin, PluginEvent.Stage.PRE));
|
Bukkit.getPluginManager().callEvent(new BukkitPluginLoadEvent(plugin, PluginEvent.Stage.PRE));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Plugin plugin : plugins) {
|
||||||
|
String pluginId = getPluginId(plugin);
|
||||||
|
try {
|
||||||
plugin.onLoad();
|
plugin.onLoad();
|
||||||
|
} catch (Throwable th) {
|
||||||
|
th.printStackTrace();
|
||||||
|
return pluginResults.addResult(pluginId, Result.ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
Bukkit.getPluginManager().callEvent(new BukkitPluginLoadEvent(plugin, PluginEvent.Stage.POST));
|
Bukkit.getPluginManager().callEvent(new BukkitPluginLoadEvent(plugin, PluginEvent.Stage.POST));
|
||||||
pluginResults.addResult(pluginId, plugin);
|
pluginResults.addResult(pluginId, plugin);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue