Hallo zusammen,
ich begrüße es, dass du dir die Mühe gemacht hast ein Tutorial zu schreiben.
Allerdings sehe ich hier gleich mehrere Schwierigkeiten an dieser Technik.
Durch das Umgehen der Registrierung der Plugins innerhalb der plugin.yml beschert das einige Probleme. Der Server weiß nicht mehr zu welchem Plugin ein Command gehört. Sie können, wie mein Vorredner bereits erläuterte, nicht mehr entfernt werden, wenn das Plugin deaktiviert wird. Weiterhin wird kein Exception Handling betrieben. Wenn irgendwas passiert, fliegt dir alles um die Ohren.
Die plugin.yml ist für Metadaten zum Plugin da. Dazu gehören nunmal auch Commands und Permissions. Wenn sie 400 Zeilen lang wird, dann ist das so. Dann heißt das aber auch, dass du gute Arbeit geleistet hast dein Plugin ordentlich zu dokumentieren.
Im gleichen Satz gibst du an, dass es ja jedem frei steht dies so zu machen. Das ist absolut richtig. Allerdings arbeitest du hier an der API vorbei. Gerade beim Einsatz von Reflections, wie sie hier genutzt werden, solltest du dir jedoch überlegen, ob das der richtige Weg ist. Siehe Zeile 71-73 deiner AbstractCommands-Klasse. Meines Erachtens nach ist er das nicht.
Viele Grüße
tinyoverflow