• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Problem mit Parameter

The-Chriss

Minecrafter
Registriert
20 April 2012
Beiträge
7
Diamanten
0
Hey,
ich habe ein problem, ich schreibe ein Clan Plugin und ich will ein befehl /clan erstellen [Tag] [Clan-Name]
aber weiß nicht sorecht wie es mit dem Parametern funktioniert. Wäre nett wenn ihr mir eine kleine Hilfe gibt. ;)

MfG,
The-Chriss
 

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0
In der onCommand methode:
Code:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { /*code*/ }

Bekommst du ein String Array übergeben, in diesem fall "args" genannt, in dem Array stehen alle übergebenen Argumente.
 

Taces

Minecrafter
Registriert
17 Oktober 2013
Beiträge
16
Diamanten
0
Nichts gegen dich, aber ich würde dir empfehlen erstmal einfache Plugins zu versuchen und die Grundlagen in der Bukkit-Programmierung zu lernen, wenn du nicht einmal weißt, wie man an die Parameter bei einem Command rankommt ;)
 

Taces

Minecrafter
Registriert
17 Oktober 2013
Beiträge
16
Diamanten
0
Ich nehme zurück was ich gesagt habe und gebe dir einen anderen ratschlag: Lern erstmal die Grundlagen der Java-Programmierung. Strings werden mit .equals und nicht mit == verglichen ;)

Code:
if(args.length==1&&args[0].equals("erstellen")){
  //Code hier
}
 

NeoVir

Minecrafter
Registriert
24 Juli 2013
Beiträge
6
Diamanten
0
Ich nehme zurück was ich gesagt habe und gebe dir einen anderen ratschlag: Lern erstmal die Grundlagen der Java-Programmierung. Strings werden mit .equals und nicht mit == verglichen ;)

Code:
if(args.length==1&&args[0].equals("erstellen")){
  //Code hier
}

Dies würde dir eine NPE geben, weil in der IF Abfrage noch nicht klargestellt wurde, dass die Anzahl der Argumente > 0 ist, jedoch fragst du schon nach dem Argument. Würde jemand '/clan' machen gibt es eine NPE :)
 

Benni1000

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
4 Mai 2012
Beiträge
1.396
Diamanten
0
Dies würde dir eine NPE geben, weil in der IF Abfrage noch nicht klargestellt wurde, dass die Anzahl der Argumente > 0 ist, jedoch fragst du schon nach dem Argument. Würde jemand '/clan' machen gibt es eine NPE :)

Das stimmt nicht, er benutzt hier AND, der rechte teil der if abfrage wird nur ausgeführt wenn der linke zutrifft.
Und nachdem der linke prüft ob die länge der argumente 1 ist kann er problemlos auf das Array zugreifen.

Kannst du übrigens auch selber austesten, z.b mit so einem konstrukt:
Code:
public class Test {

	public static void main(String args[]) {


		final boolean immerFalsch = false;
		if(immerFalsch && teste()) {
			System.out.println("bla");
		} else {
			System.out.println("Es wurde nur der linke teil evaluiert.");
		}


	}


	public static boolean teste() {
		System.out.println("wurde aufgerufen");
		return true;
	}


}

Ausgabe auf der Konsole:
Code:
[benni@benni-archlinux Desktop]$ javac Test.java [benni@benni-archlinux Desktop]$ java Test
Es wurde nur der linke teil evaluiert.

Du siehst also das der rechte teil (in diesem fall eine methode) nie aufgerufen wird.
 
Zuletzt bearbeitet:
Oben