mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 12:27:59 +01:00
Ignore invalid jars inside of the updates folder (Fixes #7751)
This really needs a deeper look here, the way updates are handled is fairly immature, but, this wasn't ever intended to be a large scale thing Ideally, imho, we'd collect the list of update files into some form of Map, that way we just have a reference of Name > File refs, and can filter out cases where there are two versions of a plugin in there and warn expectidely, but, that creates some complications, you would need to fall back to a dir scan in the case of a plugin calling loadPlugin, but, it would at least give us more defined behavior, as well as improve performance here vs repeatidely trying to deserialise the plugin.yml defs for every file in there on every load
This commit is contained in:
parent
68ff86040e
commit
2b927737c9
@ -32,7 +32,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
if (updateDirectory == null || !updateDirectory.isDirectory()) {
|
||||
- return;
|
||||
+ return file;
|
||||
}
|
||||
+ }
|
||||
+ PluginLoader pluginLoader = getPluginLoader(file);
|
||||
+ try {
|
||||
+ String pluginName = pluginLoader.getPluginDescription(file).getName();
|
||||
@ -40,7 +40,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ if (!updateFile.isFile()) continue;
|
||||
+ PluginLoader updatePluginLoader = getPluginLoader(updateFile);
|
||||
+ if (updatePluginLoader == null) continue;
|
||||
+ String updatePluginName = updatePluginLoader.getPluginDescription(updateFile).getName();
|
||||
+ String updatePluginName;
|
||||
+ try {
|
||||
+ updatePluginName = updatePluginLoader.getPluginDescription(updateFile).getName();
|
||||
+ // We failed to load this data for some reason, so, we'll skip over this
|
||||
+ } catch (InvalidDescriptionException ex) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (!pluginName.equals(updatePluginName)) continue;
|
||||
+ if (!FileUtil.copy(updateFile, file)) continue;
|
||||
+ File newName = new File(file.getParentFile(), updateFile.getName());
|
||||
@ -51,7 +57,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ }
|
||||
+ catch (InvalidDescriptionException e) {
|
||||
+ throw new InvalidPluginException(e);
|
||||
+ }
|
||||
}
|
||||
+ return file;
|
||||
+ }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user