3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-12-24 15:20:35 +01:00

Validate plugin dependency IDs in accordance to plugin ID requirements (#1231)

Dieser Commit ist enthalten in:
itsTyrion 2024-02-08 03:30:55 +01:00 committet von GitHub
Ursprung 5956751284
Commit 10430a2115
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194
2 geänderte Dateien mit 19 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -9,6 +9,7 @@ package com.velocitypowered.api.plugin.ap;
import com.google.auto.service.AutoService;
import com.google.gson.Gson;
import com.velocitypowered.api.plugin.Dependency;
import com.velocitypowered.api.plugin.Plugin;
import java.io.BufferedWriter;
import java.io.IOException;
@ -87,6 +88,16 @@ public class PluginAnnotationProcessor extends AbstractProcessor {
return false;
}
for (Dependency dependency : plugin.dependencies()) {
if (!SerializedPluginDescription.ID_PATTERN.matcher(dependency.id()).matches()) {
environment.getMessager().printMessage(Diagnostic.Kind.ERROR,
"Invalid dependency ID '" + dependency.id() + "' for plugin " + qualifiedName
+ ". IDs must start alphabetically, have lowercase alphanumeric characters, and "
+ "can contain dashes or underscores.");
return false;
}
}
// All good, generate the velocity-plugin.json.
SerializedPluginDescription description = SerializedPluginDescription
.from(plugin, qualifiedName.toString());

Datei anzeigen

@ -72,6 +72,14 @@ public class JavaPluginLoader implements PluginLoader {
throw new InvalidPluginException("Plugin ID '" + pd.getId() + "' is invalid.");
}
for (SerializedPluginDescription.Dependency dependency : pd.getDependencies()) {
if (!SerializedPluginDescription.ID_PATTERN.matcher(dependency.getId()).matches()) {
throw new InvalidPluginException(
"Dependency ID '" + dependency.getId() + "' for plugin '" + pd.getId() + "' is invalid."
);
}
}
return createCandidateDescription(pd, source);
}