Java Player Argument

Dieses Thema im Forum "Programmierung" wurde erstellt von laserVeit, 11. Dezember 2015.

  1. laserVeit
    Offline

    laserVeit

    Registriert seit:
    2. Dezember 2015
    Beiträge:
    13
    Ich weiß was ihr jetz alle rummotz aber Ich bin Anfänger in Plugin programmieren deswegen frag ich euch wie kann mann ein player argument machen
    zb. /tp (player argument) wenns geht könnt ihr mir es so schicken wie es sein soll

    Der Code ist hier

    Ich bin sehr dankbar wenn es mir jemand zeigen könnte

    if(cmd.getName().equalsIgnoreCase("getPremium")) {
    getServer().dispatchCommand(Bukkit.getConsoleSender(), "pex user "+ p.getName() +" group set Premium");
    getServer().broadcastMessage(Promote.Abtrennung);
    getServer().broadcastMessage("§7Der Spieler§a " + p.getName() + " §7wurde zu §6Premium §7 promotet");
    getServer().broadcastMessage("§7Vielen dank fuer deine Spende");
    getServer().broadcastMessage("§7Herzlichen Grueckwunsch und Viel Gleuck damit");
    getServer().broadcastMessage(Promote.Abtrennung);
    }
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Das nächste mal den Code tag benutzen.
    Bukkit.Getserver.Getplayer(string name)
     
    #2
  3. Verschraubt
    Offline

    Verschraubt

    Eigentlich falscher Bereich...

    Code (Text):
    1. @Override
    2.     public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
    Du bekommst mit einem String[] (hier mit der Variable "args") die Argumente überliefert.

    Jetzt musst du dein gewünschtes Argument nur noch "auswählen".

    Code (Text):
    1. // /tp <Argument 0> <Argument 1> <Argument 2> ...
    Wenn du jetzt zum Beispiel abfragen willst, ob das erste Argument "spawn" heißt, dann könnte das so aussehen:

    Code (Text):
    1. if (cmd.getName().equalsIgnoreCase("tp")){
    2.             if (args[0].equalsIgnoreCase("spawn")){
    3.                 //Abfrage ist erfolgreich - das erste Argument nach dem Kommando lautet "spawn";
    4.             }
    5.         }
    Mit freundlichen Grüßen,
    DasThema
     
    #3
  4. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Und dann solltest du natürlich vorher noch prüfen, ob das Array überhaupt ein Element enthält und das ist dann der Punkt an dem wir lieber erstmal Java lernen.
     
    #4
  5. Verschraubt
    Offline

    Verschraubt

    Nett, dass du mich daran erinnerst.

    Ein Forum ist dazu da um sich gegenseitig bestmöglich zu unterstützen bzw. zu helfen. Klar können nicht alle Beiträge perfekt sein (Die deine natürlich schon... *hust*), aber viele Beiträge mit Vorschlägen können durch Community verbessert werden und führen letztendlich zum richtigen Ergebnis.

    Ich mag deine Art nicht. Anstatt den Nutzern klar zu helfen versuchst du, einen mit deiner Ausdrucksweise zu beeindrucken. Meiner Meinung nach ist das eine Frechheit. Kritik mag ja schön und gut sein, aber ein bisschen Hilfsbereitschaft darf auch nicht fehlen.

    Wenn du dich doch schon so fantastisch auskennst, kannst du uns allen sicher weiterhelfen...
     
    #5
  6. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Ich habe nie behauptet immer Recht zu haben, wenn dir das natürlich so vor kommt kann ich daran auch nichts ändern :p Ich verhandle halt nur nicht mit Hilfesuchenden, ich geb eine Problemlösung an und erwartet dann weitere Nachfragen oder betrachte das Problem als gelöst, wenn auf meine bitte eines Serverlogs 2 weitere Seiten Diskussion mit dem Nutzer folgen der aus irgendwelchen Gründen kein Serverlog hat und in denen andere orakeln wo nun das Problem liegen könnte, dann ignorier ich das halt. Kommt dabei natürlich am Ende eine total falsche Lösung raus dann misch ich mich natürlich auch gerne wieder ein um die Widersprüchlichkeit der Lösungen zu zeigen.

    Und wo soll ich da deiner Meinung nach anfangen?
    • Dass der TE equalsIgnoreCase verwendet und dabei aber "getPremium" schreibt, was in dem Zusammenhang unlogisch ist und impliziert dass die Schreibweise eben gerade nicht egal ist?
    • Dass der TE korrekt getServer() aus dem Pluginkontext verwendet aber den Konsolensender über das Serversingleton besorgt?
    • Dass der TE nicht die PEX API verwendet sondern den Befehl einfach an den Server sendet ohne mindestens zu prüfen ob PEX überhaupt installiert ist?
    • Dass der TE die Farbcodes direkt in die Nachricht schreibt anstelle die entsprechenden ChatColor Enums zu verwenden?
    • Das nach Konvention falsch benannte "Promote.Abtrennung", welches "Promote.ABTRENNUNG" heißen müsste sofern es eine statische finale Variable ist?
    • Dass der TE scheinbar eine komische Zeichenkodierung verwendet, da er das "ü" als "ue" kodiert hat?
    • Oder einfach nur der Schreibfehler in "Grueckwunsch"?
    Und das war nur ein kleiner Teil des Codes vom TE, den Rest kenne ich nicht aber ich denk obige Liste lässt sich sicherlich um das 5-fache vergrößern.

    Dazu kommt noch, dass du sogar in deiner eigenen Signatur auf Google hinweist und der Wunsch des TE ist nun wirklich kein Hexenwerk. Man sucht sich halt irgendeinen Beispielcode aus einem Plugin oder sonst woher der einen Befehl implementiert, der dann halt etwas mit einem anderen Spieler macht. Beispielsweise einen eigenen Kick Befehl oder Whisper. Gott, da gibts wirklich genug Möglichkeiten.

    Schreibt jemand der sogar das "[Dev]" Teil seines Nicknames gemacht hat um auf seine besondere Rolle hinzuweisen. Mein Beitrag enthielt den entscheidenden Hinweis der bei dir gefehlt hat, und wenn der TE nicht weiß wie er prüfen kann ob ein Array leer ist kann ich auch nicht mehr helfen, das ist das erste was man liest, wenn man sich über Arrays informiert und ich denk auch mal der TE weiß wie das geht. Von daher sehe ich leider nicht wo mein Beitrag nicht hilfreich war.

    Der nächste findet diesen Beitrag mit Google oder über die Forensuche und übernimmt dann die fehlende Überprüfung der Parameter und hat dadurch dann halt vielleicht eine Sicherheitslücke in seinem Code oder wundert sich warum das hier scheinbar funktioniert hat und bei ihm nicht. Und wenn du mir ernsthaft erzählen willst, dass du vergisst die Größe eines Arrays zu überprüfen bevor du auf absolute Indizes zugreifst...

    Ich möchte aber auch nicht weiter ins Off-Topic abschweifen, wenn der TE weitere Verbesserungsvorschläge sucht kann er sich meine Auflistung weiter oben ansehen und wenn ein Punkt unklar ist nachfragen. Ansonsten wurde die Frage hier ja beantwortet.
     
    #6
  7. Verschraubt
    Offline

    Verschraubt

    Warte schon lange darauf bis die 180 tage vorbei sind :) Name lässt sich vorher leider nicht ändern.

    Das Forum ist auch für "Anfänger" (bezieht sich hier auf das Programmieren mit der Bukkit API oder generell mit Java) offen. Ich will darauf hinaus, dass die meisten User dem Beitrag Ersteller helfen wollen. Als "Profi" könntest du eigentlich jedem direkt weiterhelfen, aber du machst jegliche Verbesserungsvorschläge der Benutzer nieder und man könnte sagen, dass du manche User mit deinen provokativen Beiträgen beleidigst.
    Beiträge dürfen durchaus mal fehlerhaft sein. Mit einer hilfsbereiten Community wird dem Beitrag Ersteller am Ende dann doch geholfen. Fast jeder Beitrag, den ich von dir sehe, greift aber die Personen an und provoziert sie.

    Dieses Forum richtet sich vor allem an Minecraft Spieler. Minecraft richtet sich wiederum eher an die jüngere Generation. Ich glaube es wäre sinnvoller, Beiträge mit vielen Erklärungen und Beispielen zu erstellen, die dann für alle Beteiligten verständlich wären. Für manche Leute, die nur hier und da etwas kleine programmieren wollten sind solche Ausdrücke wie "
    Neuland.

    Wenn du wirklich die Absicht hast, den Leuten zu helfen, dann bedenke doch bitte, deine Beiträge für möglichst viele verständlich zu gestalten.

    Beste Grüße,
    DasThema.
     
    #7
  8. Es gibt eine Fachsprache nicht ohne Grund: Die Aussagen sind dadurch eindeutig und verständlich. Wer zu dämlich ist sich diese Anzueignen, wird auch keine Fähigkeiten besitzen programmieren zu können. - Wie ich schon öfters gesagt habe, ist das Kopieren von Dingen keine Eigenleistung. Von dem überprüfen des Indices (was nicht immer zwangsweise notwendig ist, dann fliegt halt mal eine IOOBE.* ) mal abgesehen sollte mal auch hingehen und den Spielernamen selber überprüfen.

    * In einem - vom Nutzer - direkt manipulierbarem Kontext ist es jedoch sinnig dies zu überprüfen.
     
    #8
    [Dev] iTzSasukeHDxLP und jensIO gefällt das.