ServerPlugin [GELÖST]NullPointer in getConfig()

Dieses Thema im Forum "Programmierung" wurde erstellt von Artrax, 1. Mai 2015.

  1. Artrax
    Offline

    Artrax

    Registriert seit:
    21. Februar 2015
    Beiträge:
    21
    Hey Leute, ich habe ein kleines Problem mit getConfig() in meinem Plugin.
    Es wird aus einem mir nicht ersichtlichen Grund immer eine NullPointerExeption bei dem Aufruf von getConfig() in
    meiner JavaPlugin Klasse geworfen. Der Code ist im Grunde leicht modifiziert aus dem bukkit Wiki herauskopiert und wird auch in einem Plugin auf dem gleichen Test Server verwendet.
    Hier der Code der JavaPlugin Klasse:
    Code (Text):
    1.  
    2. package net.cmc.LobbySigns;
    3.  
    4. import java.io.File;
    5. import java.util.logging.Logger;
    6.  
    7. import org.bukkit.configuration.file.FileConfiguration;
    8. import org.bukkit.plugin.java.JavaPlugin;
    9.  
    10. public class LobbySignsMain extends JavaPlugin {
    11.    public FileConfiguration config;
    12.    Logger log;
    13.  
    14.  
    15.    public void onEnable() {
    16.      loadConfig();
    17.      getServer().getPluginManager().registerEvents((new Signlistener(this)), this);
    18.      log = getLogger();
    19.      getLogger().info("LobbySigns wurde geladen");
    20.    }
    21.  
    22.    public void onDisable() {
    23.  
    24.    }
    25.  
    26.    public void loadConfig() {
    27.      //jetzt kommt die NullpointerExeption
    28.      getConfig().options().copyDefaults(true);
    29.      
    30.      if (new File("plugins/Joinings/config.yml").exists()) {
    31.        this.getLogger().info("config.yml geladen.");
    32.      } else {
    33.        saveDefaultConfig();
    34.        this.getLogger().info("config.yml erstellt und geladen.");
    35.      }
    36.      saveConfig();
    37.    }
    38.  
    39.    public FileConfiguration getConfig() {
    40.      return config;
    41.    }
    42.  
    43.    public Logger getLog() {
    44.      return log;
    45.  
    46.    }
    47.  
    48. }
    49.  
    50.  
     
    #1
  2. Premx™
    Offline

    Premx™

    Registriert seit:
    25. Oktober 2014
    Beiträge:
    12
    Ort:
    Germany
    Minecraft:
    Dr_Premx
    getConfig().options().copyDefaults(true);
    Brauchst du nicht.

    saveDefaultConfig();
    reicht.

    Diese Funktion saveDefaultConfig(); kontrolliert ob bereits eine config existiert, wenn nicht erstellt es eine neue config.yml.

    1. public void onEnable() {
    2. loadConfig();
    3. saveDefaultConfig();
    4. getServer().getPluginManager().registerEvents((new Signlistener(this)), this);
    5. log = getLogger();
    6. getLogger().info("LobbySigns wurde geladen");
    7. }
    loadConfig(); brauchst du nicht.
     
    #2
  3. surin8844
    Offline

    surin8844

    Registriert seit:
    10. Januar 2015
    Beiträge:
    5
    Du bekommst die NPE weil du die Methode getConfig() (in Zeile 39) aufrufst. Diese returnt dir dein FileConfiguration Objekt (in Zeile 11) welches aber kein Wert hat.

    Ich frage mich sowieso wozu es deine Methode getConfig() gibt, da dies Methode ja bereits in JavaPlugin existiert. Lösche einfach mal die Methode getConfig() ab Zeile 39.
     
    #3
    Artrax gefällt das.
  4. Artrax
    Offline

    Artrax

    Registriert seit:
    21. Februar 2015
    Beiträge:
    21
    Uuuuuuuooooooh, Danke.
    Toll, dieser automatische Getter Generator in Eclipse.....
     
    #4
  5. Heldin
    Offline

    Heldin

    Registriert seit:
    22. April 2015
    Beiträge:
    42
    Die variable config brauchst du auch nicht.
     
    #5
  6. Artrax
    Offline

    Artrax

    Registriert seit:
    21. Februar 2015
    Beiträge:
    21
    Theoretisch, darf man aber praktisch
     
    #6