BungeeCord Listener automatisch registrieren

  • Einen BungeeCord Listener muss man nicht immer für jede Klasse manuell registrieren, dies geht auch anhand der Reflections-API.

    Hallo ihr Entwickler!


    In diesem kleinem Tutorial zeige ich euch wie ihr BungeeCord Listener automatisch registrieren könnt.

    Dazu verwenden wir die API Reflections und Maven zur Verwaltung der Abhängigkeiten.


    Vorraussetzungen für diese Methode: alle Listener müssen sich in einem Package befinden!


    Code
    1. <dependency>
    2. <groupId>org.reflections</groupId>
    3. <artifactId>reflections</artifactId>
    4. <version>LATEST</version>
    5. </dependency>


    Da dies eine externe Bibliothek ist und diese nicht in BungeeCord enthalten ist, muss sie in das "Endprodukt des Projektes" mit eingebunden werden. Dazu verwenden wir das maven-assembly-plugin.



    Problem hierbei: So werden alle dependencies mit in das Projekt eingefügt. Um dies zu fixen, statten wir alle dependencies, die nicht mit in die jar sollen, mit einem scope aus. Dazu muss der Wert des scope-Attributes auf "provided" gestellt werden. Beispiel:



    Okay, aber nun zur eigentlichen Methode:


    So werden alle Klassen, die vom SubType Listener sind, dem Set hinzugefügt und ihr könnt sie ganz einfach registrieren. Wichtig ist, dass ihr den richtigen Pfad des Packages angebt, sonst funktioniert das ganze natürlich auch nicht.


    Ich hoffe ich konnte einigen von euch helfen :)

Teilen