Problem beim auslesen von Int Wert aus YML-Datei

jonasXDD

Mitglied
Hallo,
ich schreibe grade ein Plugin für die Serversoftware Bukkit (Minecraft), aber das ist glaub ich nicht so entscheident.
Ich habe in einer YML-Datei ein Int Wert abgespeichert, den ich in einer anderen Methode wieder aufrufen will. Aber das geht nicht so richtig.

Das reinschreiben in die Datei sieht so aus:
Java:
speicher.set("Players." + target.getName() + ".Start Date", datum.format(currentDate));

> speicher = ist die YML-Datei
> "Players." + target.getName() + ".Start Date" = Der Pfad
> datum.format(currentDate) = ist ein Tag im Jahr z.B. (338) [Diese Zahl soll unten wieder ausgelesen werden]
> target.getName() = ist nur ein Name

Wenn ich den Tag im Jahr von oben jetzt wieder auslesen will kommt nur: Console: "Der Wert ist: 0", aber in der Datei steht, an der Stelle '338'.
Java:
int jahrtag = speicher.getInt("Players." + target.getName() + ".Start Day_in_year");
System.out.println("Der Wert ist: " + jahrtag);

Was habe ich falsch gemacht?

[Bin Anfänger, bitte einfach erklären]

MfG
 
Zuletzt bearbeitet:
Ja ist nicht das gleiche, ich hatte die Falsche Zeile kopiert, aber im richtien Code ist es richtig geschrieben.

Bitte um hilfe.

MfG jonasXDD
 
was ist speicher für ein Objekt, welche Klasse?
gibt es Methoden zur Auflistung aller gespeicherten Werte?

hast du vor diesem komplizierten Key zunächst "a" und ähnlich einfaches probiert?
geht das auch noch oder schon aber dein Key nicht?

speichert set() bereits in die Datei oder sind danach noch Befehle nötig und auch vorhanden?
nach Tutorials gerichtet oder alles bisher eher Rate-Niveau?
kann man die Datei anschauen?
 
Hier habe ich beide Methoden, mal geposted:

Java:
		public void addVIP(Player target, String args)
		{
			
			File SpeicherFile = new File(this.plugin.getDataFolder(), "/memory.yml");
			FileConfiguration speicher = YamlConfiguration.loadConfiguration(SpeicherFile);
				
			SimpleDateFormat datum = new SimpleDateFormat("dd.MM.yyyy");
			SimpleDateFormat tagimjahr = new SimpleDateFormat("D");
			SimpleDateFormat jahr = new SimpleDateFormat("yyyy");
			Date currentDate = new Date();

		//Speicher schreiben			
			speicher.set("Players." + target.getName(), "");
			speicher.set("Players." + target.getName() + ".Start Date", datum.format(currentDate));
			speicher.set("Players." + target.getName() + ".Start Day_in_year", tagimjahr.format(currentDate));
			speicher.set("Players." + target.getName() + ".End Date", "muss noch gerechnet werden.");
			speicher.set("Players." + target.getName() + ".Remaining Days", "muss nochberechnet werden.");
			rechnung(target);
			try 
			{
				speicher.save(SpeicherFile);
			} catch (IOException e) 
				{
					System.out.println("[VIP] An error ocurred while saving VIP_File. Report the error below:");
					e.printStackTrace();
				}
		}

Java:
		public void rechnung(Player target)
		{
			File SpeicherFile = new File(this.plugin.getDataFolder(), "/memory.yml");
			FileConfiguration speicher = YamlConfiguration.loadConfiguration(SpeicherFile);
			
			int jahrtag = speicher.getInt("Players." + target.getName() + ".Start Day_in_year");
			System.out.println("Der Wert ist: " + jahrtag);
		}

Ich hoffe damit kann man mehr anfangen.
 
du liest aus der Datei bevor du speicherst, das kann nicht funktionieren ;-) (Zeile 18 lesen und Zeile 21 schreiben)
 
Danke.
Jetzt habe ich das so geschrieben:
Java:
		public void addVIP(Player target, String args)
		{
			
			File SpeicherFile = new File(this.plugin.getDataFolder(), "/memory.yml");
			FileConfiguration speicher = YamlConfiguration.loadConfiguration(SpeicherFile);
				
			SimpleDateFormat datum = new SimpleDateFormat("dd.MM.yyyy");
			SimpleDateFormat tagimjahr = new SimpleDateFormat("D");
			SimpleDateFormat jahr = new SimpleDateFormat("yyyy");
			Date currentDate = new Date();

		//Speicher schreiben			
			speicher.set("Players." + target.getName(), "");
			speicher.set("Players." + target.getName() + ".Start Date", datum.format(currentDate));
			speicher.set("Players." + target.getName() + ".Start Day_in_year", tagimjahr.format(currentDate));
			speicher.set("Players." + target.getName() + ".End Date", "muss noch gerechnet werden.");
			speicher.set("Players." + target.getName() + ".Remaining Days", "muss nochberechnet werden.");
			
			try 
			{
				speicher.save(SpeicherFile);
			} catch (IOException e) 
				{
					System.out.println("[VIP] An error ocurred while saving VIP_File. Report the error below:");
					e.printStackTrace();
				}
			
			rechnung(target);
		}

aber das geht immernoch nicht.
 
Zuletzt bearbeitet:

Zurück
Oben