MaxDerVerpeilte
Redstoneengineer
Moin Moin!
Ich bin heute leicht überfragt, da ich mit einem Problem mit meiner "Warp-Klasse" zu kämpfen habe. Ich zeige euch, ihr die mir helfen wollt, zunächst die Klasse und dann die Fehlermeldung...
Jetzt die Frage. Woher kommt das zustande? Ich habe schon ausprobiert, ob es mit Warp-Punkten, die ich grade gesetzt habe und sozusagen neu in die Hashmap eingetragen worden sind funktioniert. Und ja das tut es. Es besteht also ein Problem aus dem Lesen aus der Datenbank und ich komme einfach nicht drauf woher das kommt.
Ich bin heute leicht überfragt, da ich mit einem Problem mit meiner "Warp-Klasse" zu kämpfen habe. Ich zeige euch, ihr die mir helfen wollt, zunächst die Klasse und dann die Fehlermeldung...
Java:
package de.ZENSIERT.essentials.util;
import de.ZENSIERT.essentials.Main;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
public class Taxi {
HashMap<String, Location> warps;
Main main;
MySQL mySQL;
public Taxi(Main main) {
this.main = main;
warps = new HashMap<>();
mySQL = new MySQL();
mySQL.connect();
checkTables();
}
private void checkTables() {
ResultSet warps1 = mySQL.select("SELECT * FROM warps");
if (warps1 == null) {
MySQL.execute(
"CREATE TABLE IF NOT EXISTS warps (\n" +
" name VARCHAR(255) NOT NULL,\n" +
" x INT(10) NOT NULL,\n" +
" y INT(10) NOT NULL,\n" +
" z INT(10) NOT NULL,\n" +
" world VARCHAR(255) NOT NULL,\n" +
" server VARCHAR(255) NOT NULL,\n" +
" PRIMARY KEY (name)\n" +
") ENGINE=INNODB;");
}
ResultSet warplist = mySQL.select("SELECT * FROM warps");
try {
while (warplist.next()) {
int x = warplist.getInt("x");
int y = warplist.getInt("y");
int z = warplist.getInt("z");
String worldname = warplist.getString("world");
worldname = worldname.trim();
String name = warplist.getString("name");
name = name.trim();
name = name.toLowerCase();
String servername = warplist.getString("server");
if (servername.equalsIgnoreCase(Bukkit.getServerName())) {
System.out.println("Weltname: " + worldname);
System.out.println("Warpname:" + name);
World world = main.getServer().getWorld(worldname);
Location taxi = new Location(world, (double) x, (double) y, (double) z);
System.out.println(taxi);
warps.put(name, taxi);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void addWarp(String warpname, Location koord) {
warps.put(warpname, koord);
MySQL.execute("INSERT INTO `warps`(`name`, `world`, `server`, `x`, `y`, `z`) VALUES ('" + warpname.toLowerCase() + "','" + koord.getWorld().getName() + "'," +
"'" + Bukkit.getServerName() + "'," + (int) koord.getX() + "," + (int) koord.getY() + "," + (int) koord.getZ() + ")");
}
public boolean getWarpAvailable(String warpname) {
if (warps.containsKey(warpname)) {
return true;
} else return false;
}
public Location getLocation(String warpname) {
if (warps.containsKey(warpname)) {
return warps.get(warpname);
} else {
Location location = null;
return null;
}
}
public Boolean delWarp(String warpname) {
if (warps.containsKey(warpname)) {
warps.remove(warpname);
return true;
} else {
return false;
}
}
public boolean warpPlayer(Player player, String warpname) {
if (player.isOnline()) {
if(warps.containsKey(warpname)) {
player.teleport(warps.get(warpname));
return true;
}else System.out.println("warp gibts nicht");
}
return false;
}
}
Code:
[12:18:23 WARN]: [SUEssentials] Plugin SUEssentials v1.0.0 generated an exception whilst handling plugin message
java.lang.IllegalArgumentException: location.world
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122) ~[spigot-1.13.2.jar:git-Spigot-f56e2e7-7fc66b2]
at org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer.teleport(CraftPlayer.java:574) ~[spigot-1.13.2.jar:git-Spigot-f56e2e7-7fc66b2]
at org.bukkit.craftbukkit.v1_13_R2.entity.CraftEntity.teleport(CraftEntity.java:295) ~[spigot-1.13.2.jar:git-Spigot-f56e2e7-7fc66b2]
at de.sheepuniverse.essentials.util.Taxi.warpPlayer(Taxi.java:117) ~[?:?]
at de.sheepuniverse.essentials.util.BungeeConnect.onPluginMessageReceived(BungeeConnect.java:31) ~[?:?]
at org.bukkit.plugin.messaging.StandardMessenger.dispatchIncomingMessage(StandardMessenger.java:427) ~[spigot-1.13.2.jar:git-Spigot-f56e2e7-7fc66b2]
at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:2446) ~[spigot-1.13.2.jar:git-Spigot-f56e2e7-7fc66b2]
at net.minecraft.server.v1_13_R2.PacketPlayInCustomPayload.a(SourceFile:45) ~[spigot-1.13.2.jar:git-Spigot-f56e2e7-7fc66b2]
Jetzt die Frage. Woher kommt das zustande? Ich habe schon ausprobiert, ob es mit Warp-Punkten, die ich grade gesetzt habe und sozusagen neu in die Hashmap eingetragen worden sind funktioniert. Und ja das tut es. Es besteht also ein Problem aus dem Lesen aus der Datenbank und ich komme einfach nicht drauf woher das kommt.