• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

[MYSQL] Location auswerten

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
Hallo,
Ich möchte eine Location die in einem varchar gespeichert ist auslesen und den Spieler dorthin Porten.
Die Location liegt in folgenden Format vor:

Location{world=CraftWorld{name=World},x=-7.811218033182131,y=71.5,z=230.5840684570877,pitch=17.741913,yaw=267.897}

Bevor jemand schreibt ich solle es doch selbst erstmal ausprobieren.

String servern = Bukkit.getServer().getServerName();
Statement stmt = null;
ResultSet rs = null;
try {
Connection conn = DriverManager.getConnection(url, user, pass);
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT loc FROM lobby WHERE name='"+servern+"'");
while(rs.next()) {
int endRS = rs.getInt(1); // hmm... getLocation?
p.teleport(endRS);
}
rs.close();
stmt.close();
conn.close();
}

Vielen Dank für hilfreiche Beiträge ;)
 

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43
Was du da auslesen willst ist doch auch kein Int.. ich würde dir ein eigenes Speicherformat empfehlen, je nachdem, wie genau die Location sein soll. Dann liest du die Location als String aus und zerlegst ihn danach in gültige Location.
 
X

|| xX [DEV][LP] Ms. DivaCraft Xx ||

Guest
Alternativ kann man eine Location auch jeweils in ihre Felder einteilen und dann die Location später zurückhohlen:
MySQL Tabelle:
... ...
Welt => World
x => -7....
y => 71...
z => ...
....
Die kannst du dann einfach auslesen.
 

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
gut, das einlesen funktioniert schon mal. Mit dem auslesen habe ich leider Probleme.

try {
Connection conn = DriverManager.getConnection(url, user, pass);
stmt = conn.createStatement();
rss = stmt.executeQuery("SELECT deads FROM points WHERE name='"+pn+"';");
rs = stmt.executeQuery("SELECT kills FROM points WHERE name='"+pn+"';");
while(rs.next()) {
int deads = rss.getInt(1);
int kills = rs.getInt(1);
double KD = kills/deads;
p.sendMessage(ChatColor.BLUE + "========" + ChatColor.RED + "TheGhost-Network" + ChatColor.BLUE + "========");
p.sendMessage(ChatColor.GOLD + "Kills: " + ChatColor.RED + kills);
p.sendMessage(" ");
p.sendMessage(ChatColor.GOLD + "Tode: " + ChatColor.RED + deads);
p.sendMessage(" ");
p.sendMessage(ChatColor.GOLD + "KD: " + ChatColor.RED + KD);
p.sendMessage(ChatColor.BLUE + "========" + ChatColor.RED + "TheGhost-Network" + ChatColor.BLUE + "========");

}
rs.close();
rss.close();
stmt.close();
conn.close();

Funktioniert leider nicht. Dies bezieht sich zwar auf einen anderen Fall, jedoch muss ich trotzdem 2 Sachen auslesen.
Hätte dafür evtl. jemand eine Lösung ?

Server.log (Ausschnitt)
[SEVERE] null
java.sql.SQLException: Operation not allowed after ResultSet closed [...]
at com.hiancou.ghost.commands.Stats.onCommand(Stats.java:46) [...]

Zeile 46
int deads = rss.getInt(1);
 
Oben