• 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!

Worldguard API

Nexus15

Kuhfänger
Registriert
30 September 2012
Beiträge
89
Diamanten
0
Hallo,

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 ! :)
 
G

games6471

Guest
Plugin plugin = com.the.harvest.event.Main.getInstance().getServer().getPluginManager().getPlugin("WorldGuard");

Genau dort bekommt er eine null. Wenn du wirklick WorldGuard installiert hast, kann es sein, dass er deine Plugin-instanz nicht findet.

Tipp:

Hier musst du nicht auf deine Plugininstanz zugreifen, sondern kannst sogar auf die Bukkit-instanz zugreifen.

(Bukkit.getServer(). usw.)
 
Oben