Hallo,
Ich habe heute mal wieder ein kleines Problem die Methode getWorldguard() stößt eine NullPointerException aus.
Hier einmal der Server log:
Hier einmal den WorldguardHandler:
ReturnClass, welche die Location aus der Datenbank holt.
Vielen Dank für Hilfe im Voraus !
Ich habe heute mal wieder ein kleines Problem die Methode getWorldguard() stößt eine NullPointerException aus.
Hier einmal der Server log:
Code:
2013-03-22 11:03:18 [INFO] Starte Protection Vorgang...
2013-03-22 11:03:18 [INFO] Farm wurde bestimmt...
2013-03-22 11:03:18 [INFO] Region wurde erstellt...
2013-03-22 11:03:18 [INFO] Spieler wurde hinzugef?gt..
2013-03-22 11:03:18 [INFO] Flags wurden erstellt..
2013-03-22 11:03:18 [SEVERE] Could not pass event PlayerInteractEvent to THF-Core v1.1
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at org.bukkit.craftbukkit.v1_4_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178)
at net.minecraft.server.v1_4_R1.PlayerInteractManager.interact(PlayerInteractManager.java:376)
at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:657)
at net.minecraft.server.v1_4_R1.Packet15Place.handle(SourceFile:58)
at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
Caused by: java.lang.NullPointerException
at com.the.harvest.event.Events.WorldguardHandler.getWorldGuard(WorldguardHandler.java:30)
at com.the.harvest.event.Events.WorldguardHandler.protectFarm(WorldguardHandler.java:55)
at com.the.harvest.event.Events.ClickSign.onClick(ClickSign.java:154)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
... 16 more
Hier einmal den WorldguardHandler:
Code:
public class WorldguardHandler {
public static WorldGuardPlugin getWorldGuard() {
Plugin plugin = com.the.harvest.event.Main.getInstance().getServer().getPluginManager().getPlugin("WorldGuard");
if ((plugin == null) || (!(plugin instanceof WorldGuardPlugin))) {
return (WorldGuardPlugin)plugin;
}
return (WorldGuardPlugin)plugin;
}
public static com.sk89q.worldedit.BlockVector convertToSk89qBV(Location location){
return new com.sk89q.worldedit.BlockVector(location.getX(),location.getY(),location.getZ());
}
public static ReturnClass cl = new ReturnClass();
public static void protectFarm(Player sender, String p, World w) throws SQLException, InvalidFlagFormat, ProtectionDatabaseException {
System.out.println("Starte Protection Vorgang...");
BlockVector l1 = convertToSk89qBV(cl.getVectorLeft(p, w));
BlockVector l2 = convertToSk89qBV(cl.getVectorRight(p, w));
System.out.println("Farm wurde bestimmt...");
ProtectedRegion region = null;
DefaultDomain owners = new DefaultDomain();
region = new ProtectedCuboidRegion(p + "-Farm", l1.toBlockVector(), l2.toBlockVector());
System.out.println("Region wurde erstellt...");
owners.addPlayer(p);
System.out.println("Spieler wurde hinzugefügt..");
region.setOwners(owners);
region.setPriority(100);
System.out.println("Flags wurden erstellt..");
getWorldGuard().getRegionManager(ClickSign.getFarmWorld()).addRegion(region);
getWorldGuard().getRegionManager(ClickSign.getFarmWorld()).save();
System.out.println("Region gesichert..");
}
}
ReturnClass, welche die Location aus der Datenbank holt.
Code:
public class ReturnClass {
public String user = "Benutzername";
public String pass = "Passwort";
public String url = "jdbc:mysql://localhost:3306/Datenbank";
public Location getVectorLeft(String pn, World w) throws SQLException {
Location loc = null;
Statement stmt = null;
ResultSet rs = null;
Connection con = DriverManager.getConnection(url, user, pass);
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT x, y, z FROM users WHERE name='"+pn+"';");
while(rs.next()) {
double x = rs.getDouble(1) + 222;
double y = rs.getDouble(2);
double z = rs.getDouble(3) + 222;
loc = new Location(w,x,y,z);
}
return loc;
}
public Location getVectorRight(String pn, World w) throws SQLException {
Location loc = null;
Statement stmt = null;
ResultSet rs = null;
Connection con = DriverManager.getConnection(url, user, pass);
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT x, y, z FROM users WHERE name='"+pn+"';");
while(rs.next()) {
double x = rs.getDouble(1) - 222;
double y = rs.getDouble(2);
double z = rs.getDouble(3) - 222;
loc = new Location(w,x,y,z);
}
return loc;
}
}
Vielen Dank für Hilfe im Voraus !