Hallo Community,
Zuersteinmal, ich weiß, ich muss objekt orientiert programmieren. Nur fällt mir das Verstehen von gettern und settern so schwer.
Hier zu meinem Problem:
// für die Ausgabe der Mapnamen
private static ArrayList<String> maps = new ArrayList<String>();
// 1 vote pro player
private static ArrayList<Player> voted = new ArrayList<Player>();
//alle maps der Config reinladen um danach zu sortieren
private static ArrayList<String> zwischenspeicher = new ArrayList<String>();
Public void startvotemap(){
maps.clear();
voted.clear();
zwischenspeicher.clear();
Main.votemaps.clear() //Hier werden später die votes gezählt = hashmap
Zwischenspeicher.addAll(MapFile.getFileconfiguration.getFileSection("Location.Spawns");
for(int i = 0; i <= Zwischenspeicher.getSize()-1; i++) {
String spawns = Zwischenspeicher.get(i);
if(spawns != MapFile.getFileConfiguration().getString("Lobbymap"){
Main.votemaps.entrySet(spawns, 0);
maps.add(spawns);
}
}
}
Alles anzeigen
Das ist jetzt nur ein Ausschnitt zusammengeschrieben. Der Eintrag Lobbymap in der Config wird durch einen Befehl gesetzt. Zeitgleich wird ein Eintrag in Location.spawns gesetzt. Ich kann also über die args[0] einen String eingeben, welcher dann in die config an beide Stellen eingetragen wird.
Jetzt möchte ich alle Einträge von Location.spawns in ArrayList Zwischenspeicher speichern.
Später in der for schleife möchte ich die Lobbymap dort aber raus nehmen.
Also loope ich durch alle Einträge des Zwischenspeichers und und Vergleiche ob der Mapname den configeintrag Lobbymap entspricht. Wenn ja, wird dieser Wert nicht in die ArrayList map & Hashmap votemaps eingetragen.
Aber das Ergebnis der ifschleife ist immer false.
Es macht kein Sinn.
Ich habe mir beide Werte einzeln ausgeben lassen (komplett identisch). Habe versucht jeweils einen Wert direkt durch einen String zu ersetzen, immer false.
Wenn ich jetzt beide Werte eindeutig durch einen String ersetze, z.b. "A" wird das Ergebnis wie erwartet true.
Ich raff es einfach nicht