Jump to content

Pluginentwicklungs Fragen


Empfohlene Beiträge

Hallo,

wie es bei großen Plugins ist, bewältigt man die größten Hürden, doch simple Probleme sind unüberwindbar, unzwar möchte ich, wenn ich ein Command ausführe, das zu einer Zahl +1 addiert wird, kurz gesagt : wenn ich einmal das Command ausführe habe ich als Wert 1, wenn ich es zweimal ausführe 2. Außerdem habe ich mir mal einen allgemeinen Fragethread erstellt, nicht das ich für jede Frage einen neuen Thread eröffnen muss ;)

Mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi.

Hast du Programmiererfahrung? Das hört sich nach einem sehr simplen Problem an!

Folgendes ist die Lösung:


public class ThePlugin extends JavaPlugin {

  private int nummer = 0;


  public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String args[]) {

    if (cmdLabel.equalsIgnoreCase("command"))  // Falls du mehrere Commands registriert hast

      nummer++;

  }

}

Ich weiß nicht wie die anderen das sehen, aber ich finde für jede Frage ein Thread besser.

LG

idk.java

Link zu diesem Kommentar
Auf anderen Seiten teilen

public class ThePlugin extends JavaPlugin {

private int nummer;

@Override

public void onEnable() {

nummer = 0;

}

@Override

public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String args[]) {

if (cmdLabel.equalsIgnoreCase("command")) {

nummer++;

}

}

return true;

}

bearbeitet von TuxGamer
Link zu diesem Kommentar
Auf anderen Seiten teilen

Und da kommt schon das nächste Problem, ich bräuchte eine Funktion, wie ein CommandExecuter, nur eben ohne Commtent d.h. wenn der Server / das Plugin startet, dass der entsprechende Teil direkt ausgeführt wird, kann mir da jmd. helfen ? ;)

Bzw ums nochmal anders zu Formulieren : Ich will den onEnable Teil in ne andere Klasse stecken, die auch direkt beim Start des Plugins ausgeführt wird.

Lg

bearbeitet von DerNaris
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn das Plugin geladen wird, wird die


public void onLoad();

aufgerufen. Wenn das Plugin aktiviert wird, wird die


public void onEnable();

aufgerufen.

Also könntest du folgendes machen:


public class MeinKleinesPlugin extends JavaPlugin {

    // Some stuff


    @Override

    public void onEnable() {

        // Some stuff wenn das Plugin enabled wird

    }


    // O Wunder: some stuff

}
bearbeitet von idk.cpp
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist mir schon klar ;) Nur ich möchte im onEnable() Teil, eine Art CommandExecutor setzen, der auf eine andere Klasse verweißt, die dann direkt ausgeführ wird, ein CommandExecutor, arbeitet ja erst, wenn das entsprechende Command eingegeben wird.


@Override

	public void onEnable() {	

      	System.out.println("Plugin wird gestartet");


		this.getCommand("irgent eine Befehl").setExecutor(new verweißt auf irgent ne Klasse());

                // Statt diesem Executor brauche ich eben etwas, was direkt die andere Klasse läd, ohne einen Befehl
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dache mir schon das die Erklärung etwas gurkig ist, dann versuch ich es mal so :

Das Plugin wird gestartet (main,java)--> in meiner Hauptklasse steht irgentwo ein Verweiß auf eine Nebenklasse (maincommand.java)--> Die Methoden in der Nebenklasse werden ausgeführt

Also wenn das Plugin startet, wird gleich der ganze Kram ausgeführt ohne das ein Command eingegeben werden muss, quasi wie der onEnable Teil eines Plugin, der wird ja auch bei Start des Plugins ohne das ein Command eingegben wurde ausgeführt.

bearbeitet von DerNaris
Link zu diesem Kommentar
Auf anderen Seiten teilen

Eigentlich ist es immernoch nicht das was ich wirklich brauche / suche, aber dann ändere ich halt den Code ein bisschen, danke trozdem. Außerdem ist es mein erstes richtiges Plugin und ich steige gerade von HTML um, aber kennt vieleicht wer ne gute Homepage auf der man Java lernen kann ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt das Buch "Java ist eine Insel" von Galileocomputing offen im Internet, irgendwo auf den eigenen Seiten sogar.

Das ist sehr gut, aber ich fand das Buch in Papierform angenehmer zu lesen.

Und warum hast du meine PM entfernt? Dann kann ich dir nicht antworten (:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B