Minecraft Bukkit Plugin: Was bedeutet "null", "!" "instanceof" ....
Hi, Ich bin neu in Bukkit Plugins programmieren. Darum wollte ich fragen, was diese Sachen in Java bzw Bukkit heißt: (Ich gib immer Beispiele an)
instanceof (Beispielt: if (sender instanceof Player) {
null (Beispielt: Player player = null;)
args bzw args[0] (Beispielt: if(args.length == 0) ODER if(args[0].equalsIgnoreCase
! (Beispiel: if(target != null) )
short (Beispiel: kopf.setDurability((short)3); )
|| (Beispiel: if(Material.APPLE || Material.BED) )
&& (Beispiel: if(Material.APPLE && Material.BED) )
Hashmap (Beispiel: HashMap inventory = new HashMap<>(); )
String (Beispiel: ArrayList imspiel = new ArrayList<>(); )
....
Ich hab überall in Google gesucht aber ich finde nix D: wäre nett, wenn ihr mir von den Beispielen die Bedeutung schreibet würdet :)
MFG
4 Antworten
Ich hab überall in Google gesucht aber ich finde nix
Das ist schlicht und einfach gelogen. "java instanceof" gibt ca. 18 Millionen Suchergebnisse zurück. Meine Definition des Wortes "nix" ist irgendwie anders.
Deine Fragen lassen ganz klar durchblicken, dass du weder von Java noch Bukkit (programmatisch) etwas verstehst. Diese Fragen sich Anfängerfragen bzw. grundlegende Sachen, die in jedem zweitklassigen Youtube-Tutorial behandelt werden. Such also mit einer Suchmaschine deiner Wahl nach "java tutorial" (es wird sogar etwas gefunden) ein und nimm dir ein oder zwei vor.
Ansonsten sollte in dem Tutorial noch Klassen, Instanzen, Interfaces, Listener Pattern, Enums sowie Ploymorphismus behandelt werden. Das brauchst du, um die Bukkit-API (besser) zu verstehen.
Das ist nicht gelogen. Ich weiß schon die Grundladen?.. Ich weis was eine Listener ist .. die Grundladen halt.
x instanceof y = wenn man x zu y casten kann = wenn x y ist.
null = nicht 0 sondern "nichts" also wenn die Variable "leer" ist.
args[x] = wenn du z.B. die onCommand Methode verwendest übergibst du ein paar Variablen Bsp.:
public boolean onCommand(CommandSender sender, Command cmd,String label, String[] args) {
Du hast jetzt einen Commandsender der sender heißt. Er gibt an, wer den Command ausführt. Den Command an sich(cmd) also z.B. bei /test 1 2 3 währe test der Name des Commands. Dann noch das Label mit dem ich auch nichts anfangen kann :D.
Zuletztnoch die args. Das ist eine Folge von Strings(eine Folge von Zeichen z.b. aB_0). Du kannst auf jeden String mit einer Nummer zugreifen z.B. bei /test 1 2 3 mit args[0] zu 1 mit args[1] zu 2 mit args[2] zu 3 und bei args[3] würdest du nen Fehler kriegen weil der fehlt.
/[cmd.getName] args[0] args[1] args[2] ...
! ist in Java negativierend Bsp. If(1 == 0) währe nicht richtig da 1 nie 0(nicht null) sein wird. if(1 != 0) währe richtig, weil 1 nicht 0 ist. Du kannst es auch nicht mit Zahlen machen Bsp. if(!x.equals(y))
Du nimmst dir eine Zahl(int oder Interger) und wandelst sie in einen Short um. Ein Short ist in kurzen Zahlen performanter. Ein Long dagegen in langen. (Der Seed einer Welt wird meistens als Long angegeben, weil der eben lang ist).
|| ist in Java oder. if(irgendeinmaterial.equals(material.apple) || irgendeinmaterial.equals(material.bed)) heißt also wenn irgendeinmaterial ein Apfel ist oder ein bed.
&& ist dagegen und. if(irgendeinmaterial.equals(material.apple) && irgendeinmaterial.equals(material.bed)) heißt wenn irgendeinmaterial gleichzeitig bed und apfel ist, was nie sein kann.
ne Hashmap ist wenn du 2 Sachen quasi verknotest. Bsp. HashMap<Player, Integer> irgendwas = new HashMap<>();
du kannst dann da was reinstecken Bsp. irgendwas.put(irgendeinSpieler, 5);
und raushohlen Bsp. irgendwas.get(irgendeinSpieler) dann ist das 5
irgendwas.getValue(5) ist dann irgendein Spieler.
Ein String ist eine Variable, die eine Zeichenfolge sein muss Bsp. String irgendwas = "aB_0" in ne ArrayList Bsp. ArrayList<String> imspiel = new ArrayList<>()
kannst du Sachen rein tuen Bsp. imspiel.add("irgendeinSpielerName")
und dann gucken ob er drin ist Bsp. if(imspiel.contains("irgendeinSpielerName")
oder entfernen wenn er drin ist Bsp. imspiel.remove("irgendeinSpielerName")
Hoffe ich konnte dir helfen :)
Bei Fragen einfach PN.
ergänzend kann ich noch label erklären (auch wenn es hier nicht gefragt war) . Label ist der name des Aufrufs (bei "/test" ist es "test" bei "/ping" ist es "ping" etc.) ist außerst wichtig wenn du ein plugin mit mehreren Commands schreibst. Ich empfehle aber möglichst für jeden befehl ein eigenes Plugin zu schreiben ... hoffe ich konnte helfen ;)
Buh13246
null = nicht 0 sondern "nichts" also wenn die Variable "leer" ist.
Nein das ist falsch.
null = nicht "leer" sondern null heisst sie ist nicht da sie enthält garnichts :), denn leer wäre sowas "" :)
mit instanceof kannst du herausfinden ob ein Bukkit Objekt ein Spieler, die Konsole oder etwas anderes ist.
Fang erst garnicht mit Bukkit Plugins an, wenn du nicht mal die Java Grundlagen kennst
Eigentlich hat er nicht gefragt ob er mit Bukkit Plugins anfangen sollte, sondern nach schweren Begriffen. Aber Grundlagen sollte man manche kennen oder bisschen mehr nachforschen was die angeht
Vielen Dank :D