NullPointer on File properties

Discussion in 'Plugin Development' started by Schwarzer Zylinder, Oct 23, 2011.

Thread Status:
Not open for further replies.
  1. Hello,
    I'm working on a shop plugin and want to create for every player an own file, in which I can store prices, but every time I call the method getPlayerPrice there's a NullPointer on the prop, but I don't know how to fix it.
    And on loadProperties it never find's a file, except in the beginning when its the globalPricesFile...

    Code:java
    1. public static DynamicShop plugin;
    2. private static Properties prop = new Properties();
    3. static File globalPricesFile;
    4.  
    5. public FileManager(DynamicShop instance){
    6. plugin = instance;
    7. globalPricesFile = new File(plugin.getDataFolder() + File.separator + "GlobalPrices.cfg");
    8. }
    9.  
    10. public static void saveProperties(File file) {
    11. try {
    12. FileOutputStream fileWriter = new FileOutputStream(file);
    13. prop.store(fileWriter, "Be careful when manually editing this file!");
    14. fileWriter.flush();
    15. fileWriter.close();
    16. } catch (FileNotFoundException e) {
    17. e.printStackTrace();
    18. } catch (IOException e) {
    19. e.printStackTrace();
    20. }
    21. }
    22.  
    23. public static void loadProperties(File file) {
    24. try {
    25. FileInputStream fileReader = new FileInputStream(file);
    26. prop.load(fileReader);
    27. fileReader.close();}
    28. saveProperties(file);
    29. //loadProperties(file);
    30. }
    31. catch (IOException e) {
    32. e.printStackTrace();}
    33. }public static Double getPlayerPrice(Player player, String material){
    34. prop = new Properties();
    35. File playerFile = new File(plugin.getDataFolder() + File.separator + "Prices" + player.getName() + ".cfg");
    36. System.out.println(plugin.name + "file: " + playerFile.toString() + "prop: " + prop.toString());
    37. loadProperties(playerFile);
    38. Double price = Double.parseDouble(prop.getProperty(material.toUpperCase(Locale.ENGLISH)));
    39. return price;
    40. }
    41.  
    42. public static void setPlayerPrice(Player player, String material, Double price) {
    43. prop = new Properties();
    44. File playerFile = new File(plugin.getDataFolder() + File.separator + "Prices" + player.getName() + ".cfg");
    45.  
    46. loadProperties(playerFile);
    47.  
    48. prop.setProperty(material.toUpperCase(Locale.ENGLISH), price.toString());
    49. saveProperties(playerFile);
    50. }


    NullPointer:
    Code:
    2011-10-23 19:23:59 [SEVERE] Could not pass event PLAYER_INTERACT to Dynamic Shop
    java.lang.NullPointerException
        at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
        at java.lang.Double.parseDouble(Unknown Source)
        at me.gerry.dynamicshop.FileManager.getPlayerPrice(FileManager.java:68)
        at me.gerry.dynamicshop.DynamicShopPlayerListener.onPlayerInteract(DynamicShopPlayerListener.java:97)
        at org.bukkit.plugin.java.JavaPluginLoader$11.execute(JavaPluginLoader.java:330)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
        at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:171)
        at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:265)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:592)
        at net.minecraft.server.Packet15Place.a(SourceFile:57)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
     
  2. Paste the null pointer exception
     
  3. Offline

    Windwaker

    Also, try putting your code between

    Code:
    [syntax=java]
    Code Here
    [/syntax]
    Makes it a lot easier to read.
     
Thread Status:
Not open for further replies.

Share This Page