Getting Null from Config ???

Discussion in 'Plugin Development' started by arnie231, Apr 23, 2012.

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

    arnie231

    Hey It seems somethings not right I decided to move all my config creation to a new class and load that because my Main class was becoming a bit of a mess but now Everything is Returning Null from the config Like messages etc, they will return a Red colored NULL in game

    Here my main
    Code:java
    1.  
    2. package com.arnie.doc;
    3.  
    4. import com.arnie.doc.commands.CommandList;
    5. import com.arnie.doc.commands.Rules;
    6. import com.arnie.doc.commands.aztec.AztecAddMember;
    7. import com.arnie.doc.commands.aztec.AztecCommandList;
    8. import com.arnie.doc.commands.aztec.AztecHome;
    9. import com.arnie.doc.commands.aztec.AztecSetSpawn;
    10. import com.arnie.doc.commands.egyptains.EgyptainAddMember;
    11. import com.arnie.doc.commands.egyptains.EgyptainCommandList;
    12. import com.arnie.doc.commands.egyptains.EgyptainHome;
    13. import com.arnie.doc.commands.egyptains.EgyptainSetSpawn;
    14. import com.arnie.doc.commands.mongols.MongolAddMember;
    15. import com.arnie.doc.commands.mongols.MongolCommandList;
    16. import com.arnie.doc.commands.mongols.MongolHome;
    17. import com.arnie.doc.commands.mongols.MongolSetSpawn;
    18. import com.arnie.doc.commands.rogues.RogueHome;
    19. import com.arnie.doc.commands.rogues.RogueHomeCreate;
    20. import com.arnie.doc.commands.romans.RomanAddMember;
    21. import com.arnie.doc.commands.romans.RomanCommandList;
    22. import com.arnie.doc.commands.romans.RomanHome;
    23. import com.arnie.doc.commands.romans.RomanSetSpawn;
    24. import com.arnie.doc.listeners.*;
    25. import com.arnie.doc.util.Files;
    26. import java.io.File;
    27. import java.util.logging.Logger;
    28. import net.milkbowl.vault.economy.Economy;
    29. import net.milkbowl.vault.permission.Permission;
    30. import org.bukkit.Bukkit;
    31. import org.bukkit.Location;
    32. import org.bukkit.command.CommandExecutor;
    33. import org.bukkit.configuration.file.YamlConfiguration;
    34. import org.bukkit.entity.Player;
    35. import org.bukkit.plugin.Plugin;
    36. import org.bukkit.plugin.PluginManager;
    37. import org.bukkit.plugin.RegisteredServiceProvider;
    38. import org.bukkit.plugin.java.JavaPlugin;
    39.  
    40. public class Main extends JavaPlugin
    41. {
    42. public static Location AztecSpawn;
    43. public static Location RomanSpawn;
    44. public static Location MongolSpawn;
    45. public static Location EgyptainSpawn;
    46.  
    47. public static final Logger log = Logger.getLogger("Minecraft");
    48. public static Economy economy = null;
    49. public static Permission permission = null;
    50.  
    51. @Override
    52. public void onEnable()
    53. {
    54. Files.configFile = new File(Files.directory + File.separator + "Config.yml");
    55. Files.tribesFile = new File(Files.directory + File.separator + "Tribes.yml");
    56. Files.homesFile = new File(Files.directory + File.separator + "Homes.yml");
    57. Files.kitsFile = new File(Files.directory + File.separator + "Kits.yml");
    58.  
    59. Files.config = new YamlConfiguration();
    60. Files.tribes = new YamlConfiguration();
    61. Files.homes = new YamlConfiguration();
    62. Files.kits = new YamlConfiguration();
    63. Files.Load();
    64. setupPermissions();
    65. registerCommands();
    66. registerEvents();
    67.  
    68. if (getConfig().getBoolean("DawnOfCivilization.Economy.Enabled")) {
    69. if (!VaultCheck()) return;
    70. if (!setupEconomy()) return;
    71. }
    72. log.info("[DawnOfCivilization] is Enabled");
    73. }
    74.  
    75. @Override
    76. public void onDisable(){
    77. log.info("[DawnOfCivilization] Is Disabled");
    78. }
    79.  
    80. public static boolean permissionCheck(Player p, String node) {
    81. if (Bukkit.getServer().getPluginManager().getPlugin("Permissions") != null) {
    82. return permission.has(p, node);
    83. }
    84. return p.hasPermission(node);
    85. }
    86.  
    87. public boolean setupPermissions()
    88. {
    89. RegisteredServiceProvider<Permission> permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
    90. if (permissionProvider != null) {
    91. permission = permissionProvider.getProvider();
    92. }
    93. return (permission != null);
    94. }
    95.  
    96. private void registerEvents() {
    97. PluginManager pm = getServer().getPluginManager();
    98. // Player Events
    99. pm.registerEvents(new ControlArmour(), this);
    100. pm.registerEvents(new ControlBlockBreak(), this);
    101. pm.registerEvents(new ControlBlockPlace(), this);
    102. pm.registerEvents(new ControlEntDamage(), this);
    103. pm.registerEvents(new ControlCrafting(), this);
    104. pm.registerEvents(new ControlItem(), this);
    105. pm.registerEvents(new TribeRespawn(), this);
    106. // Block Events
    107. log.info("[DawnOfCivilization] Events Registered");
    108.  
    109. }
    110. public void registerCommands() {
    111. // Rogue Commands
    112. rc("CreateHome", new RogueHomeCreate());
    113. rc("RogueHome", new RogueHome());
    114. // Aztec Commands
    115. rc("AztecSetSpawn", new AztecSetSpawn());
    116. rc("AztecAdd", new AztecAddMember());
    117. rc("AztecHome", new AztecHome());
    118. rc("AztecCommands", new AztecCommandList());
    119. // Egyptain Commands
    120. rc("EgyptainSetSpawn", new EgyptainSetSpawn());
    121. rc("EgyptainAdd", new EgyptainAddMember());
    122. rc("EgyptainHome", new EgyptainHome());
    123. rc("EgyptainCommands", new EgyptainCommandList());
    124. // Mongol Commands
    125. rc("MongolSetSpawn", new MongolSetSpawn());
    126. rc("MongolAdd", new MongolAddMember());
    127. rc("MongolHome", new MongolHome());
    128. rc("MongolCommands", new MongolCommandList());
    129. // Roman Commands
    130. rc("RomanSetSpawn", new RomanSetSpawn());
    131. rc("RomanAdd", new RomanAddMember());
    132. rc("RomanHome", new RomanHome());
    133. rc("RomanCommands", new RomanCommandList());
    134. // General Commands
    135. rc("CommandList", new CommandList());
    136. rc("Rules", new Rules());
    137. log.info("[DawnOfCivilization] Commands Registered");
    138. }
    139. public void rc(String command, CommandExecutor ce) {
    140. Bukkit.getServer().getPluginCommand(command).setExecutor(ce);
    141. }
    142.  
    143. private boolean VaultCheck()
    144. {
    145. Plugin VaultPlugin = getServer().getPluginManager().getPlugin("Vault");
    146. if (VaultPlugin == null) {
    147. System.out.print("Vault not found, disabling " + this);
    148. getServer().getPluginManager().disablePlugin(this);
    149. return false;
    150. } System.out.print("[DawnOfCivilization] Vault found.");
    151. return true;
    152. }
    153.  
    154. private boolean setupEconomy()
    155. {
    156. RegisteredServiceProvider economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
    157. if (economyProvider != null) {
    158. economy = (Economy)economyProvider.getProvider();
    159. }
    160. return economy != null;
    161. }
    162. }
    163.  


    Heres wheres the Configs Etc is loaded from
    Code:java
    1.  
    2. package com.arnie.doc.util;
    3.  
    4. import com.arnie.doc.Main;
    5. import java.io.File;
    6. import java.util.Arrays;
    7. import org.bukkit.configuration.file.FileConfiguration;
    8.  
    9.  
    10. public class Files {
    11. public static String directory = "plugins" + File.separator + "DawnOfCivilization";
    12.  
    13. public static File configFile;
    14. public static File tribesFile;
    15. public static File homesFile;
    16. public static File kitsFile;
    17.  
    18. public static FileConfiguration config;
    19. public static FileConfiguration tribes;
    20. public static FileConfiguration homes;
    21. public static FileConfiguration kits;
    22.  
    23.  
    24. public static void Load() {
    25.  
    26.  
    27. if (!configFile.exists()){
    28. Main.log.info("[DawnOfCivilization] Config not Found Creating one!");
    29. createConfig();
    30. Main.log.info("[DawnOfCivilization] Config Created!");
    31. }else{
    32. Main.log.info("[DawnOfCivilization] Config Found Reading Data!");
    33. }
    34.  
    35. if (!tribesFile.exists()){
    36. Main.log.info("[DawnOfCivilization] Tribes File not Found Creating one!");
    37. createTribes();
    38. Main.log.info("[DawnOfCivilization] Tribes File Created!");
    39. }else{
    40. Main.log.info("[DawnOfCivilization] Tribes File Found Reading Data!");
    41. }
    42.  
    43. if (!homesFile.exists()){
    44. Main.log.info("[DawnOfCivilization] Homes File not Found Creating one!");
    45. createHomes();
    46. Main.log.info("[DawnOfCivilization] Homes File Created!");
    47. }else{
    48. Main.log.info("[DawnOfCivilization] Homes File Found Reading Data!");
    49. }
    50. }
    51.  
    52. private static void createConfig() {
    53. // CONFIG HEADER
    54. config.options().header("Main DawnOfCivilization Config.");
    55. // World Decalaration
    56. config.addDefault("DawnOfCivilization WorldName", "world");
    57. // Economy Booleans
    58. config.addDefault("DawnOfCivilization.Economy.Enabled", true);
    59. config.addDefault("DawnOfCivilization.Economy.NotEnoughMoney", "You do not have enough Money");
    60. // Control Booleans
    61. config.addDefault("Control.BlockBreak", true);
    62. config.addDefault("Control.BlockPlace", true);
    63. config.addDefault("Control.Craft", true);
    64. config.addDefault("Control.Sword", true);
    65. config.addDefault("Control.Pick", true);
    66. config.addDefault("Control.Axe", true);
    67. config.addDefault("Control.Hoe", true);
    68. config.addDefault("Control.Misc", true);
    69. // Tribes
    70. String[] CommandList = { "/Rules - Get a list of Server Rules", "/AztecCommands - Get a List of the Aztec Commands", "/RomanCommands - Get a List of the Roman Commands", "/MongolCommands - Get a List of the Mongol Commands", "/EgyptainCommands - Get a List of the Egyptain Commands" };
    71. config.addDefault("CommandList", Arrays.asList(CommandList));
    72. // Aztec
    73. String[] AztecCommandList = { "/Aztecadd <playername>", "/AztecSetSpawn", "/AztecHome" };
    74. config.addDefault("Aztecs.CommandList", Arrays.asList(AztecCommandList));
    75. config.addDefault("Aztecs.AddCommand", "pex user %name% group set AztecTribesManI");
    76. config.addDefault("Aztecs.AddPrice", 500);
    77. // Roman
    78. String[] RomanCommandList = { "/Romanadd <playername>", "/RomanSetSpawn", "/RomanHome" };
    79. config.addDefault("Romans.CommandList", Arrays.asList(RomanCommandList));
    80. config.addDefault("Romans.AddCommand", "pex user %name% group set RomanTribesManI");
    81. config.addDefault("Romans.AddPrice", 500);
    82. // Mongol
    83. String[] MongolCommandList = { "/Mongoladd <playername>", "/MongolSetSpawn", "/MongolHome" };
    84. config.addDefault("Mongols.CommanList", Arrays.asList(MongolCommandList));
    85. config.addDefault("Mongols.AddCommand", "pex user %name% group set MongolTribesManI");
    86. config.addDefault("Mongols.AddPrice", 500);
    87. // Egyptain
    88. String[] EgyptainCommandList = { "/Egyptainadd <playername>", "/EgyptainSetSpawn", "EgyptainHome" };
    89. config.addDefault("Egyptains.CommandList", Arrays.asList(EgyptainCommandList));
    90. config.addDefault("Egyptains.AddCommand", "pex user %name% group set EgyptainTribesManI");
    91. config.addDefault("Egyptains.AddPrice", 500);
    92. // Rules
    93. String[] Rules = { "Rule1", "Rule2", "Rule3" };
    94. config.addDefault("Rules", Arrays.asList(Rules));
    95. // Messages
    96. config.addDefault("Messages.Join", "Welcome To Dawn Of Civilization for a list of commands use /commandlist");
    97. // Warning Messages
    98. config.addDefault("WarningMessages.BlockPlace", "You can not Place That Block");
    99. config.addDefault("WarningMessages.BlockBreak", "You can not Break That Block");
    100. config.addDefault("WarningMessages.Craft", "You can not Craft That Item");
    101. config.addDefault("WarningMessages.Damage", "You can not Deal Damage with that");
    102. config.addDefault("WarningMessages.Tools", "You can not use that Tool");
    103. config.addDefault("WarningMessages.Weapon", "You can not use that Weapon");
    104. config.addDefault("WarningMessages.Bow", "You can not Use a Bow");
    105. config.addDefault("WarningMessages.Misc", "You can not use That");
    106. config.addDefault("WarningMessages.Armour", "You can not Wear That");
    107. config.addDefault("WarningMessages.NoPermission", "You dont have enough Permissions");
    108. // Tribe Spawn Points
    109. config.addDefault("SpawnPoints.Aztecs.X", 285.1274330478513);
    110. config.addDefault("SpawnPoints.Aztecs.Y", 59.0);
    111. config.addDefault("SpawnPoints.Aztecs.Z", 83.17247438584593);
    112. config.addDefault("SpawnPoints.Romans.X", 149.22083793587325);
    113. config.addDefault("SpawnPoints.Romans.Y", 58.0);
    114. config.addDefault("SpawnPoints.Romans.Z", 438.02035711251295);
    115. config.addDefault("SpawnPoints.Mongols.X", 372.49603119797234);
    116. config.addDefault("SpawnPoints.Mongols.Y", 58.0);
    117. config.addDefault("SpawnPoints.Mongols.Z", 968.1483524478289);
    118. config.addDefault("SpawnPoints.Egyptains.X", -211.4480175030193);
    119. config.addDefault("SpawnPoints.Egyptains.Y", 64.0);
    120. config.addDefault("SpawnPoints.Egyptains.Z", -369.09518308834424);
    121. config.addDefault("SpawnPoints.Rogues.X", -66.4);
    122. config.addDefault("SpawnPoints.Rogues.Y", 63.6);
    123. config.addDefault("SpawnPoints.Rogues.Z", 266.6);
    124.  
    125. config.options().copyDefaults(true);
    126. saveconfig();
    127. }
    128.  
    129. private static void createTribes() {
    130. // TRIBES HEADER
    131. tribes.options().header("Tribes File Contains a list of User in each Tribe.");
    132. // Tribes List
    133. String[] AztecList = { "Aztec1", "Aztec2", "Aztec3" };
    134. tribes.addDefault("Tribes.Aztecs", Arrays.asList(AztecList));
    135.  
    136. String[] RomanList = { "Roman1", "Roman2", "Roman3" };
    137. tribes.addDefault("Tribes.Romans", Arrays.asList(RomanList));
    138.  
    139. String[] MongolList = { "Mongol1", "Mongol2", "Mongol3" };
    140. tribes.addDefault("Tribes.Mongols", Arrays.asList(MongolList));
    141.  
    142. String[] EgyptainList = { "Egyptain1", "Egyptain2", "Egyptain3" };
    143. tribes.addDefault("Tribes.Egyptains", Arrays.asList(EgyptainList));
    144.  
    145. tribes.options().copyDefaults(true);
    146. savetribes();
    147. }
    148.  
    149. private static void createHomes() {
    150. homes.addDefault("Rogues.Homes.ExampleName.X", 0);
    151. homes.addDefault("Rogues.Homes.ExampleName.Y", 0);
    152. homes.addDefault("Rogues.Homes.ExampleName.Z", 0);
    153.  
    154. homes.options().copyDefaults(true);
    155. savehomes();
    156. }
    157.  
    158. public static void saveconfig() {
    159. try{
    160. config.save(configFile);
    161. } catch (Exception e) {
    162. }
    163. }
    164.  
    165. public static void savetribes() {
    166. try{
    167. tribes.save(tribesFile);
    168. } catch (Exception e) {
    169. }
    170. }
    171.  
    172. public static void savehomes() {
    173. try{
    174. homes.save(homesFile);
    175. } catch (Exception e) {
    176. }
    177. }
    178. }
    179.  


    Here's one of my listeners which gets Values from the config

    Code:java
    1.  
    2. package com.arnie.doc.util;
    3.  
    4. import com.arnie.doc.Main;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.entity.Player;
    7.  
    8.  
    9. public class Chat
    10. {
    11. public static void noPermissionMessage(Player player)
    12. {
    13. player.sendMessage(ChatColor.RED + Files.config.getString("WarningMessages.NoPermission"));
    14. }
    15. public static void WelcomeMessage(Player player)
    16. {
    17. player.sendMessage(ChatColor.GRAY + Files.config.getString("Messages.Join"));
    18. }
    19. public static void ArmourMessage(Player player)
    20. {
    21. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.Armour"));
    22. }
    23. public static void WarningBreakMessage(Player player)
    24. {
    25. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.BlockBreak"));
    26. }
    27. public static void WarningPlaceMessage(Player player)
    28. {
    29. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.BlockPlace"));
    30. }
    31. public static void WarningCraftMessage(Player player)
    32. {
    33. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.Craft"));
    34. }
    35. public static void WarningDamageMessage(Player player)
    36. {
    37. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.Damage"));
    38. }
    39. public static void WarningWeaponMessage(Player player)
    40. {
    41. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.Weapon"));
    42. }
    43. public static void WarningToolMessage(Player player)
    44. {
    45. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.Tools"));
    46. }
    47. public static void WarningMiscMessage(Player player)
    48. {
    49. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.Misc"));
    50. }
    51. public static void WarningBowMessage(Player player)
    52. {
    53. player.sendMessage(ChatColor.DARK_RED + Files.config.getString("WarningMessages.Bow"));
    54. }
    55. }
    56.  


    Still havent worked this out :S

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 25, 2016
  2. Offline

    Giant

    You never actually initialize any of the vars, so they are always null...
     
  3. Offline

    arnie231

    What do you mean ? Iam sure i do everything i need to
     
  4. Offline

    Giant

    Oh I see, my bad I missed the main class one O__o
     
  5. Offline

    arnie231

    Any one have an idea ?
     
  6. Offline

    Sagacious_Zed Bukkit Docs

    my gut reaction is recode the plugin and remove every static keyword for anything not final, and in the process it may magically fix itself.
     
Thread Status:
Not open for further replies.

Share This Page