ServerPlugin String ArrayList

Dieses Thema im Forum "Programmierung" wurde erstellt von Lapura, 11. Juni 2016.

  1. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59
    Heeey ihr Programmierer, und zwar habe ich ein Problem bei einem 1vs1 Plugin. Das 1vs1 Plugin hat 3 Runden, und immer für die Gewinner kommen in eine ArryList mit einem String, und am Ende rufe ich diese Wieder auf und möchte den Namen ausgeben.
    Zeile:
    Bukkit.broadcastMessage(plugin.Prefix + "§7Runde 1: §e" + plugin.Runde1Sieger);

    Wenn das auf dem Server ausgegen wird dann zeigt es den Namen in [] an.
    Kann mir bitte jemand helfen?
     
    #1
  2. Nightishaman
    Offline

    Nightishaman

    Registriert seit:
    3. Januar 2015
    Beiträge:
    51
    Warum genau für nur einen Spieler eine ArrayList anlegen.
    Verwend doch mal ein bisschen OOP und mach dir ne Hilfsklasse z.B. Round
    Nun erstellt du in der Klasse ein String Objekt namens Winner.
    Das ist z.B. Nützlich wenn du mehr als nur ein Objekt speichern möchtest.
    Ansonsten einfach runde1sieger auf nen normalen String ändern.
     
    #2
    jensIO gefällt das.
  3. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59

    Dann Meinst du plugin.Runde1Sieger.toString(); oder?
    Aber wennn du das meinst dann muss ich dich entteuschen weil ich das schon probiert habe und das klappt nicht...
     
    #3
  4. Glumandala
    Offline

    Glumandala Entwickler Moderator

    Registriert seit:
    1. Mai 2013
    Beiträge:
    86
    Ort:
    Deutschland
    Minecraft:
    Glumandala
    Nein, das meint er nicht.
    Er meint, dass du anstatt einer ArrayList einen String verwenden sollst, da dies einfach sinnvoller ist, wenn du nur einen Spielernamen abspeichern möchtest.
     
    #4
  5. Drayke
    Offline

    Drayke

    Registriert seit:
    25. Juni 2015
    Beiträge:
    6
    Ort:
    public void
    Default wird die toString() (von der Object Klasse) Methode benutzt, wenn du eine ArrayList ausgeben lassen möchtest. Diese gibt eben die Klammern mit aus. Lösung: Mach dir eine eigene Container Klasse. Und dann(!) @Override der toString() Methode. In dieser machst du dann for(String s : ArrayListDerContainerKlasse){ returnString += ","+s; } return returnString;
    So sollte es gehen.
     
    #5
  6. Watteschaf
    Online

    Watteschaf

    Registriert seit:
    2. November 2013
    Beiträge:
    31
    Aber warum sollte er das tun, wenn seine Liste eh immer nur ein Element enthält?
     
    #6
  7. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Poste bitte mal deine komplette(n) Klasse(n), damit ich da mal ordentlich durchblicke...
     
    #7
  8. Drayke
    Offline

    Drayke

    Registriert seit:
    25. Juni 2015
    Beiträge:
    6
    Ort:
    public void
    Ich dachte er hat 3 Gewinner? o_O
    Je Runde einer.

    Wenn es nur ein Gewinner ist, dann soll er die einfach in einem String speichern. Es gibt auch sehr schöne String Methoden mit denen man eigentlich alles machen kann was das Herz begehrt.
    Beispiel:
    Einen String der so aufgebaut ist:
    String winnerString = "Winner1/Winner2/Winner3";
    Könntest du auch zu einem Array machen:
    String[] winnerList = winnerString.split("/");
    winnerList[0] ist dann "Winner1";

    Also irgendwas für die Problem Lösung sollte nun dabei sein ^^
    Wenn nicht gibt es auch noch .remove("[").remove("]") .. das sollte auch gehen. Ist aber unelegant :p
     
    #8
  9. Baba43
    Offline

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    590
    Das Problem, welches bereits korrekt festgestellt wurde, ist dass du ein Array ausgibst und kein Element aus diesem Array. Ich meine man kann sich auch logisch überlegen, dass das keinen Sinn macht, oder? Wenn du ein bestimmtes Element willst, musst du das auch angeben: Listen in Java.
     
    #9
    jensIO gefällt das.
  10. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    59
    #10
  11. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Vollkommen unabhängig zu deiner Frage führ dir das mal zu Gemüte: http://java.about.com/od/javasyntax/a/nameconventions.htm

    Wenn du drauf achtest, dass dein Code sauber formatiert ist und sich an Namenkonventionen hält erhöhst du nebenbei auch die Chance, dass sich jemand einen Code ansieht und deine Fehler findet.
     
    #11
    jensIO gefällt das.
  12. Baba43
    Offline

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    590
    Dein Ansatz für deine Idee ist absolut umständlich.

    Einfaches Problem: Was ist, wenn dein Plugin anstatt drei Runden mal vier Runden unterstützen soll? Derzeit müsstest du fast jedes Feld und jede Methode noch einmal kopieren.

    Probiere mal bitte einen anderen Ansatz.. nur von der Idee her. Dann kann man dich auch näher an dein Ziel bringen, aber mit dem Stand müsste man das Plugin komplett neu schreiben.
     
    #12
    jensIO gefällt das.