Solved Where am I screwing up?

Discussion in 'Plugin Development' started by Cirno, Sep 30, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    Cirno

    Code:JAVA
    1. package cirno;
    2.  
    3. import java.io.BufferedReader;
    4. import java.io.File;
    5. import java.io.FileReader;
    6. import java.io.FileWriter;
    7. import java.io.IOException;
    8. import java.io.PrintWriter;
    9. import org.bukkit.Bukkit;
    10. import org.bukkit.map.MapView;
    11.  
    12. public class DataSaver {
    13.  
    14. Nineball root;
    15. boolean FileSafeForUse;
    16.  
    17. public DataSaver(Nineball r){
    18. try {
    19. root = r;
    20. initializeFile();
    21. } catch (IOException e) {
    22. e.printStackTrace();
    23. }
    24. }
    25.  
    26. public void initializeFile() throws IOException{
    27. File f = new File(root.getDataFolder().getAbsoluteFile(), "\\MapData.list");
    28. File folder = new File(root.getDataFolder().getAbsoluteFile().getAbsolutePath());
    29. if(!folder.exists()){
    30. folder.mkdir();
    31. }
    32. if(!f.exists()){
    33. f.createNewFile();
    34. }
    35. FileSafeForUse = true;
    36. }
    37.  
    38. public void unloadFile(){
    39. FileSafeForUse = false;
    40. }
    41.  
    42. public void setGlobalMaps(){
    43. if(!FileSafeForUse){
    44. return;
    45. }
    46. new Thread(){
    47. public void run(){
    48. for(int i=0; i < 65536; i++){
    49. MapView map = Bukkit.getServer().getMap((short)i);
    50. String url = getMapData(i);
    51. if(url != null && !url.isEmpty()){
    52. try { map.removeRenderer(map.getRenderers().get(0)); } catch(Exception e){}
    53. map.addRenderer(new ImgRenderer(url));
    54. }
    55. }
    56. }
    57. }.start();
    58. }
    59.  
    60. public void setMapData(int id, String url){
    61. try {
    62. initializeFile();
    63. //WSTFGL. Tactical failure inbound! Prepare for blindness!
    64. new File(root.getDataFolder().getAbsoluteFile() + "\\MapDataTemp.list").createNewFile();
    65. PrintWriter typewriter = new PrintWriter(new FileWriter(root.getDataFolder().getAbsoluteFile() + "\\MapDataTemp.list"));
    66. BufferedReader eyes = new BufferedReader(new FileReader(root.getDataFolder().getAbsoluteFile() + "\\MapData.list"));
    67. String l;
    68.  
    69. while((l = eyes.readLine()) != null){
    70. String[] line = l.split(" > ");
    71. if(line[0].equalsIgnoreCase(String.valueOf(id))){
    72. typewriter.println(line[0] + " > " + url);
    73. } else {
    74. typewriter.println(l);
    75. }
    76. }
    77. eyes.close();
    78. typewriter.flush();
    79. typewriter.close();
    80. File newData = new File(root.getDataFolder().getAbsoluteFile() + "\\MapDataTemp.list");
    81. unloadFile();
    82. new File(root.getDataFolder().getAbsoluteFile() + "\\MapData.list").delete();
    83. newData.renameTo(new File(root.getDataFolder().getAbsoluteFile() + "\\MapData.list"));
    84. initializeFile();
    85. } catch (IOException e) {
    86. e.printStackTrace();
    87. }
    88. }
    89.  
    90. public String getMapData(int id){
    91. if(!FileSafeForUse){
    92. try {
    93. initializeFile();
    94. BufferedReader eyes = new BufferedReader(new FileReader(root.getDataFolder().getAbsoluteFile() + "\\MapData.list"));
    95. String l;
    96. while((l = eyes.readLine()) != null){
    97. if(l.startsWith(String.valueOf(id))){
    98. return l.split(" > ")[1].trim();
    99. }
    100. }
    101. return null;
    102. } catch (IOException e){
    103. e.printStackTrace();
    104. return null;
    105. }
    106. }
    107. return null;
    108. }
    109. }
    110.  


    Code:
    15:18:20 [SEVERE] Could not load 'plugins\ImgMap.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:153)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:305)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:230)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:222)
            at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:565)
            at org.bukkit.Bukkit.reload(Bukkit.java:183)
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
    21)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16
    8)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:4
    92)
            at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.
    java:488)
            at net.minecraft.server.DedicatedServer.ah(DedicatedServer.java:248)
            at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
            at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.NullPointerException
            at cirno.DataSaver.initializeFile(DataSaver.java:27)
            at cirno.DataSaver.<init>(DataSaver.java:20)
            at cirno.Nineball.<init>(Nineball.java:20)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
    rce)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:149)
            ... 14 more
    Line 27 is just the initialization for the MapData file... It's not even null either; the file exists.
     
  2. Offline

    gregthegeek

    Is root null? Look at where you instantiate this class. The getDataFolder() method might also be returning null.
     
  3. Offline

    Cirno

    /facepalm
    What an idiot I am
    Thanks :3
     
Thread Status:
Not open for further replies.

Share This Page