ServerPlugin [BungeeCord] Plugin soll auf anderes Plugin zugreifen

Dieses Thema im Forum "Programmierung" wurde erstellt von vMief, 2. Februar 2015.

  1. vMief
    Offline

    vMief

    Registriert seit:
    31. Januar 2015
    Beiträge:
    15
    Minecraft:
    Der_Schlumpf
    Hallo, ich bin grade dabei, zwei Plugins für BungeeCord zu schreiben. Dabei muss das zweite Plugin auf die Daten von dem ersten Plugin zugreifen. Allerdings soll das zweite Plugin nicht direkt auf die Datenbank des ersetn Plugins zugreifen, sondern dies über Methoden des ersten Plugins machen. Gibt es da irgendeine Möglichkeit?
     
    #1
  2. Yellowphoenix18
    Offline

    Yellowphoenix18

    Registriert seit:
    26. März 2013
    Beiträge:
    267
    Ort:
    Niedersachsen
    Minecraft:
    YellowPhoenix18
    Mache doch eine Methods-Class in dem ersten Plugin und implementiere das erste Plugin wie deine spigot.jar in das zweite.
     
    #2
    vMief gefällt das.
  3. vMief
    Offline

    vMief

    Registriert seit:
    31. Januar 2015
    Beiträge:
    15
    Minecraft:
    Der_Schlumpf
    Ja, das hatte ich mir auch schon gedacht, allerdings stehe ich jetzt vor einem Problem. Denn damit das funktioniert, muss das zweite Plugin auf die Instanz des ersten Plugins zugreifen, die beim Starten des Server initialisiert wird.
    Ich hatte schon diesen Code:

    MeinPlugin plst = (MeinPlugin) this.plugin.getProxy().getPluginManager().getPlugin("MeinPlugin").getClass().cast(new MeinPlugin());

    Allerdings konnte ich damit nicht auf die Plugin-Instanz von BungeeCord zugreifen. Nach der getPlugin()-Methode hat man ja nur die Instanz als Plugin()-Klasse. Aber um auf meine Methoden zu zugreifen, brauche ich ja die Klasse MeinPlugin()

    Edit: Oder muss ich da etwas ganz anderes ausprobieren? Das wäre zwar unschön, ich hätte da allerdings auch schon eine Möglichkeit. So, wie oben beschrieben, wäre es halt nur viel leichter (für mich).
    Edit2: Ich habe es jetzt ganz anders gelöst. Und zwar speichere ich die Instanz der API-Klasse während der Initialisierung meines Plugin in eine statische Variable. Darauf kann ich dann ganz einfach zugreifen. Allerdings würde es mich trotzdem interessieren, ob das irgendwie so wie oben beschrieben geht.
     
    #3
  4. DarkPrincess
    Offline

    DarkPrincess

    Registriert seit:
    31. August 2013
    Beiträge:
    52
    Code (Text):
    1. MeinPlugin plst = (MeinPlugin) this.plugin.getProxy().getPluginManager().getPlugin("MeinPlugin")
    Sollte reichen.
    Wobei es sinnvoller wäre :

    Code (Text):
    1.  
    2. Plugin pl = ProxyServer.getInstance().getPluginManager().getPlugin("MienPlugin");
    3. MeinPlugin mPl = null;
    4. if(pl instanceof MeinPlugin) {
    5.   mPl = (MeinPlugin)pl;
    6. }
     
    #4
    vMief gefällt das.