Is it up to date error

Discussion in 'Plugin Development' started by seang96, Jul 3, 2013.

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

    seang96

    I am getting the following error in a plugin I am developing:
    Code:
    2013-07-03 15:06:05 [SEVERE] Error occurred while enabling TradingPost v1.0.0 (Is it up to date?)
    java.lang.NullPointerException
        at com.spgrn.tradingpost.TradingPost.setupChat(TradingPost.java:55)
        at com.spgrn.tradingpost.TradingPost.onEnable(TradingPost.java:33)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
        at org.bukkit.craftbukkit.v1_6_R1.CraftServer.loadPlugin(CraftServer.java:282)
        at org.bukkit.craftbukkit.v1_6_R1.CraftServer.enablePlugins(CraftServer.java:264)
        at net.minecraft.server.v1_6_R1.MinecraftServer.l(MinecraftServer.java:314)
        at net.minecraft.server.v1_6_R1.MinecraftServer.f(MinecraftServer.java:291)
        at net.minecraft.server.v1_6_R1.MinecraftServer.a(MinecraftServer.java:252)
        at net.minecraft.server.v1_6_R1.DedicatedServer.init(DedicatedServer.java:151)
        at net.minecraft.server.v1_6_R1.MinecraftServer.run(MinecraftServer.java:392)
        at net.minecraft.server.v1_6_R1.ThreadServerApplication.run(SourceFile:582)
    My onEnable:
    Code:java
    1. public void onEnable(){
    2. if (!setupEconomy() ) {
    3. log.severe(String.format("[TradingPost] - Disabled due to no Vault dependency found!", getDescription().getName()));
    4. getServer().getPluginManager().disablePlugin(this);
    5. return;
    6. }
    7. setupPermissions();
    8. setupChat();
    9. }


    Hope someone can help. Thanks!
     
  2. Offline

    Sessional

    seang96
    setupChat() method please. Line 55 of it in particular.
     
  3. Offline

    seang96


    chat = rsp.getProvider();
     
  4. Offline

    Sessional

    seang96
    is rsp == null in that line?
     
  5. Offline

    seang96

    The whole setupChat() method is:
    Code:java
    1. private boolean setupChat() {
    2. RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
    3. chat = rsp.getProvider();
    4. return chat != null;
    5. }

    I do not see anything making rsp anything else for setupChat.
     
  6. Offline

    Sessional

    seang96
    Code:
     private boolean setupChat() {
     
            RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
            if (rsp == null)
                System.out.println("I was null.");
            chat = rsp.getProvider();
     
            return chat != null;
     
        }
    Just give it a shot - you might be pulling a null reference - hopefully not, but maybe.
     
  7. Offline

    seang96


    2013-07-03 15:29:23 [INFO] I was null.
    So what should rsp be?
     
  8. Offline

    Sessional

  9. Offline

    seang96

    I havent done any of that. Thanks.

    On a side note, my plugin seems to not generate a config.yml or a data.yml.
    SettingsManager.java
    Code:java
    1. package com.spgrn.tradingpost;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.configuration.file.FileConfiguration;
    6. import org.bukkit.configuration.file.YamlConfiguration;
    7. import org.bukkit.plugin.Plugin;
    8. import org.bukkit.plugin.PluginDescriptionFile;
    9.  
    10. import java.io.File;
    11. import java.io.IOException;
    12.  
    13. /**
    14. * To change this template use File | Settings | File Templates.
    15. */
    16. public class SettingsManager {
    17.  
    18. private SettingsManager() { }
    19.  
    20. static SettingsManager instance = new SettingsManager();
    21.  
    22. public static SettingsManager getInstance() {
    23. return instance;
    24. }
    25.  
    26. Plugin p;
    27.  
    28. FileConfiguration config;
    29. File cfile;
    30.  
    31. FileConfiguration data;
    32. File dfile;
    33.  
    34. public void setup(Plugin p) {
    35. cfile = new File(p.getDataFolder(), "config.yml");
    36. config = p.getConfig();
    37. //config.options().copyDefaults(true);
    38. //saveConfig();
    39.  
    40. if (!p.getDataFolder().exists()) {
    41. p.getDataFolder().mkdir();
    42. }
    43.  
    44. dfile = new File(p.getDataFolder(), "data.yml");
    45.  
    46. if (!dfile.exists()) {
    47. try {
    48. dfile.createNewFile();
    49. }
    50. catch (IOException e) {
    51. Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not create data.yml!");
    52. }
    53. }
    54.  
    55. data = YamlConfiguration.loadConfiguration(dfile);
    56. }
    57.  
    58. public FileConfiguration getData() {
    59. return data;
    60. }
    61.  
    62. public void saveData() {
    63. try {
    64. data.save(dfile);
    65. }
    66. catch (IOException e) {
    67. Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not save data.yml!");
    68. }
    69. }
    70.  
    71. public void reloadData() {
    72. data = YamlConfiguration.loadConfiguration(dfile);
    73. }
    74.  
    75. public FileConfiguration getConfig() {
    76. return config;
    77. }
    78.  
    79. public void saveConfig() {
    80. try {
    81. config.save(cfile);
    82. }
    83. catch (IOException e) {
    84. Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not save config.yml!");
    85. }
    86. }
    87.  
    88. public void reloadConfig() {
    89. config = YamlConfiguration.loadConfiguration(cfile);
    90. }
    91.  
    92. public PluginDescriptionFile getDesc() {
    93. return p.getDescription();
    94. }
    95. }

    Main:

    Code:java
    1. public final class TradingPost extends JavaPlugin {
    2.  
    3. SettingsManager settings = SettingsManager.getInstance();


    Arguments are put into those string which are supposed to be saved in the data.yml with the code below.
    Code:java
    1. settings.reloadData();
    2. settings.getData().set("Player", p);
    3. settings.getData().set("Item", matName);
    4. settings.getData().set("Amount", amount);
    5. settings.getData().set("Price", price);
    6. settings.saveData();

    Do you have any insight as to why they config/data.yml's are not being created? Thanks.
     
  10. Offline

    Sessional

    seang96
    I'm not sure the actual way they recommend doing yml stuff - I avoid it and flatfile with text because it works better for me. There has been a few posts about this issue already today - I'd recommend taking a look at them.
     
Thread Status:
Not open for further replies.

Share This Page