Custom per player configs not saving

Discussion in 'Plugin Development' started by Pimp_like_me, Mar 16, 2014.

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

    Pimp_like_me

    What happens is, in my join event if the defaults of the config for the player aren't there. It will create them for it, except when i try to save these changes. They don't save. Any help on this situation would be much appreciated, here is my code for setting it and saving it. Before you say anything else. Yes my events are registered and i know because it does CREATE the file if it isn't there, it just doesn't save changes to it


    Code:java
    1. @EventHandler
    2. public void ManaJoin(PlayerJoinEvent event){
    3. if(!(new File(plugin.getDataFolder().getPath() + "/Users/" + event.getPlayer().getName() + ".yml").exists())){
    4. try {
    5. new File(plugin.getDataFolder().getPath() + "/Users/" + event.getPlayer().getName() + ".yml").createNewFile();
    6. } catch (IOException e) {
    7. }
    8. }
    9. if(plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName() + ".Mana.MaxMana")){
    10. }else{
    11. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName() + ".Mana.MaxMana", 100);
    12. }
    13. if(plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName() + ".Slaying.Kills")){
    14. }else{
    15. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName() + ".Slaying.Kills", 1);
    16. }
    17. if(plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName() + ".Murdering.Kills")){
    18. }else{
    19. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName() + ".Murdering.Kills", 1);
    20. }
    21. if(plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName() + ".BankSize")){
    22. }else{
    23. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName() + ".BankSize", 18);
    24. }
    25. if(plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName() + ".BankContents")){
    26. }else{
    27. ArrayList<ItemStack> s = new ArrayList<ItemStack>();
    28. for(int i = 0; i < 18; i++){
    29. s.add(null);
    30. }
    31. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName() + ".BankContents", s);
    32. }
    33. if(plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName() + ".Particles")){
    34. }else{
    35. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName() + ".Particles", true);
    36. }
    37. if(!plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName().toUpperCase() + ".DEXTERITY")){
    38. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".DEXTERITY", 1);
    39. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".STRENGTH", 1);
    40. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".ARCANA", 1);
    41. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".STABILITY", 1);
    42. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".PRECISION", 1);
    43. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".ENDURANCE", 1);
    44. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".FORTITUDE", 1);
    45. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName().toUpperCase() + ".INTELLIGENCE", 1);
    46. }
    47. if(!plugin.getPlayerConfig(event.getPlayer().getName()).contains(event.getPlayer().getName() + ".ExtraPoints")){
    48. plugin.getPlayerConfig(event.getPlayer().getName()).set(event.getPlayer().getName() + ".ExtraPoints", 0);
    49. }
    50. try {plugin.getPlayerConfig(event.getPlayer().getName()).save(new File(plugin.getDataFolder().getPath() + "/Users/" + event.getPlayer().getName() + ".yml"));
    51. } catch (IOException e) {
    52.  
    53. }
    54.  
    55. }
     
  2. Offline

    hubeb

    Try something like this, it will be easier.
    Code:java
    1. public static void createNewPlayerFile(Player player) throws IOException{
    2. File playersDir = new File(plugin.getDataFolder() + File.separator + "players");
    3. if(!playersDir.exists()){
    4. playersDir.mkdir();
    5. }
    6. File playerFile = new File(plugin.getDataFolder() + File.separator + "players" + File.separator + player.getName() + ".yml");
    7. if(!playerFile.exists()){
    8. playerFile.createNewFile();
    9. FileConfiguration fc = YamlConfiguration.loadConfiguration(playerFile);
    10. fc.set("Player.PlayerName", player.getName());
    11. fc.save(playerFile);
    12. }
    13. }
     
  3. Offline

    Pimp_like_me

    It still isn't saving it to the config though... hubeb
     
  4. Offline

    hubeb

    Are you registering your events? and Try this it should work.
    Code:java
    1. //Setting Data
    2. @EventHandler
    3. public void ManaJoin(PlayerJoinEvent event){
    4. Player p = event.getPlayer();
    5. File userDir = new File(plugin.getDataFolder() + File.separator + "Users");
    6. if(!userDir.exists()){
    7. userDir.mkdir();
    8. }
    9. File playerFile = new File(plugin.getDataFolder() + File.separator + "Users" + File.separator + p.getName() + ".yml");
    10. if(!playerFile.exists()){
    11. playerFile.createNewFile();
    12. FileConfiguration fc = YamlConfiguration.loadConfiguration(playerFile);
    13. fc.set(p.getName()+".Mana.MaxMana", 100);
    14. fc.set(p.getName()+".Slaying.Kills", 1);
    15. fc.set(p.getName()+".Murdering.Kills", 1);
    16. fc.set(p.getName()+".BankSize", 18);
    17. fc.set(p.getName()+".BankContents", "YOUR CONTENTS");
    18. fc.set(p.getName()+".Particles", false);
    19. fc.set(p.getName()+".DEXTERITY",1);
    20. fc.set(p.getName()+".STRENGTH",1);
    21. fc.set(p.getName()+".ARCANA",1);
    22. fc.set(p.getName()+".STABILITY",1);
    23. fc.set(p.getName()+".PRECISION",1);
    24. fc.set(p.getName()+".ENDURANCE",1);
    25. fc.set(p.getName()+".FORTITUDE",1);
    26. fc.set(p.getName()+".INTELEGENCE",1);
    27. fc.set(p.getName()+".ExtraPoints",0);
    28. fc.save(playerFile);
    29. }
    30. }
    31. //Getting Data
    32. public static void grabData(Player p){
    33. File playerFile = new File(plugin.getDataFolder() + File.separator + "Users" + File.separator + p.getName() + ".yml");
    34. if(!playerFile.exists()){
    35. FileConfiguration fc = YamlConfiguration.loadConfiguration(playerFile);
    36. Int testInt = fc.getInt(p.getName()+".STRENGTH");
    37. }
    38. }

    There may be some errors I did not use an IDE for this.
     
  5. Offline

    Pimp_like_me

    Okay, this works fine, and it saves the stuff that's written there. But when i try to save other stuff with the function
    Code:java
    1. public void savePlayerConfig(String PlayerName){
    2. File playerFile = new File(this.getDataFolder() + File.separator + "Users" + File.separator + PlayerName + ".yml");
    3. FileConfiguration fc = YamlConfiguration.loadConfiguration(playerFile);
    4. try {
    5. fc.save(playerFile);
    6. Bukkit.broadcastMessage("asdasdasda");
    7. } catch (IOException e) {}
    8. }




    It doesn't work. Any ideas? NOTE: This is in the main class which is why I used this instead of plugin

    hubeb

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 7, 2016
  6. Offline

    hubeb

    Pimp_like_me I rewrote your config save thing, use this:
     
Thread Status:
Not open for further replies.

Share This Page