Jump to content

Pluginentwicklungs Fragen


DerNaris
 Share

Recommended Posts

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 to comment
Share on other sites

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 to comment
Share on other sites

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;

}

Edited by TuxGamer
Link to comment
Share on other sites

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

Edited by DerNaris
Link to comment
Share on other sites

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

}
Edited by idk.cpp
Link to comment
Share on other sites

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 to comment
Share on other sites

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.

Edited by DerNaris
Link to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...
B
B