[Bukkit] Fehlermeldung

03/24/2013 20:51 __Sandor__#1
ich habe ein Problem:

Ich habe eine Klassen, die in einer anderen Klasse eine methode aufruft, aber es kommt eine NullPointerException und ich weiß nicht warum.
Die Fehlermeldung:

PHP Code:
2013-03-24 15:13:58 [INFOIAmTheRad issued server command: /p tp lobby
2013
-03-24 15:13:58 [SEVEREnull
org
.bukkit.command.CommandExceptionUnhandled exception executing command 'p' in plugin Events v1.0
 at org
.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
 
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:187)
 
at org.bukkit.craftbukkit.v1_5_R2.CraftServer.dispatchCommand(CraftServer.java:523)
 
at net.minecraft.server.v1_5_R2.PlayerConnection.handleCommand(PlayerConnection.java:967)
 
at net.minecraft.server.v1_5_R2.PlayerConnection.chat(PlayerConnection.java:885)
 
at net.minecraft.server.v1_5_R2.PlayerConnection.a(PlayerConnection.java:840)
 
at net.minecraft.server.v1_5_R2.Packet3Chat.handle(Packet3Chat.java:44)
 
at net.minecraft.server.v1_5_R2.NetworkManager.b(NetworkManager.java:292)
 
at net.minecraft.server.v1_5_R2.PlayerConnection.d(PlayerConnection.java:113)
 
at net.minecraft.server.v1_5_R2.ServerConnection.b(SourceFile:35)
 
at net.minecraft.server.v1_5_R2.DedicatedServerConnection.b(SourceFile:30)
 
at net.minecraft.server.v1_5_R2.MinecraftServer.r(MinecraftServer.java:580)
 
at net.minecraft.server.v1_5_R2.DedicatedServer.r(DedicatedServer.java:225)
 
at net.minecraft.server.v1_5_R2.MinecraftServer.q(MinecraftServer.java:476)
 
at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:409)
 
at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
Caused byjava.lang.NullPointerException
 at de
.sandor.witzcraft.paintball.funktionen.Teleport.tplobby(Teleport.java:23)
 
at de.sandor.witzcraft.paintball.Create.onCommand(Create.java:205)
 
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
 ... 
15 more 
03/24/2013 22:31 ComputerBaer#2
Wenn wir dir sagen sollen wo der Nullpointer herkommt brauchen wir nicht den Fehler sondern den Quellcode.

Anfangen würde ich mal mit der Teleport.java Zeile 23.
03/25/2013 22:07 __Sandor__#3
In der Zeile steht:

File file_player = null;
03/25/2013 22:21 ComputerBaer#4
Muss ich dir jetzt jede Zeile einzeln aus der Nase ziehen?

Entweder du zeigst zumindest die ganze Datei oder du kannst selber suchen.
03/25/2013 23:37 Kira Mikami#5
Ehm ... Hast du da plugins drauf ?
03/26/2013 06:23 ComputerBaer#6
Quote:
Originally Posted by Kira Mikami View Post
Ehm ... Hast du da plugins drauf ?
Was ist das denn für eine Frage?
In der Fehlermeldung steht doch klar und deutlich, dass der Fehler in einem Plugin aufgetreten ist.

Wenn man dann auch schon etwas länger hier ist, weis man auch das dieses Plugin von ihm geschrieben ist und er immer wieder Hilfe bei Fehlern braucht.
03/26/2013 09:55 __Sandor__#7
Sorry für meine kurze Antwort.
Hier ist der code der Teleportklasse:

PHP Code:
package de.sandor.witzcraft.paintball.funktionen;

import java.io.File;
import java.io.IOException;

import org.bukkit.Location;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;

import de.sandor.witzcraft.Witzcraft;

public class 
Teleport {
    
    private static 
Witzcraft plugin;

    public 
Teleport(Witzcraft plugin) {
        
this.plugin plugin;
    }

    public static 
boolean tplobby(Player p) {
        
        
plugin.file_lobby = new File("plugins/Events/paintball""lobby.yml");
        
plugin.lobby_file YamlConfiguration.loadConfiguration(plugin.file_lobby);
        
        try {
            
plugin.lobby_file.load(plugin.file_lobby);
        } catch (
IOException InvalidConfigurationException e) {
            
System.out.print("Fehler beim Laden der Config");
        }
        
        
String loc_world plugin.lobby_file.getString("lobby.world");
        
double loc_x plugin.lobby_file.getDouble("lobby.x");
        
double loc_y plugin.lobby_file.getDouble("lobby.y");
        
double loc_z plugin.lobby_file.getDouble("lobby.z");
        
float loc_yaw plugin.lobby_file.getInt("lobby.yaw");
        
float loc_pitch plugin.lobby_file.getInt("lobby.pitch");
        
        
Location loc = new Location(plugin.getServer().getWorld(loc_world), loc_xloc_yloc_zloc_yawloc_pitch);
        
        
p.teleport(loc);
        
p.sendMessage("Teleportiere zur Paintballlobby");
        
        return 
true;
    }

    public static 
boolean tparena(Player pString arenaString color) {

        
plugin.file_arena = new File("plugins/Events/paintball""arena.yml");
        
plugin.arena_file YamlConfiguration.loadConfiguration(plugin.file_arena);
        
        try {
            
plugin.arena_file.load(plugin.file_arena);
        } catch (
IOException InvalidConfigurationException e) {
            
System.out.print("Fehler beim Laden der Config");
        }
        
        
String loc_world plugin.arena_file.getString("arena." arena ".spawn." color ".world");
        
double loc_x plugin.arena_file.getDouble("arena." arena ".spawn." color ".x");
        
double loc_y plugin.arena_file.getDouble("arena." arena ".spawn." color ".y");
        
double loc_z plugin.arena_file.getDouble("arena." arena ".spawn." color ".z");
        
float loc_yaw plugin.arena_file.getInt("arena." arena ".spawn." color ".yaw");
        
float loc_pitch plugin.arena_file.getInt("arena." arena ".spawn." color ".pitch");
        
        
Location loc = new Location(plugin.getServer().getWorld(loc_world), loc_xloc_yloc_zloc_yawloc_pitch);
        
        
p.teleport(loc);
        
p.sendMessage("Teleportiere zur Paintballarena '" arena "'");
        return 
true;
    }

Die Config lade ich in der Hauptklasse und die Methode ruf ich so auf:

PHP Code:
Teleport.tplobby(p); 
03/26/2013 18:35 ComputerBaer#8
Die Zeilenangaben verrutschen Manchmal aus irgndwelchen Gründen, wenn da Leerzeilen zwischen sind.

Könnte es sein, dass der eigentliche Fehler in Zeile 24 auftritt, weil in Zeile 23 wieder erwarten doch kein "File" erstellt wurde und die Variable weiterhin "null" ist?
03/27/2013 12:24 President741#9
Schau mal ob vielleicht 2 Klassen gleich benannt sind ^^
03/27/2013 17:54 ComputerBaer#10
Quote:
Originally Posted by President741 View Post
Schau mal ob vielleicht 2 Klassen gleich benannt sind ^^
Das würde garnicht funktionieren, weil du überhaupt nicht zwei Dateien mit dem selben Namen im selben Ordner hinbekommst.
03/28/2013 09:18 __Sandor__#11
Ich habe mal geschaut und da waren 2 Klassen in 2 Ordner, die gleich hiesen. Ich habe eins umbenannt und es hat alles fuktioniert. Ich glaube es lag am import.
03/28/2013 18:19 ComputerBaer#12
Ich weis jetzt ja nicht wie die hießen, aber wenn du die falsche Klasse importest, brauchst du nicht erwarten, dass die das selbe kann wie die richtige Klasse. Den Packagenamen sollte man schon unterscheiden können.